SE CONNECTER
1,2,3... codez ! | Le site de la Fondation La main à la pâte
Module 123 Codez | Programmer | Informatics and Digital Creation

Projet « Robotique » – Séance 2 Découvrir Thymio

1, 2, 3, codez ! - Activités cycle 4 - Projet « Robotique » - Séance 2 : Découvrir Thymio

Discipline dominante

Technologie

Résumé

Les élèves découvrent Thymio, un robot que des étudiants de Master utilisent pour simuler un réseau routier. Ils se l’approprient, et commencent à le programmer par eux-mêmes avec Blockly, un langage de programmation graphique.

Notions

Machines

  •  Les machines qui nous entourent ne font qu'exécuter des "ordres" (instructions)

Robots

  •  Un robot est une machine qui peut interagir avec son environnement.
  •  Un robot possède des capteurs qui réceptionnent des signaux de son environnement.
  •  Un robot possède des actionneurs : moteurs, DEL, haut-parleurs…
  •  Un robot possède un ordinateur qui dicte quelles actions faire selon la situation.
  •  Un robot agit dans le monde réel : son comportement ne dépend pas uniquement de son programme, car ses actions sont aussi influencées par son environnement, sa forme ou encore son poids
  •  Quand un capteur détecte quelque chose, on dit qu'il y a un événement

Langages

  •  Il existe de nombreux langages de programmation, adaptés à différents usages
  •  Pour donner des instructions à une machine, on utilise un langage de programmation, compréhensible à la fois par la machine et par l'être humain
  •  Blockly (ou Scratch, Snap, mBlock, VPL...) est un environnement de programmation graphique, qui utilise un langage simple.
  •  Certaines instructions ne s’exécutent qu’au déclenchement d’un évènement : on parle de programmation évènementielle.

Matériel

Pour la classe :

  •  Un vidéoprojecteur

Par groupe :

  •  Un robot Thymio
  •  Un ordinateur avec Aseba Studio installé

Avant-propos

Il existe de nombreuses façons de programmer Thymio. Nous utilisons ici Aseba Studio/Blockly, que nous appellerons désormais plus simplement « Blockly » même si c’en est une version très spécialisée (l’interface Blockly n’est disponible que depuis la version 1.5 d’Aseba). Nous fournissons également des corrigés utilisant Aseba Studio/VPL, spécifiquement conçu pour Thymio, en variante. Il est de même possible d’utiliser des plugins pour Scratch ou Snap ! ou mBlock pour ce faire, mais le professeur  devra adapter de lui-même les corrigés que nous proposons ici.

Préparation

Télécharger le logiciel Aseba Studio à partir de la page https://www.thymio.org/fr:start, qui permet de choisir son environnement de travail. Ce logiciel est gratuit et disponible pour les systèmes d’exploitation Windows, Mac et linux. L’installation ne pose aucun problème : il suffit d’accepter les options par défaut (en particulier, choisir l’option « pour Thymio II (Recommandée) ».

Pour lancer Aseba Studio/Blockly Pour programmer
1.    Brancher Thymio sur l’ordinateur avec le câble USB (il s’allume)
2.    Lancer Aseba Studio pour Thymio
3.    [Optionnel] dérouler les onglets prox.horizontal (ce qui permet de lire les valeurs des 7 capteurs sur le pourtour du robot) et prox.ground.delta (ce qui permet de lire les valeurs des 2 capteurs de châssis)
4.     Cliquer sur « Démarrer Blockly »
1.    Écrire le programme
2.    Sauvegarder le programme
3.    Exécuter le programme

Si le robot est relié à l’ordinateur par un câble et que le logiciel est fermé par erreur, l’ordinateur risque de ne plus détecter le robot : dans ce cas, débrancher et rebrancher le robot.

Situation déclenchante

Suite aux débats en classe de la séance précédente, le professeur  diffuse la vidéo d’un projet de robotique d’étudiants de master de l’EPFL qui simule un réseau routier.
Les élèves décrivent ce qu’ils observent : des robots  qui peuvent changer de couleur, certains jouant le rôle de voitures, d’autres celui de feux de circulation. Il y a aussi des marquages sur le bord des pistes sur lesquelles circulent les robots.

Découverte de Thymio

Le professeur distribue alors un exemplaire de ces robots à chaque groupe. Les élèves doivent découvrir, en autonomie, ce que peut faire Thymio.
Au bout de 5 minutes, les élèves ont découvert comment l’allumer ou l’éteindre : ils ont également remarqué que Thymio pouvait changer de couleur, et qu’il ne réagissait pas de la même façon selon la couleur qu’il arborait. Le professeur explique alors que chaque couleur correspond à un mode préprogrammé, et que les élèves doivent donc chercher à quoi correspond chaque mode.
Au bout de 10 minutes,  et en l’absence de certains matériels, ils ne peuvent décrire que 4 des six modes, en leur trouvant à chaque fois un surnom, comme par exemple :

  •  Thymio « amical » (vert) : il suit l’obstacle placé devant lui. Si l’obstacle est trop près, il recule.
  •  Thymio « peureux » (rouge) : il fuit l’obstacle placé devant lui.
  •  Thymio « obéissant » (mauve) : il avance ou tourne quand on appuie sur les flèches de son capot. Appuyer plusieurs fois sur la même flèche accélère le mouvement.
  •  Thymio « explorateur » (jaune) : il avance seul, et esquive les obstacles placés devant lui.

