Simulateur micro:bit et transfert dans la carte

  • Dernière modification de la publication :5 juin 2023
  • Temps de lecture :13 min de lecture
  • Post category:SNT

La carte micro:bit est une carte électronique créée par la BBC en 2016 pour promouvoir l’apprentissage du codage auprès des élèves. A l’image de la carte Arduino c’est une carte micro-contrôleur, programmable mais en plus elle possède aussi des capteurs de température, de luminosité, des accéléromètres, etc… Des leds permettent aussi d’afficher des textes ou des émoticones. 

Capacités et compétences travaillées

Présentation du simulateur micro:bit

Pour se familiariser et nous aider à développer des codes avec la carte micro:bit, nous allons dans un premier temps utiliser un environnement de développement intégré (IDE) que vous trouverez en cliquant sur l’image ci-dessous :

  • Cliquer sur tous les points d’information ⓘ pour lire les explications.

Explication ligne par ligne du script proposé par défaut

Certains mots spécifiques à micro:bit et python sont définis sous l’image dans la partie « Vocabulaires ».

Vocabulaires

Les bibliothèques sont les boites à outils que l’on peut appeler pour nous aider à tracer des graphiques (import mathplotlib), effectuer statistiques (import numpy ou import statistics), communiquer avec une carte micro:bit (import microbit), etc…

Les fonctions sont des instructions plus ou moins complexes qui exécutent une commande.

Les variables : voir plus bas.

Emoticônes pouvant être affichées (liste non exhaustive) : HAPPY, SMILE, HEART, SAD, DIAMOND, ANGRY, ARROW_E (flèche à l’est), BUTTERFLY, DUCK, GIRAFFE, HOUSE, PACMAN, SCISSORS, UMBRELLA, FABULOUS (lunettes de soleil)…

Exercices avec le simulateur (IDE)

Défi n°1

Faites apparaitre l’émoticone PACMAN 4 secondes puis défiler le texte : OK

Défi n°2

Faire apparaitre le texte : « Compris » puis l’émoticone HAPPY pendant 1 seconde

Utilisation de la carte micro:bit

Il conviendra de téléverser (ou flasher) les programmes testés à l’aide du simulateur (IDE) dans la carte micro:bit. Deux méthodes sont disponibles en fonction du matériel et des logiciels dont vous disposez : 

Méthode 1 : du simulateur vers micro:bit directement

  • Brancher votre carte micro:bit sur votre ordinateur à l’aide d’une prise USB. 
  • Sur la page web du simulateur,  cliquer sur « Send to micro:bit« . 
  • Une fenêtre popup, apparait : suivez les instructions affichées dedans. 

Méthode 2 : à l'aide du logiciel Mu

Prise en main de scripts simples en jouant avec les variables

