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 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

  •  Certaines instructions s’exécutent simultanément à d’autres : on parle de programmation parallèle.
  •  Un bug est une erreur dans un programme.
  •  Un tout petit bug peut parfois avoir des conséquences énormes.

Algorithmes

  •  Un algorithme peut contenir des instructions élémentaires, des tests, des boucles
  •  Une boucle permet de répéter plusieurs fois la même action
  •  Certaines boucles, dites "infinies", ne s'arrêtent jamais.

Matériel

Par groupe :

  •  Une piste pré-imprimée sur feuille A3 [Il existe de nombreuses pistes pour Thymio disponibles sur internet. Celle-ci convient parfaitement.]
  •  Un robot Thymio
  •  Un ordinateur avec Aseba Studio installé

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.