TP 02 - BBC micro:bit et MakeCode

Objectifs du TP

  • Travail avec le micro:bit
  • Utilisation d'editeur MakeCode pour micro:bit
  • Introduction en Blocks language

Documentation

Présentation du BBC micro:bit V2

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é.

Le microcontrôleur et un ordinateur réduit dans un seul chip, qui peut exécuter un programme à la fois et consommer beaucoup moins qu’un ordinateur portable ou un ordinateur. En plus, elles sont bonnes pour contrôler et détecter les signaux électriques a l’aide de ses broches. Pour plus des infos tu peux cliquer sur ce lien.

L'editeur MakeCode pour micro:bit

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:

  • Blocks editor
  • Language editor
  • Simulateur

Blocks editor

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.

Language editor

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.

Simulateur

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.

Le premier programme écrit dans MakeCode

Pendant les TPs on va utiliser l'editeur MakeCode pour micro:bit.

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.

on start vs. forever

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.

Blocks language

Pour comprendre mieux comment Blocks language fonctionne suivre la documentation qui se trouve au début du TP!

Variables

Création de variables

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.

Interaction avec les variables

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.

Variables pour des chaînes de caractères

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.

La structure de décision "if"

On trouve les blocs pour la structure de décision if dans la catégorie Logic.

  • Décision simple

  • Décision avec else

  • Décision imbriquée

Boucles

Vous pouvez trouver des explications supplémentaires sur les boucles dans Blocks language ici.

While

La syntaxe d'un boucle while.

For

La syntaxe d'un boucle for.

Repeat

La boucle repeat execute les instructions n fois.

Array

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:

  • empty array: créer un array vide
  • length of array [array_name]: retourne la taille de l'array array_name
  • [array_name] get value at [position]: retourne la valeur de l'élément sur la position [position]
  • [array_name] get and remove value at [position]: retourne et efface la valeur de l'élément sur la position [position]
  • get random value of [array_name]: retourne une valeur aléatoire de l'array
  • remove last value from [array_name]: efface le dernier élément dans [array_name]
  • remove first value from [array_name]: efface le première élément dans [array_name]

Le reste des blocs sont expliqués dans la documentation.

Math

La catégorie Math contient des blocs pour des opérations mathématiques:

  • somme
  • substraction
  • multiplication
  • division
  • modulo
  • minimum
  • maximum
  • valeur absolue
  • radical
  • random entre deux nombres
  • aproximation

Basic

La catégorie Basic vous aide à utiliser quelques fonctions et actions de base du micro:bit.

  • showNumber: affiche un nombre donné comme paramètre sur la matrice de LEDs
  • showIcon: dessine l'image sélectionnée sur la matrice de LEDs
  • showLeds: allume les LEDs sélectionnés
  • showString: affiche un string donné comme paramètre sur la matrice de LEDs
  • clearScreen: éteint tous les LEDs
  • pause: arrête l'execution pour un nombre de milisecondes donné

LEDs

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.

x est la coordonnée verticale et y la coordonnée horizontale.

Blocs pour la control de la matrice LED:

  • plot [x] [y]: allumer le LED de la position (y,x)
  • unplot [x] [y]: éteindre le LED de la position (y,x)
  • point [x] [y]: retourne le status(allumé ou éteindré) du LED de la position (y,x)
  • toggle [x] [y]: changer le status de la position (y,x)
  • plot bar graph of [inferior_limit] to [superior_limit]: afficher un graphique de type barre pour une valeur numerique

Butons

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.

Images

Vous pouvez trouver des informations concernant le travail avec des images ici.

Exercises

  1. Stockez votre nom dans un variable et affichez le sur la matrice de LEDs.
  2. Faitez le LED de la position (2,3) clignoter tout au long de l'exécution du programme.
  3. Créez un programme qui affiche l'image smiley face quand le buton A est appuyé et l'image sad face quand le buton B est appuyé.
  4. Affichez tous les chiffres paires jusqu'a 9 en utilisant la boucle for.
  5. Affichez tous les chiffres impaire jusqu'a 9 en utilisant la boucle repeat.
  6. Créez un programme qui allume et clignoter les LEDs au dessus de la diagonale principale.
  7. Créez un programme qui allume un par un les LEDs(quand le LED suivant s'allume, le LED en derrière s'éteint) de la deuxième ligne.
  8. Créez un array avec 4 images. Affichez l'image suivant quand on appuie sur le buton B et l'image précédent quand on appuie sur le buton A.

Solutions

Vous pouvez trouver les solutions ici.

sde2/laboratoare/02_simple_fr.txt · Last modified: 2022/04/02 15:12 by cristiana.andrei
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0