Notes pédagogiques :
Les élèves auront sans doute repéré deux autres modes (cyan et bleu), mais sans réellement pouvoir les interpréter.

  •  Nous utiliserons le Thymio cyan à la séance suivante.
  •  Le Thymio bleu est sensible au son : pour des raisons évidentes nous déconseillons son utilisation en classe. Cependant, il est possible de l’explorer moyennant quelques précautions : un seul élève pourra faire des tests devant la classe entière priée de rester complètement silencieuse.

Les élèves auront remarqué qu’aucun des quatre modes étudiés jusqu’ici ne reproduit ce qu’ils ont vu dans la vidéo. Certains vont peut-être émettre l’hypothèse qu’il faudrait des pistes sur lesquelles faire évoluer leurs robots, et c’est effectivement une réponse, bien que partielle.

Dans l’immédiat, les élèves peuvent désormais définir ce qu’est un robot. Le professeur leur demande : à votre avis, pourquoi met-on Thymio dans la catégorie des robots ?  Les idées sont notées au tableau, sans pour l’instant donner la réponse.

Un premier programme en Blockly

Le professeur précise que les Thymio de la vidéo ont été reprogrammés pour les besoins de la simulation. Et les élèves vont eux-mêmes reproduire une simulation routière, qui nécessitera de modifier les comportements par défaut de leur(s) Thymio, en utilisant un langage de programmation dédié, « Aseba Studio ».

Le professeur démontre le fonctionnement de l’interface Blockly pour Aseba Studio en créant en direct le programme suivant :

Il demande alors aux élèves d’essayer de deviner ce que  signifie ce programme, et ce que Thymio fera si on lui demande de l’appliquer.  Certains élèves proposent que Thymio prendra une couleur verte s’il détecte quelque chose devant lui. Le professeur exécute alors le programme pour vérifier cette hypothèse.

La démonstration permet d’aborder dès maintenant deux notions :

1. Thymio est un robot, car il est doté de capteurs, d’actionneurs, et d’un ordinateur. Les élèves peuvent essayer de les repérer :

  •  Capteurs (représentés dans le langage Blockly par des déclencheurs bordeaux ou des valeurs de capteurs bleues) comme les 9 détecteurs à infrarouge (carrés noirs dotés d’une DEL pour signaler leur activité) sur le pourtour et le châssis, mais aussi le touchpad, (les flèches et le bouton central) ou encore, bien qu’invisibles : le microphone et l’accéléromètre.  
  •  Actionneurs (représentés dans le langage Blockly par des blocs beiges) : plusieurs DEL d’ambiance, pour le capot et pour le châssis, deux moteurs indépendants pour les roues, un haut-parleur.
  •  Ordinateur : associe des évènements liés aux détections par les capteurs et des actions liées aux actionneurs, via un programme. Sans démonter Thymio, ils ne peuvent pas observer le microprocesseur qui l’applique.

2. Thymio obéit strictement au programme fourni : ici, on ne lui a pas dit quoi faire quand il ne détectait plus rien face à lui. Une fois teinté en vert, il garde donc cette couleur quoi qu’il arrive. Il faut donc souvent initialiser ses programmes, et inclure des portes de sortie, ou contrordres, pour revenir à l’état initial.

Les élèves dictent alors comment compléter ce programme pour revenir à l’état initial :

Le professeur démontre ainsi deux états fondamentaux des capteurs de Thymio : actif (« détecte quelque chose ») et inactif (« détecte rien »). Il passe sous silence pour l’instant les autres valeurs disponible (« détecte du noir » ou « détecte du blanc ») qui serviront implicitement plus loin.
Le professeur précise enfin que Blockly permet une programmation évènementielle et parallèle : chaque action est déclenchée par certains évènements. Des actions différentes peuvent démarrer simultanément si les évènements qui les déclenchent (typiquement sur deux capteurs distincts) sont eux aussi simultanés.

Note pédagogique :
En arrière-plan, il est possible de voir Aseba Studio écrire en temps réel l’équivalent textuel du programme graphique réalisé. Cela permet d’aborder le fait qu’il existe de nombreux langages de programmation, certains graphiques, certains textuels, mais que tous doivent être interprétés par la machine.

Quelques défis pour prendre Blockly en main

Les élèves vont se familiariser avec Blockly en relevant plusieurs défis : il va s’agir de  reproduire partiellement les comportements observés en mode mauve (obéissant) et en mode jaune (explorateur). Nous supposons que chaque défi permet d’améliorer le programme petit à petit, en ajoutant progressivement de nouveaux éléments, plutôt que de recommencer de zéro à chaque fois.

Défi 1 : Thymio avance grâce à la flèche du haut et s’arrête grâce au bouton central

Voici une solution possible. On peut ajouter de nouvelles instructions pour complexifier le programme et ajouter des fonctionnalités du robot.

Défi 2 : Thymio tourne grâce aux flèches

Défi 3 : Thymio s’arrête si un obstacle est devant lui

À ce stade, nous arrêtons l’imitation du mode mauve pour incorporer une détection d’obstacles.

Conclusion :

Les élèves élaborent une conclusion commune, par exemple :

  •  Un robot est une machine qui peut interagir avec son environnement.
  •  Un robot possède un ordinateur, des capteurs et des actionneurs, tous connectés entre eux.
  •  Pour donner des instructions à une machine, on utilise un langage de programmation, compréhensible à la fois par la machine et par l'être humain
  •  Certaines instructions ne s’exécutent qu’au déclenchement d’un évènement : on parle de programmation évènementielle.
  •  Blockly est un langage de programmation que Thymio peut comprendre.

Ils peuvent y ajouter un bref descriptif des modes préprogrammés de Thymio qu’ils auront étudiés.