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 5 Programmer un suiveur de ligne amélioré


1, 2, 3, codez ! - Activités cycle 4 - Projet « Robotique » - Séance 5 : Programmer un suiveur de ligne amélioré

Discipline dominante

Technologie

Résumé

Pour que Thymio puisse recueillir des informations sur son chemin via des « codes-barres », les élèves modifient leur suiveur de ligne : il n’utilise plus désormais qu’un seul capteur de châssis au lieu de deux.

Notions

Machines

  •  Une variable est un nom que l'on donne à une zone de mémoire. Elle permet de stocker une valeur et de la réutiliser plus tard, ou de la modifier.

Matériel

Par groupe :

  •  Un robot Thymio
  •  Un ordinateur avec Aseba Studio installé
  •  La Fiche 3

Pour la classe :

  •  Un vidéoprojecteur
  •  Une piste réalisée avec les tronçons des Fiches 4, 5 ou 6

Préparation

Le professeur prépare à l’avance une piste avec les tronçons des Fiches 4, 5 ou 6 : Thymio devra la parcourir avec le bord noir à sa droite et le bord blanc à sa gauche. La piste doit  inclure des virages dans les deux sens pour bien tester la robustesse des programmes proposés.

Situation déclenchante

Les élèves rappellent ce qui a été vu à la séance précédente : Thymio peut suivre des lignes pour aller où on veut l’emmener. Le professeur demande alors ce qui peut se passer si Thymio « suiveur de ligne » rencontre une intersection.
Les élèves débattent rapidement et plusieurs hypothèses font surface :

  •  Selon son orientation et sa vitesse, il peut aller parfois à droite ou parfois à gauche
  •  Son programme pourrait lui dire quoi faire : aller toujours à droite, ou toujours à gauche, ou choisir aléatoirement

Le professeur catégorise ces propositions selon deux axes : dans le premier cas, cela dépend de l’environnement, dans le second cas, cela dépend de la programmation du robot. C’est ce second cas qui va être étudié.

Pour cela, les élèves doivent trouver comment les étudiants de Master ont pu donner des informations complémentaires à leurs robots. Ils visionnent à nouveau la vidéo de l’EPFL, pour trouver des éléments de réponse : https://www.thymio.org/creations-fr:thymio-reseau-routier
Les élèves peuvent repérer trois choses :

  •  Les pistes ne sont pas noires comme la leur…
  •  Il y a des codes-barres sur le côté des pistes…
  •  Les Thymio « feu de circulation » sur les ronds-points donnent des informations d’une manière ou d’une autre aux autres Thymio… (pourquoi certains s’arrêteraient-ils au feu alors que d’autres pourraient aller tout droit ou tourner ?)

Le professeur leur confirme qu’il y a effectivement un dialogue wifi qui s’engage entre les différents Thymio, mais qu’il est possible, en classe, de reproduire des comportements complexes en utilisant simplement un système de codes-barres. Mais comment faire, alors que les deux capteurs de châssis du Thymio sont concentrés sur le suivi de piste ?
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.

Note pédagogique :

  •  La programmation d’un vrai lecteur de codes-barres pour Thymio est :

- impossible avec VPL ;
- difficile avec Blockly ;
- conseillée en mode textuel (ce qui permet de régler la fréquence de lecture des codes-barres en fonction de la vitesse de déplacement des Thymio).

  •  Nous ne programmons donc pas, dans ce qui suit, un vrai lecteur de code-barres : nous nous contentons de « bornes » simples, noires, qui joueront le rôle de « bip ».

Thymio dans tous ses états (classe entière)

Le professeur annonce que Thymio a effectivement une petite mémoire interne qu’il est possible d’utiliser pour mémoriser des sous-programmes différents à utiliser dans des conditions différentes. Il 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 Blockly :

Les élèves appliquent ce programme à leur propre Thymio, pour vérifier qu’il répond bien à la consigne.

Note scientifique :
 Dans Aseba/Blockly, les seules variables possibles sont des tableaux, ce qui complique légèrement l’écriture mais ne change pas l’algorithme.

Exploration : la sensibilité de Thymio (par groupes)

Les élèves peuvent maintenant programmer le suiveur de ligne amélioré. Pour cela, ils doivent tout d’abord rendre leur Thymio borgne, en masquant le capteur droit (qui sera réservé à la lecture d’informations) avec de la patafix® ou du scotch opaque. Puis le professeur  leur demande comment faire pour n’utiliser qu’un capteur, mais néanmoins savoir précisément où Thymio se trouve par rapport à la piste.
Les élèves auront probablement remarqué que les pistes de la vidéo n’étaient pas tout à fait noires, à bord francs : elles sont effectivement dégradées, allant du noir sur le bord droit au gris clair sur le bord gauche. En effet, les capteurs de Thymio ne sont pas « binaires » : ils peuvent tout à fait détecter des nuances de gris, et pas seulement du noir ou du blanc.

Note scientifique :
Les capteurs de Thymio sont sensibles à l’infrarouge : nos notions de « blanc » et « noir » définies visuellement ne sont qu’extrapolables à ce domaine ; le choix du matériau (encre, papier) peut donc poser problème. De plus, seul le mode textuel d’Aseba Studio permet de profiter pleinement de toute la gamme des mesures de ces capteurs.

Le premier défi des élèves consiste à leur faire étalonner leur Thymio. Dans ce cas précis, le professeur  distribue la Fiche 3 et demande aux élèves : Faites avancer Thymio tout droit sur cette feuille, et faites-le changer de couleur en fonction de la nuance de gris détectée.

Note pédagogique :
 Dans le cadre de ce calibrage, il n’est évidemment pas obligatoire de faire avancer le robot, et encore moins d’utiliser des variables, 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.

Les élèves peuvent compléter le programme de leur Thymio avec ces instructions :

Note scientifique :    
Il ne s’agit pas d’un réel calibrage : au contraire, les élèves vont devoir adapter leur programme à la sensibilité du Thymio qu’ils ont entre les mains. Il sera donc idéal de leur laisser le même robot à chaque séance pour ne pas avoir de mauvaise surprise lors des séances suivantes, à moins de recommencer cette étape à chaque reprise. Il faut donc sauvegarder ce programme pour les « calibrages » futurs.

Conclusion : suiveur de ligne amélioré (par groupes)

Les élèves peuvent enfin repartir de ce programme pour améliorer leur suiveur de ligne. Ils testeront leur Thymio sur la piste commune.
Le programme complet devient :

On voit bien ici que l’état 0 correspond à l’état « repos » : il faut appuyer sur la flèche « haut » pour que le suiveur de ligne démarre (état 1). Dans tous les cas, le bouton central remet Thymio au « repos » (état 0). Encore une fois, il n’y a pas de solution unique : tant que le Thymio « borgne » (avec le capteur droit masqué) réussit à suivre la piste de test, quelle que soit la position initiale où on le place, le défi est réussi.
Ici, les couleurs choisies (trois nuances de vert) préfigurent la mise en situation de la séance suivante : le suiveur ci-dessus sera la « tortue » de la fable de la Fontaine.

Les élèves reproduisent enfin dans leur cahier de projet le logigramme du suiveur de ligne :