Découverte de la malle Micro:bit

Thématiques

  • Algorithmie
  • Scratch
  • Micro:bit

Participants 8

Durée 2h

Public 9-12 ans

Prérequis Maîtrise de base de l’ordinateur

Matériel

  • Vidéoprojecteur
  • 8 postes informatiques
  • 8 cartes Micro:bit avec leur câble USB
  • 8 shields Micro:bit
  • 8 capteurs à ultrasons avec câble Grove
  • 8 rubans de LEDs

Préparation

Démarrer les postes des participants. Ouvrir les postes des participants sur l’éditeur Make Code Beta (la version stable pose des problèmes avec l’extension Grove). Dans Make Code, ajouter les extensions Grove (pour le détecteur à ultrasons) et Neopixel (pour les rubans de LEDs).

Déroulé

Introduction (5 min)

Présenter le lieu, le(s) animateur(s), le déroulé de l’atelier.

Jeu du robot idiot (30 min)

Qu’est-ce qu’un algorithme ? Nous allons le voir tout de suite.

Préparer la pièce en faisant un parcours simple sans trop d’obstacles, avec les chaises et les tables, avec une entrée et une sortie. Présenter le but du jeu : mimer un robot marchant de l’entrée à la sortie du labyrinthe. Un volontaire fera le robot, et aura les yeux bandés. Il suivra les instructions que donneront les autres participants. Il y a uniquement trois instructions possibles :

  • « Avance » d’un pas
  • « Tourne à gauche » d’un quart de tour
  • « Tourne à droite » d’un quart de tour

Par mesure de sécurité, le robot avance avec les bras devant, et s’il détecte un obstacle, n’avance plus, sans rien dire. L’animateur vérifie qu’il ne se fasse pas mal.

Première traversée : instructions. Applaudir le robot lorsqu’il arrive à la sortie.

Deuxième traversée : écrire un algorithme. Modifier le labyrinthe. Demander à un participant de noter, sur le tableau, toutes les instructions qui sont données, dans l’ordre. Un « A » pour avancer, un « G » pour tourner à gauche, un « D » pour tourner à droite.

Troisième traversée : exécuter un algorithme. Sans modifier le labyrinthe, en ne faisant que répéter les mêmes instructions. La longueur variable des pas peut provoquer de petites erreurs, l’animateur pourra les corriger.

Quatrième traversée : mémoire & variable. Modifier le labyrinthe. Demander aux participants de dessiner une carte du labyrinthe sur le tableau. Ensuite, ils devront se tourner, faire dos au robot, et ne le guider qu’en utilisant cette représentation abstraite de l’environnement. Rajouter une nouvelle instruction au robot : « Recommencer », pour demander au robot, avec l’aide de l’animateur, de revenir au point de départ, à utiliser lors la confusion devient trop complexe.

Cinquième traversée : conditions. Demander aux participants de se tourner dos au robot. Modifier le labyrinthe : personne n’a connaissance du nouveau plan. Les participants ont une nouvelle instruction disponible : poser la question « Obstacle ? » au robot, qui peut répondre par « Oui » ou « Non ». Donner un indice aux participants : dessiner le plan au fur et à mesure, en notant la position du robot.

Débriefer avec les participants. Au bout d’un moment, un motif semble se répéter : on demande au robot s’il y a un obstacle devant lui. S’il n’y a rien, il peut avancer. Sinon, il faut tourner, à gauche ou à droite, en fonction du plan. Il s’agit-là d’une condition : si, alors, sinon. La condition peut être exprimée de la façon suivante : « un obstacle est présent devant le robot ».

Sixième traversée : boucles. Dernière traversée, cette fois-ci le robot est autonome : les participants donnent toutes les instructions en amont, avant même de savoir quel sera le labyrinthe. Une nouvelle instruction est disponible : « Tant que  », ainsi qu’une nouvelle condition : « le robot se trouve à l’arrivée ». Réfléchir ensemble aux instructions du robot, les noter au tableau. Indices :

  • On va réutiliser le motif dégagé lors de l’étape précédente.
  • Tant que le robot n’est pas arrivé, vérifier s’il y a un obstacle. Si oui tourner. Si non avancer. La question qui reste, on tourne dans quelle direction ?
  • S’inspirer de la méthode pour sortir du labyrinthe : toujours garder sa main droite en contact avec le mur. On va peut-être explorer tout le labyrinthe, mais on va finir par tomber sur la sortie.

Proposer une solution : tant que le robot n’est pas arrivé, vérifier s’il y a un obstacle. Si oui, tourner à droite. Sinon, avancer. Ce n’est pas parfait, cela ne fonctionnera pas avec tous les algorithmes. Déjà, la technique de la main droite ne fonctionne pas dans les labyrinthes avec des boucles. Et notre technique est encore moins bonne, certaines configurations bloquent le robot dans un va-et-vient perpétuel. Malgré tout, ça devrait marcher dans beaucoup de cas.

Essayer avec un labyrinthe sans boucle utilisant uniquement des virages à droite ou des intersections en T. Tous les participants regardent le robot appliquer l’algorithme, et le guident s’il est perdu.

Prise en main des cartes Micro:bit (20 min)

Les participants récupèrent chacun une carte Micro:bit et un câble USB, et s’installent sur les postes. Guider les participants pour brancher la carte en USB.

