BBC micro:bit est une plaque de développement qui utilise un microcontrôleur. Ce dispositif a pour but d’offrir les étudiants un bon commencement pour développer ses compétences en programmation.
Micro:bit V2 est un ARM Cortex M4, petit et facile d’utiliser. Il est prévu avec 25 LED, sur lesquelles on peut afficher des messages ou des images. Il est prévu, aussi, avec u accéléromètre, qui peut détecter les mouvements, un bussole, Bluetooth, deux buttons, à travers lequel il peut interagir avec l’utilisateur et des autres d’autres capteurs que nous découvrirons au cours du TP.
Les programmes seront écrits sur l’ordinateur et après ils seront chargés sur le micr:obit. Ces programmes restent sur la mémoire flash et ils vont être exécutés quand le microcontrôleur est alimenté.
Microsoft MakeCode est cadre permettant de créer des expériences de programmation interactives et engageantes pour les nouveaux venus dans le monde de la programmation. La plate-forme fournit la base d'une expérience de codage sur mesure pour créer et exécuter des programmes utilisateur sur du matériel réel ou dans une cible simulée.
Il se compose de 3 parties:
L'éditeur de blocs est l'endroit où l'utilisateur peut créer un programme de manière interactive en “tirant” ou en “glissant” des blocs sur l'éditeur d'espace de travail.
Les blocs représentent des actions de codage et des structures de programmation qui seraient traditionnellement écrites en texte. Les éléments de codage tels que les boucles, les instructions conditionnelles et les événements contiennent des blocs contenant d'autres blocs. Les fonctions et les affectations sont des blocs « plats » qui s'emboîtent dans d'autres. Les variables, les valeurs et les propriétés sont des mini-blocs qui s'insèrent dans des emplacements de fonctions, d'affectations ou d'évaluateurs.
Les blocs se trouvent dans les catégories disponibles dans la boîte à outils des blocs alignés à côté de l'espace de travail.
Un éditeur de langage complète l'éditeur de blocs dans MakeCode. Lorsque des blocs sont définis pour des fonctions, des instructions et des affectations, le code correspondant dans l'éditeur de langage représente les blocs correspondants dans l'éditeur de blocs. Dans l'éditeur de langage, cependant, un utilisateur peut écrire du code supplémentaire avec une plus grande complexité que ce qui est disponible avec les blocs.
Un simulateur comporte des éléments visuels qui représentent les fonctions d'un tableau cible. Les développeurs d'une cible MakeCode peuvent ajouter des éléments d'image et des actions de code pour simuler ce qui se passe lorsque le programme est exécuté sur le matériel.
On va utiliser Blocks language pour afficher sur la matrice de LEDs du micro:bit le texte “Hello Sde2!”.
Premièrement, on va aller sur MakeCode et cliquer sur New Project. Après ça, vous devez donner un nom à votre projet et appuyer sur Create.
On va appuyer sur la catégorie Basic, qui se trouve dans la boîte à outils des blocs alignés à côté de l'espace de travail, et sélectionner le bloc show string.
On doit glisser le bloc, l’encadrer dans on start et changer le texte pour que le micro:bit affiche le texte donné comme argument au bloc show string quand le programme commence. Si on veut que le micro:bit répète l’affichage du texte pendant tout le temps que le programme marche, on met le bloc show string dans on forever.
Pour tester le programme on fait click sur la flèche vert en dessous du micro:bit.
Le code qui se trouve à l'intérieur du bloc on start est exécutée juste au début du programme. D’autre part, le code dans le bloc forever est exécutée tout au long de l'exécution du programme, mais dans background, c’est a dire, si une autre partie du code doit être exécutée, la boucle forever va céder le temps à cette partie.
Pour créer une nouvelle variable, on appuie sur la catégorie Variables et après ça, on sélectionne Make a variable. Vous devez donner un nom suggestif à votre variable et cliquez sur Ok. Par défaut, la nouvelle variable est globale.
Il existe 2 blocs qui nous permet d’interagir avec les variables: set et change.
Set est utilisé pour l’attribution des valeurs.
Change est utilisé pour l'incrémentation avec une certaine valeur donnée.
Pour attribuer la valeur d'une variable à une autre variable on peut utiliser 2 blocs set.
Toutes les fonctions nécessaires pour travailler avec des chaînes de caractères(ex: concaténation, split etc.) se trouvent dans Advanced→Text. Chaque fonction est détaillée ici. Pour attribuer à une variable un string, vous devez remplacer la valeur de l’argument du bloc set avec le premier bloc du catégorie Text et introduire le string.
On trouve les blocs pour la structure de décision if dans la catégorie Logic.
Vous pouvez trouver des explications supplémentaires sur les boucles dans Blocks language ici.
Toutes les fonctions nécessaires pour travailler avec des arrays(ex: insert, remove, indexOf etc.) se trouvent dans Advanced→Arrays. Chaque fonction est détaillée ici.
Pour initialiser un array, vous devez utiliser le bloc set [array_name] to array of [elements] et pour modifier la valeur d'un element qui se trouvent dans une certaine position vous devez utiliser le bloc [array_name] set value at [position] to [value].
Blocs utiles pour les array:
Le reste des blocs sont expliqués dans la documentation.
La catégorie Math contient des blocs pour des opérations mathématiques:
La catégorie Basic vous aide à utiliser quelques fonctions et actions de base du micro:bit.
Le dispositif a une matrice de LEDs qui peut être contrôle individuellement ou tous ensemble pour pouvoir faire des dessins dur l'écran. Chaque LED de la matrice est caractérisé par deux coordonne qui représente la ligne et la colonne ou il se trouve.
Blocs pour la control de la matrice LED:
Sur le devant du dispositif il y a deux butons A et B, qui peut-être accéder dans le code avec buton_a et button_b. Ces boutons ont le bloc on button [A/B] pressed (catégorie Input), qui va retourne True si le bouton est appuyé, si non va retourne False. Le code qui se trouve dans on button [A/B] pressed est exécutée quand on fait click sur le buton.
Vous pouvez trouver les solutions ici.