Une variable est une zone de la mémoire de l’ordinateur dans laquelle une valeur est stockée. Nous la définissons par un nom. Une variable peut être de différentes natures :

  • un nombre : 2 ou 3.4 (on notera que les virgules des nombres doivent être remplacées par des points. Python les appelle float (nombre décimaux) ou int (nombre entier)
  • une « chaine de caractères » (=du texte). Python les appelle string reconnaissable à leurs guillemets « texte » ou leurs apostrophes ‘Texte’.
  • une [liste]. Python les appelle list, reconnaissable à leur crochets.

Dans la zone script du simulateur :

  • Effacer les instructions sous la boucle while.
  • Comme indiqué sur l’image, rajouter le bloc d’instructions qui se trouve dans Référence / Variables / Assigning strings
  • Flasher et exécuter le code en appuyant sur le bouton « Lecture » du simulateur
Dans le simulateur Makecode V3 de microbit, on montre comment cliquer-glisser facilement des instructions préenregistrées.

BRAVO !!! Vous venez de déclarer votre première variable : vous l’avez appelée name et l’ordinateur a stocké la chaine de caractère ‘microbit’

Exercice avec le simulateur (IDE) et la carte micro:bit

Défi n°3

Renommer la variable « name » par « mon_prénom » puis afficher votre prénom à l’écran

Remarques :

  • Ne pas écrire « mon prénom » : ceci affichera un bug.
  • On constate que micro:bit n’affiche pas les accents.

Scripts en jouant avec l'affichage : "display"

De nombreuses fonctions spécifiques à micro:bit commence par display.nom_de_la_fonction(). Ainsi vous demandez à ces fonctions d’agir sur l’affichage. Vous connaissez déjà :

  • display.show() : affiche une image ou une lettre statique
  • display.scroll() : fait défiler une image ou une lettre.

Il est utile de connaitre les suivantes :

  • display.clear() : efface l’image de l’écran.
  • display.set_pixel(x, y, level) : adjoint une certaine luminosité (de 0 à 9) sur une des leds de l’affichage

Dans la zone script du simulateur :

  • Effacer les instructions sous la boucle while.
  • A l’aide du bloc d’instructions qui se trouve dans Référence / Display / Image : make your own, afficher le signe « + » comme sur l’image ci-dessus.

Exercice avec le simulateur (IDE) et la carte micro:bit

Défi n°4

Faire apparaitre l’émoticone DIAMOND durant 1 seconde puis allumer uniquement le pixel du milieu pendant 1 seconde

Conseil / Remarque : 

  • il faut effacer les émoticones avec la fonction clear() pour afficher d’autres choses

Scripts en jouant avec les boutons A et B

La carte micro:bit dispose de 2 boutons nommés A et B se situant à gauche et à droite de la carte. En actionnant l’un des boutons, de nouvelles instructions peuvent être exécutées si vous avez codé correctement.  

Dans la zone script du simulateur :

  • Effacer les instructions sous la boucle while.
  • A l’aide d’un des blocs d’instructions qui se trouve dans Référence / Buttons / Button was pressed, afficher la lettre A si vous appuyez sur la touche A.
  • Changer le code pour que la lettre A apparaisse en appuyant sur la touche B.

Quelle est la différence entre button_a.is_pressed() et was_pressed() ?

  • is_pressed() : si le bouton est pressé ET si il est « disponible », micro:bit exécutera les instructions indentées.
  • was_pressed() : si le bouton a été actionné pendant que le programme était occupé à une autre tâche, les instructions indentées seront lancées lorsque la carte redeviendra disponible.

Exercice avec le simulateur (IDE) et la carte micro:bit

Défi n°5

Si vous appuyez sur le bouton A, faites apparaitre le signe X pendant 2 secondes seulement.

Défi n°6

Si vous appuyez sur le bouton B, faites apparaitre l’émoticone ♥️ durant 1 seconde puis faire défiler le texte « OK ».

Scripts prenant en compte des variables extérieures

La carte micro:bit dispose de différents capteurs intégrés : mesure de la température , de la luminosité, du mouvement (ou plus précisément l’accélération). Elle est aussi sensible à la variation du champ magnétique ; comme une boussole.

Dans le « simulateur de conditions extérieures » en bas à droite du simulateur micro:bit, vous pouvez faire varier les paramètres listés ci-dessus.

Comment mesurer avec une carte micro:bit ?  

Il suffit d’appeler la bonne fonction pour accéder à l’instrument de mesure intégré dans la carte. Les mesures acquises sont enregistrées comme des nombres décimaux (float).

Pour mesurer de température, on utilise la fonction :

temperature()

Pour mesurer la luminosité, on utilise la fonction :

display.read_light_level()

Pour détecter le mouvement de la carte, on peut mesurer l’accélération de la carte selon les 3 axes x, y et z. Pour mesurer l’accélération, on utilise les fonctions :

accelerometer.get_x()

accelerometer.get_y()

accelerometer.get_z()

Micro:bit a pensé à simplifier les choses : si nous souhaitons ne détecter que le mouvement de la carte, sans rentrer dans les mesures précises, effectuer alors le travail ci-dessous pour le découvrir :

Dans la zone script du simulateur :

  • Effacer les instructions sous la boucle while.
  • Déposer le bloc d’instructions qui se trouve dans Référence / Acceleromètre / Gesture
  • Flasher le script dans la carte.
  • Secouer la carte en appuyant sur Shake dans le « simulateur de conditions extérieures ».

Remarque : ce code nécessite de réinitialiser / flasher à nouveau le code pour qu’il puisse fonctionner. Passer au défi ci-dessous pour tenter de résoudre ce léger problème

Exercice avec le simulateur (IDE) et la carte micro:bit

Défi n°7

Retoucher le code précédent afin que l’icône apparaisse 1 seconde à chaque secousse sans que l’on ait besoin de flasher à chaque fois le code dans la carte

Défi n°8

Afficher un émoticone HAPPY durant 1 seconde si la température est supérieure à 18°C.

Défi n° 9 : Programmer la micro:bit pour qu’elle affiche : 

  • une émoticone SAD si la température est inférieure à 10°C
  • une émoticone HAPPY si la température est supérieure à 20°C. 
  • sinon, l’écran affiche l’émoticone YES.

Quiz sur les CS

Pour tester vos connaissances. A vous de jouer …

Défis supplémentaires

Défi n°9

Réaliser un compte à rebours

Défi n°10

Réaliser une lampe automatique : allumer toutes les leds si la luminosité est faible, éteignez-les toutes si la luminosité ambiante est satisfaisante. 

Laisser un commentaire