Afficher une icône. Présenter le premier composant de la carte, la matrice de LEDs, en faisant deviner les participants. Les enfants connaîtront sûrement les rubans de LEDs, que l’on peut montrer également. Pour les contrôler, il faut donner l’instruction à la carte, comme ce que l’on a fait pour le robot et le labyrinthe. Montrer le bloc d’instruction « Montrer l’icône » dans l’onglet « Base ». Le placer dans « Au démarrage ». Il faut enfin envoyer ce code à la carte, en téléchargeant le fichier, et en copiant-collant le fichier HEX. Tester en affichant différentes icônes.

Faire clignoter une icône. Basculer le bloc dans « Répéter indéfiniment » et présenter le bloc « Pause (ms) » dans l’onglet « Base ». L’objectif est de changer automatiquement d’icône toutes les secondes. Expliquer le fonctionnement en boucle très rapide de la carte pour justifier la nécessité d’attendre.

Utiliser les boutons. Présenter un nouveau composant : les boutons A et B, toujours en faisant deviner les participants. Une nouvelle possibilité s’offre alors à nous : afficher une icône différente selon si on appuie sur le bouton A, ou le bouton B. Montrer le bloc d’instruction « Lorsque le bouton X est pressé » dans l’onglet « Entrée ».

Utilisation du micro. Ajouter un autre déclencheur : le volume sonore. Utiliser le bloc d’instruction « lorsque le son bruyant est détecté » dans l’onglet « Entrée ».

Capteurs internes et logique (20 min)

Logo. Utiliser un bloc « Si alors » et le bloc « le logo est appuyé » (dans « Entrée ») comme un nouveau déclencheur pour afficher une autre icône.

Luminosité. Utiliser « montrer nombre » (dans « Base ») et « niveau d’intensité lumineuse » (dans « Entrée ») pour afficher la valeur relevée par la carte. Demander aux participants de deviner les valeurs maximum (très lumineux, 255) et minimum (très sombre, 0). Utiliser un bloc « Si alors » (dans « Logique ») ainsi qu’un bloc de comparaison (dans « Logique ») pour afficher une icône différente selon la luminosité (seuil médian 128).

Boussole. Utiliser « montrer nombre » (dans « Base ») et « direction de la boussole » (dans « Entrée ») pour afficher la valeur de la boussole. Il s’agit d’un angle en degrés, entre 0° et 360°. Dessiner un cercle, placer ces angles, et définir les limites des plages de définition des angles : est entre 45° et 135°, sud entre 135° et 225°, ouest entre 225° et 315°, nord autrement. Définir une variable « angle » (dans « Variables »), lui assigner la direction de la carte, puis utiliser un bloc « Si alors sinon » (dans « Logique »), des blocs comparaison et des blocs « montrer LEDs » (dans « Base ») pour afficher les points cardinaux.

Ruban de LEDs (40 min)

Brancher la carte sur un Shield. Durant cette partie, des problèmes de téléversement peuvent survenir, notamment pour des raisons d’alimentation électrique. Une première chose à faire en cas de bug est de débrancher le câble USB (côté PC), d’ôter la carte du Shield, de rebrancher le câble USB, téléverser, et rebrancher la carte sur le Shield.

Ultrasons. Présenter et faire deviner l’utilité (et le fonctionnement par écho, comme certains animaux) des capteurs à ultrasons aux participants. Brancher le capteur sur la broche P0 du Shield. Utiliser « montrer nombre » pour afficher la valeur de « (V2)Ultrasonic Sensor (in cm) at P0 » (dans « Grove »), comme lors des étapes précédentes. Laisser ça de côté pour le moment.

Ruban de LEDs . Brancher un ruban de LEDs sur la broche P1 de la carte. Utiliser le bloc « définir strip à NeoPixel sur broche P1 avec 30 DELs en RGB (format RGB) » puis « régler couleur sur strip sur rouge » (dans « Neopixel »), le tout dans « au démarrage ». Expliquer, si nécessaire, la notion de RGB. Essayer avec des couleurs différentes. Tester également « afficher arc-en-ciel sur strip de 1 à 360 ».

Portion de ruban. Utiliser le bloc « définir range à strip va de 0 plus 4 DELs » puis changer le bloc d’affichage pour « régler couleur sur range sur bleu ». Le ruban va devenir rouge, sauf les quatre premières lumières qui seront bleues. Ce bloc permet donc de n’allumer que les premières LEDs.

Échelle à ultrasons. Nous allons fabriquer un petit système qui va changer l’allumage du ruban selon la distance relevée par le détecteur. Pour cela :

  • Définir une nouvelle variable distance
  • Assigner à cette variable la valeur détectée par le capteur à ultrasons
  • Définir une nouvelle variable longueur, qui va compter le nombre de LEDs à afficher
  • Assigner à cette variable une transformation de la distance, longueur = plancher( projeter(distance, 0, 100, 1, 30))
  • Si cette longueur est strictement plus grande que zéro (évite les cas où le détecteur répond n’importe quoi, sinon le signal clignote) : régler tout le ruban sur une couleur, puis la portion sur une autre couleur

Conclusion (5 min)

Présenter les modalités d’accès et d’utilisation des machines de l’Atelier en dehors des animations.

Ressources