Projet « Robotique » – Séance 4 Programmer un suiveur de ligne
1, 2, 3, codez ! - Activités cycle 4 - Projet « Robotique » - Séance 4 : Programmer un suiveur de ligne
Discipline dominante |
Technologie |
Résumé |
Les élèves programment eux-mêmes un comportement qui imite le mode « suiveur de ligne » de Thymio. Ils décrivent tout d’abord l’algorithme de ce mode, puis l’implémentent avec Blockly. |
Notions |
Langages
Algorithmes
|
Matériel |
Par groupe :
|
Situation déclenchante
Forts des acquis de la séance précédente, les élèves vont pouvoir désormais reproduire un autre mode : le mode cyan, qui fait partie des modes qu’ils n’ont probablement pas su sonder auparavant. Le professeur distribue alors des pistes préparées à l’avance qui vont aider les élèves à caractériser le mode cyan « suiveur de piste ». Ces pistes devraient leur rappeler la simulation de l’EPFL démontrée en vidéo (cf. séance 2), qui reposait sur un réseau routier symbolisé par des pistes de couleur sombre.
Observer le Thymio cyan
La mission des élèves est simple : mettez votre Thymio en mode cyan et observez ce qu’il fait sur cette piste.
Les élèves comprennent vite que si Thymio tournait en rond, c’est qu’il
cherchait bel et bien une piste à suivre. Ensuite, une fois sur une
piste, Thymio la parcourt en redressant toujours sa trajectoire pour ne
pas la perdre dans les virages ou les croisements.
Défi 5 : imiter le Thymio suiveur de piste
Maintenant, les élèves doivent programmer une imitation simplifiée de ce mode avec Blockly.
Note pédagogique :
Il est trop ambitieux de vouloir reproduire à l’identique les
subtilités de ce mode. Le but est ici d’acquérir une méthode pour en
faire une imitation acceptable. Pour être précis, tous les modes
préprogrammés ont été rédigés en programmation textuelle (ce que permet
Aseba Studio), qui autorise beaucoup plus de fonctionnalités et de
finesse que la programmation graphique. Les compétences de programmation
textuelle relèvent davantage du lycée.
Dans un premier temps, les élèves réfléchissent à l’algorithme à
implémenter. Pour cela, ils peuvent indifféremment décrire leur méthode
en français, en dessiner un logigramme (si le professeur a
introduit cet outil), etc… Ils ont évidemment le droit d’observer Thymio
cyan autant que nécessaire pour bien comprendre quels capteurs et
actionneurs sont en jeu, et dans quelles conditions.
Une mise en commun des propositions des groupes permet de s’accorder sur l’algorithme à implémenter :
Note scientifique :
Ce logigramme, tout à fait représentatif du fonctionnement de Blockly ou
de VPL, passe sous silence un ingrédient implicite : ces
conditions sont testées en permanence, indéfiniment. On parle de
« boucle infinie ».
Chaque groupe doit désormais implémenter cet algorithme sous Blockly, pour que Thymio le comprenne. Lorsque Thymio ne trouve pas de piste, il tourne en rond : la direction est tout à fait arbitraire (dans la solution que nous proposons, il tourne à gauche : dans l’algorithme ci-dessus la formulation est volontairement floue). Voici une solution possible :
Note pédagogique :
Comme illustré ici, on peut associer plusieurs actions à un seul et
même évènement. C’est facultatif pour l’instant, mais cela deviendra
vite obligatoire, dès la séance suivante. Il n’est pas indispensable de
colorier Thymio de façon différente à chaque étape, mais c’est une bonne
habitude de programmation, qui facilitera le débogage par la
suite : pourquoi est-il bloqué dans telle couleur ? pourquoi
telle couleur n’apparaît-elle jamais ? etc…
Note scientifique :
- Les élèves peuvent se rendre compte 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 Blockly permet toutefois de passer outre ces subtilités : il existe quatre détections possibles, « quelque chose », « du blanc », « du noir », ou « rien ».
- L’aspect le plus délicat à peaufiner ici est le suivi des virages très serrés. Dans ce cas-là, il faut certes tourner pour revenir sur la piste, mais surtout il ne faut pas non plus se déporter (au risque de quitter la piste) : il faut donc faire avancer une roue et simultanément faire reculer l’autre, pour que Thymio pivote sur place ! C’est la distinction que nous faisons ci-dessus en précisant si Thymio « roule en tournant à gauche » ou « tourne dans le sens horaire ».
Mise en commun
Chaque groupe présente sa solution à la classe, qui identifie les meilleures idées pour élaborer le meilleur programme possible. Comme souvent, en informatique, il n’y a pas une solution unique à ce problème. Tant que la solution choisie par la classe répond au cahier des charges (« imiter le comportement de Thymio cyan »), c’est une bonne réponse.
Conclusion
Les élèves élaborent une conclusion commune, comme celle-ci :
- Un bug est une erreur dans un programme.
- Introduire des repères dans le comportement du robot (émission d’un son, changement de couleur…) permet de faciliter la correction des bugs.
- Quand un capteur détecte quelque chose, que ce soit blanc ou noir, on dit qu'il y a un événement.
Extrait de "1, 2, 3... codez !", Editions Le Pommier, 2016-2017. Publié sous licence CC by-nc-nd 3.0.