Connecter un Micro:bit à Scratch 3

Oui oui! Scratch 3!   La version Beta est disponible et elle inclut le support pour le Micro:bit! Ô joie!

En tout premier, voici le lien pour la version Beta: https://beta.scratch.mit.edu/

scratch3.png

Cliquez sur “Try it!” pour l’essayer ( “Essayez-le” si votre ordi est en français).  Une note au passage, la version française n’est pas complètement disponible au moment d’écrire ce billet. Je vais donc rester en anglais. La traduction française est en cours, il ne faut pas désespérer.

scratch3_001.png

Je ne parlerai pas ici de Scratch 3 lui-même, juste de l’intégration du Micro:bit.

Préparatifs:
1. installer Scratch Link sur votre ordinateur (Windows ou Mac)
2. installer le firmware Scratch sur le micro:bit
3. connecter par Bluetooth au micro:bit

Installer Scratch Link

Scratch Link est un petit logiciel qui doit être installé sur votre ordinateur.  Vous l’obtiendrez sur la page dédiée au microbit: https://scratch.mit.edu/microbit (en anglais seulement).
Pour l’instant, il semble que Scratch Link ne soit disponible que pour Windows et Mac. Je n’ai pas eu de succès avec une tablette Android mais peut-être que le support viendra.

Pour l’instant, téléchargez la version qui correspond à votre OS. Les détails qui suivent sont valables pour Windows.  C’est un fichier .zip donc il faudra extraire le fichier à l’interne. Glissez-le sur votre bureau afin de le retrouver facilement.

scratchlink.gif

Double-cliquez sur le fichier en question pour installer Scratch Link. N’oubliez pas de cocher “Launch Scratch Link” avant de terminer l’installation!
launchscratchlink.gif

Vérifiez que Scratch Link est bel et bien installé!
verifyscratchlink.gif

Voilà! Scratch peut maintenant parler à différents bidules, comme le micro:bit!

2. Installer le firmware Scratch sur le micro:bit

Toujours sur la page de préparation, il suffit de dérouler un peu pour trouver les instructions pour la préparation du Micro:Bit.

firmware.png

  1. Connectez votre micro:bit à votre ordinateur.
  2. Téléchargez le programme HEX qui permettra au micro:bit de parler à Scratch
  3. Glissez ce programme de votre ordi à votre micro:bit, de manière très similaire à tout autre programme de micro:bit.

firmware.gif

3. Connecter par Bluetooth au micro:bit

Par expérience, il est utile de faire une réiniItialisation du Micro:bit à ce moment-ci en pressant le bouton Reset au dos. Le micro:bit affichera alors son nom Bluetooth, une série de cinq lettres. Le mien s’appelle vazaz.

Résultats de recherche d'images pour « microbit reset button »
@Adafruit

On est maintenant prêt à installer l’extension Micro:bit dans Scratch.

  1. Cliquez sur le gestionnaire d’extensions, en bas à gauche
  2. Cliquez sur l’extension de Microbit
  3. Laissez votre ordi trouver votre micro:bit (assurez-vous que votre ordi roule Bluetooth!)
  4. Connectez à votre Micro:bit! Dans un environnement de classe, il faut s’assurer de bel et bien connecter au bon microbit, selon le nom affiché.
  5. Lorsque connecté, le micro:bit cesse d’afficher son nom.

connecter.gif

Les blocs Micro:bit sont maintenant accessibles pour des heures de plaisir!

blocs.png

Advertisements

Créer ses propres blocs dans MakeCode

MakeCode est l’environnement de programmation visuelle pour le Micro:bit . Makecode.png

Il est intuitif d’utilisation et, couplé au micro:bit, permet aux jeunes apprentis de développer des compétences en contrôle de senseurs et d’actuateurs en plus de la programmation.

On peut pousser MakeCode un peu plus loin en développant ses propres blocs. Deux approches sont disponibles:

microbit-reveil.png

  • la catégorie “Fonctions”
  • le fichier “custom.ts”

Le code

Imaginons ce petit bout de code représentant un micro:bit qui se réveille.  Tout d’abord, il est endormi, puis il baille aux corneilles. Ensuite, il prend conscience de son environnement à gauche et à droite pour être tout content de te voir. Sympa mais un peu long comme code, surtout si on a l’intention de le réutiliser ailleurs dans le programme. Mon but est d’avoir le même code au démarrage du micro:bit et aussi lorsque le senseur de lumière indique qu’il fait finalement clair.

Première méthode: créer un bloc fonction

La fonction est la méthode la plus accessible pour créer son propre bloc. On peut la faire purement avec des blocs, sans passer par la programmation textuelle. Elle est conceptuellement similaire à la création de blocs que l’on retrouve dans Scratch.

Cliquez sur “Avancé” pour ouvrir la section des catégories avancées, puis cliquez sur “Fonctions“.  Le tiroir qui s’ouvre ne comporte qu’un seul bloc: “Créer une fonction”.

fonction.png

Vous avez maintenant une boîte de dialogue vous demandant le nom de la fonction que vous voulez créer. Appelons-la “réveil”.

renommer

blockreveil.png

