Projet « Robotique » – Variante du projet avec Aseba_VPL
1, 2, 3, codez ! - Activités cycle 4 - Projet « Robotique » - Variante du projet avec Aseba/VPL
Discipline dominante |
Technologie |
Résumé |
Cette variante reprend les principales étapes des séances de programmation de Thymio, adaptées pour le langage Aseba/VPL. |
Matériel |
Pour chaque groupe
|
Avant-propos
Cette annexe reprend exactement le déroulé du projet « robotique avec Thymio » : tout le fil en est détaillé au cours des pages précédentes, et nous ne reprenons ici que les corrigés des étapes ou exercices, avec quelques commentaires pertinents le cas échéant.
Préparation
L’utilisation de VPL requiert l’installation d’Aseba Studio, que nous avons déjà décrite (https://www.thymio.org/fr:start). Le lancement est cependant un peu différent.
Pour lancer VPL | |
---|---|
Méthode 1 | Méthode 2 |
1. Brancher Thymio sur l’ordinateur avec le câble USB (il s’allume) 2. Lancer Thymio-VPL |
1. Lancer Thymio-VPL (une fenêtre « Choix d’une cible Aseba » s’ouvre) 2. Brancher Thymio sur l’ordinateur avec le câble USB (il s’allume) 3. Cocher la case « Port série », sélectionner « Thymio-II Robot », appuyer sur « Connecter » |
Pour programmer | |
1. Ecrire le programme |
Séance 2 : premier programme en VPL
Le professeur écrit à l’écran le programme suivant :
NB : VPL présente les instructions sous la forme de paires « capteur-actionneur » permettant d’expliquer quelle action effectuer dans quel cas. Les capteurs sont toujours à gauche et les actionneurs à droite.
Il demande aux élèves d’essayer de prédire ce que fera le programme (et ce qu’il ne fera pas : revenir à l’état initial).
Dans VPL, les composants du robot s’affichent très distinctement :
- Capteurs (représentés dans le langage VPL par des cartes sur fond orange) : à noter qu’il n’est pas possible dans VPL d’en lire des valeurs numériques. Dans « VPL avancé », on pourra nuancer un peu plus ce constat, mais de manière moins fine qu’avec Blockly.
- Actionneurs (représentés dans le langage VPL par des cartes sur fond bleu)
- Ordinateur : apparie des évènements liés aux détections par les capteurs (colonne de gauche sur l’interface VPL) et des actions liés aux actionneurs (colonne de droite).
Après l’étude de ce cas, les élèves dicteront comment compléter ce programme par un contrordre :
Le professeur démontre ainsi deux états fondamentaux des capteurs de Thymio vus par VPL : actif (icône blanche et rouge) et inactif (icône noire). Il passe sous silence pour l’instant l’état « indifférent » (icône grise) qui sera longuement approfondi à la séance suivante.
Note pédagogique :
L’interface de VPL présente à droite 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.
Séance 2 : défis pour prendre VPL en main
Défi 1 : Thymio avance grâce à la flèche du haut et s’arrête grâce au bouton central |
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. |
Séance 3 - Défi 4 : Thymio contourne les obstacles
Pour relever le défi 4, il faut prévoir une porte de sortie (ligne 5) : si Thymio ne détecte explicitement rien devant lui, alors il peut aller tout droit (sinon il ne redémarrerait jamais). Nous découvrons ici la première différence notable entre VPL et Blockly :
il est facile d’ajouter des conditions additives (logique
« ET ») avec VPL, ce qui nous permet de gérer facilement les 5
capteurs frontaux. Dans le cas A, Thymio avance tout droit lorsqu’on appuie sur la flèche du haut ; SI les trois capteurs centraux détectent un obstacle simultanément, ALORS Thymio s’arrête. C’est une logique « ET ». Dans le cas B, Thymio avance tout droit lorsqu’on appuie sur la flèche du haut ; SI l’un des trois capteurs centraux détecte un obstacle simultanément, ALORS Thymio s’arrête. C’est une logique « OU ». |
Séance 4 - Défi 5 : imiter le Thymio pisteur (cyan)
Les élèves peuvent remarquer que l’absence d’événement est aussi,
d’un point de vue programmatique, un événement à part entière. En
effet, les capteurs de Thymio ne sont pas capables stricto sensu de
détecter un sol noir : précisément, dans ce cas-là ils signalent
qu’ils ne détectent pas de sol blanc. La programmation VPL permet donc
de vérifier l’état actif des capteurs (carré blanc avec lumière rouge =
« je détecte »), passif (carré noir = « je ne détecte
rien ») ou indifférent (carré gris = « je ne regarde pas
l’état de ce capteur »). |
Séance 5 : Thymio dans tous ses états
Note pédagogique :
Cette étape est indispensable en programmation VPL, car ce
langage de programmation, en version simplifiée, ne permet pas de créer
des variables ou de manipuler de la mémoire. Cependant, le saut
conceptuel qui permet de passer de VPL « simple » à VPL
« avancé » risque de freiner la progression des élèves les en
difficulté.
Les élèves arrivent à la conclusion qu’il faut dédier un seul capteur au suivi de la piste (disons le gauche) et libérer l’autre (ici le droit) pour la lecture du code-barres. Il faut donc apprendre à :
- Suivre une piste avec un seul capteur
- Lire un code-barres
- Retenir quel mode utiliser en fonction de l’information du code-barres
Le professeur annonce que Thymio a effectivement une (toute) petite
mémoire interne qu’il est possible d’utiliser pour mémoriser des
sous-programmes différents à utiliser dans des conditions différentes.
(Dans la plupart des langages de programmation, Blockly en
particulier, cette entité serait appelée « variable ».) Il
introduit alors le mode « avancé » de la programmation
Thymio : ce mode permet de réaliser des programmations plus fines,
en jouant sur la sensibilité des capteurs et en ayant accès aux
« états internes » de Thymio. Le professeur fait la
démonstration sur son propre ordinateur projeté au tableau : ce
mode s’active en appuyant sur l’icône « lauréat » de VPL.
Il y a plusieurs changements remarquables : les icônes des
évènements sont plus complexes et il y a de nouvelles cartes avec des
réveils ou un cercle de 4 segments. Les premières permettent de gérer
des chronomètres, et les secondes donnent accès à l’interface des états
de Thymio. On retrouve également ce cercle segmenté combiné
systématiquement à chaque action sous forme d’une carte verte.
Le professeur reprend alors le programme du premier exercice effectué par les élèves :
Il leur demande de trouver l’algorithme qui permettrait d’avoir le même comportement, mais en appuyant exclusivement sur la flèche « haut ». Ils élaborent un algorithme comme celui-ci, que le professeur traduit aussitôt sous VPL :
Les élèves appliquent ce programme à leur propre Thymio, pour vérifier ce qu’il fait. C’est également la première fois qu’ils doivent appliquer plusieurs actions au même évènement. Ils observent en particulier que le capot du Thymio s’illumine partiellement (arc N-W) lorsqu’il roule : c’est la signature de l’état interne qui a été activé.
Les élèves peuvent éventuellement
remarquer que les états se gèrent comme des capteurs : il est
possible de combiner des états, ou d’en ignorer d’autres (arc blanc =
état 0, arc orange = état 1, arc gris = état indifférent). Le professeur
demande aux élèves de compter combien d’états internes sont
disponibles : puisqu’il y a quatre « cadrans » (on
pourrait parler de « bits »), chacun avec deux états
explicites, il y a 2 (pour le premier bit) x 2 (pour le second bit) x 2
(pour le troisième bit) x 2 (pour le quatrième bit) = 16 états
possibles… Thymio peut donc différencier au plus 16 situations
différentes. Par défaut, à l’allumage, Thymio est dans l’état 0000.
Dans l’exemple ci-dessus, l’état « ROULE » est codé par 1XXX,
et l’état « STOP » est codé par 0XXX. (On note par X les bits
non pertinents. On peut bien évidemment les expliciter 1000 et 0000.)
Note pédagogique :
Il n’est pas attendu ici que les élèves comprennent que 4 bits
permettent de décrire 16 informations différentes (ici, des états
internes de Thymio). L’approche combinatoire proposée suffit. Cela peut
néanmoins servir de déclencheur pour une séance parallèle sur le
binaire. Voir à ce sujet la séquence 1 du projet « 1, 2, 3…codez ! » pour le cycle 3.
Séance 5 : sensibilité de Thymio
Sous VPL, le programme ressemble à ceci :
Les élèves découvrent ainsi qu’il est possible d’obtenir des valeurs plus nuancées sur les capteurs, avec une quatrième option disponible : « mi-noir mi-blanc », définie par des seuils minimum et maximum. |
Note pédagogique :
Dans le cadre de ce calibrage, il n’est évidemment pas obligatoire de
faire avancer le robot, et encore moins d’ajouter les états internes,
mais c’est une bonne occasion de s’approprier l’outil vu à l’instant. De
plus, cela permet d’écrire des programmes plus propres, avec des
comportements distincts « repos » et
« actif » : Thymio ne commence à agir que lorsqu’on le
déclenche.
Séance 5 : suiveur de ligne amélioré
Le programme de la tortue est désormais :
Les différents états de Thymio sont définis ici de la façon suivante :
|
Séance 6 : le programme du lièvre
Le programme du lièvre est quasi identique à celui de la tortue vu ci-dessus : le principal changement réside dans la vitesse de déplacement.
Solution 1 : freinage d’urgence |
Solution 2 : suivre la tortue |
Séance 7 : programme final du lièvre
Le programme suit le logigramme dressé par la classe, avec une dénomination différente pour les différents états :
En ce sens, l’état 1X00 répond parfaitement à ce critère, car c’est le point commun entre les états « suiveur 1000 » et « pressant 1100 ». Le programme suivant est une solution possible. En particulier, il est optimisé au sens où il limite les cas redondants. Par exemple, il est possible de programmer deux lignes distinctes « si mon état est 1000 [SUIVEUR] et que mon capteur de châssis gauche voit un sol gris, alors je vais tout droit » et « si mon état est 1100 [PRESSANT] et que mon capteur de châssis gauche voit un sol gris, alors je vais tout droit », ou alors de factoriser tout ceci en « si mon état est 1X00 et que mon capteur de châssis gauche voit un sol gris, alors je vais tout droit ». Il est envisageable de simplifier beaucoup le programme proposé, mais au détriment de la lisibilité, ce qui à ce stade d’apprentissage ne serait pas constructif. |
|
Ce programme corrigé est disponible, ainsi que tous les autres, ICI. |
À gauche: situation initiale, la tortue a un peu d’avance sur la voie de droite, le lièvre la suit de peu sur la même voie.
À droite : la tortue continue son chemin (on repère bien ici
l’état 1000 du mode SUIVEUR), tandis que le lièvre se déporte sur la
gauche pour doubler (on repère également l’état 0010 du mode DEPORTE).
Extrait de "1, 2, 3... codez !", Editions Le Pommier, 2016-2017. Publié sous licence CC by-nc-nd 3.0.