Un bloc de définition de fonction apparait alors sur le canevas de programmation et il suffit de glisser les blocs de réveil dans sa boîte. Par la suite, il est possible d’utiliser le nouveau bloc maintenant disponible dans la catégorie “Fonctions” pour exécuter la séquence de réveil.

Ceci nous donne un résultat final plus facile à lire, plus facile à comprendre, donc plus facile à modifier, expliquer et même maintenir:

microbit-complet

Deuxième méthode, le fichier “custom.ts”

Cette deuxième méthode permet de cacher le détail de notre fonction, ce qui permet de simplifier ce qui est exposé dans le canevas de programmation mais surtout nous permet de réutiliser notre bloc d’un projet à l’autre!  Par contre, on se retrouve en mode textuel, et non graphique.

Avant de passer aux détails, gardons le code de notre fonction réveil.  Passez en mode “javascript” en cliquant sur le mot “Javascript” et copier le code de la fonction se trouvant entre les deux accolades.

javascript

Puis cliquez sur “Explorateur” pour ouvrir cette section et sur le “+” qui vient d’apparaitre.

explorateur

ajouter_custom.png

Cliquez sur  “OK” pour confirmer la création du fichier custom.ts. Un nouveau fichier de code Typescript est maintenant créé.  Par défaut il contient des exemples que vous pouvez étudier pour mieux comprendre ce qui se passe mais pour l’instant, on va tout effacer pour y mettre le code suivant:

/**
* Blocs permettant d’afficher des expressions
*/
//% weight=100 color=#033fff icon=”\uf118″
namespace expressions {
    //% block
    export function réveil(): void {
// début du code copié
        basic.showIcon(IconNames.Asleep)
        basic.pause(2000)
        basic.showLeds(`
            # # . # #
            . . . . .
           . # # # .
           # . . . #
          . # # # .
       `)
        basic.pause(2000)
        basic.showLeds(`
            . . . . .
            # . . # .
            . . . . .
            . # # # .
            . . . . .
        `)
        basic.pause(1000)
        basic.showLeds(`
            . . . . .
            . # . . #
            . . . . .
           . # # # .
            . . . . .
        `)
        basic.pause(1000)
        basic.showIcon(IconNames.Happy)
        basic.pause(2000)
// fin du code copié
   }
}

Le code se trouvant entre les lignes // début du code copié et // fin du code copié provient directement de la fonction écrite précédemment, sans modification.

Retournez dans le mode “blocs” en cliquant sur le bouton “Blocs”.

notrebloc

Oh! Une nouvelle catégorie est apparue! Et cette catégorie contient, pour l’instant, un seul bloc, le bloc “réveil“. On peut maintenant l’utiliser pour recréer notre petit programme:microbit-complet2

Le contenu du bloc “réveil” n’est plus exposé dans le canevas, ce qui simplifie la complexité pour l’utilisateur. L’apparition d’une nouvelle catégorie permet aussi de créer d’autres blocs d’expressions animées, suivant notre imagination.

Regardons maintenant le code. D’abord, c’est du typescript. Toute ligne commençant par // est un commentaire et sera ignoré par l’ordi et le micro:bit.  Sauf que… exception il y a.   Dans l’environnement MakeCode, les lignes qui débutent par //% servent à définir les catégories et les blocs.
Ici, nous avons deux de ces lignes. D’abord:

//% weight=100 color=#033fff icon=”\uf118″

Cette ligne permet de contrôler l’apparence de notre nouvelle catégorie. Le “weight” indique l’importance de la catégorie. Plus ce chiffre est proche de 100, plus la catégorie sera haute dans la liste. On ne peut pas, à ma connaissance, être en haut de la catégorie “Basique“.  Le code “color” prend un code de couleur html, précédé de #0 (le chiffre zéro, plutôt que la lettre ‘o’).  Le code “icon” identifie quelle icône utiliser pour les blocs de la catégorie. Les icônes sont limitées à ce qui se trouve dans Font Awesome.

La deuxième ligne importante est toute simple:

//% block

Elle indique que la fonction suivante doit être transformée en bloc par MakeCode. Comme notre fonction est simple, elle ne prend pas de paramètres et ne retourne pas de valeur, on peut se contenter de cette ligne.  Il est toutefois possible de définir des blocs bien plus complexes en suivant les informations en anglais de MakeCode.

Voilà! Vous avez créé votre propre catégorie et votre premier bloc! L’information sera sauvé à l’intérieur de votre projet mais je vous conseille d’en garder une copie localement. Ceci vous permettra de la copier/coller dans tout nouveau projet où vous désirez utiliser votre catégorie fait maison.

À vous le monde maintenant!

 

 

Attempting to control my 3D printer with a Pi

Last week, I got my hands on my very own 3D printer, thanks to Marc-André Léger, from Learn to Make Almost Anything at District 3.

I got a test print done last Sunday, after hours spent trying to figure out how to level and calibrate it. The test print is still not perfect, but hey, it’s progress!

Today’s goal, because it’s nice outside and I do enjoy being stuck in a basement when it’s sunny out, is to control said printer via a Raspberry Pi. I just got 5 Pi3, all from BuyaPi.ca for work, which means I have a bunch of Pi2 that are no longer needed. Time to repurpose one!

Continue reading