Fil d'Ariane
Mis à jour le mercredi 5 juillet 2017
  • 10 heures
  • Facile

Ce cours est visible gratuitement en ligne.

Ce cours est en vidéo.

Vous pouvez obtenir un certificat de réussite à l'issue de ce cours.

J'ai tout compris !

Programmez votre robot animal

Connectez-vous ou inscrivez-vous pour bénéficier de toutes les fonctionnalités de ce cours !

Maintenant que nous savons qu'il est possible de programmer Thymio avec différents langages, et notamment avec Thymio VPL (avec ou sans mode avancé) et Scratch pour Thymio, nous allons mettre cela en pratique ! Je vous propose d'essayer de programmer un même comportement de différentes façons.

Pour cela, vous allez d’abord essayer de programmer le comportement en VPL, puis de le compléter grâce au VPL avancé (avec timer et états si besoin). Ensuite, nous essaierons de traduire ce comportement dans un programme Scratch, en complétant un programme existant où il manque des instructions...

De cette manière, vous aurez une vision large de ce que vous pouvez faire avec un Thymio !

Vous allez voir combien peuvent être différents les programmes selon les langages, parfois même franchement pas cool (ça ne veut pas dire que le langage n’est pas bien, il est seulement mal adapté à ce qu’on veut programmer), mais n’ayez pas peur, ce n’est qu’une visite, vous ne serez pas obligés d’y vivre pour toujours. 😅

Le défi : Thymio joue au renard !

Cette fois Thymio explore et suit des pistes... Vous allez programmer le comportement suivant :

  1. Le robot est en vert et explore son environnement en avançant, tout en évitant les obstacles.

  2. Quand il rencontre une ligne noire (piste d’un autre animal), il s'arrête 2 secondes, puis enchaîne trois couleurs différentes en restant à chaque fois une seconde dans la couleur. À la fin il passe en bleu et suit la ligne. En sortie de ligne noire, il reprend son exploration et redevient vert. 

Programmez en VPL simple

Essayez de programmer le comportement demandé en VPL simple.

Pas de problème ? Pour la première partie de la consigne (exploration), vous devriez vous en sortir, mais pour la deuxième partie, hum c’est plus délicat…

En effet, VPL simple ne permet pas d’enchaîner des actions, par exemple de s’arrêter 2 secondes puis de changer de couleur. 

Contentez-vous de programmer l'exploration parmi les obstacles, la détection et le suivi de ligne noire, puis la reprise de l'exploration en sortie de ligne. Pour le reste il faudra attendre de passer au mode avancé...

Allez plus loin avec le VPL avancé

Qu’en est-il en VPL avancé, avec le timer et les états ? Vous devriez pouvoir programmer le comportement complet, alors essayez de programmer le comportement demandé.

Si le mal de crâne pointe et que vous avez besoin d’un petit coup de main, voici un petit extrait de mon programme en VPL avancé (attention, c'est un extrait, il y a des choses avant et après) :

Extrait du programme
Extrait du programme VPL avancé 

Ajoutez à cet extrait ce qui manque, notamment :

  • une 3ème couleur à la suite du rouge et jaune

  • le comportement d’exploration du robot tant qu'il n'a pas rencontré de ligne ! (Vous vous doutez qu'il s'agit du début de mon programme, que je vous ai caché car c'est quelque chose d'assez simple que vous avez déjà programmé dans la partie précédente...)

  • et finalement le suivi proprement dit de la ligne

Pour le suivi de ligne, il va vous falloir ajouter des instructions qui permettent de ne faire bouger le robot que si ce n’est pas la première fois qu’il rencontre la ligne, en jouant sur l'état du robot. Par exemple celle-ci :

Instruction à ajouter au programme
Instruction à ajouter au programme

En effet, d'après l'extrait du programme que je vous ai donné, quand le robot rencontre une ligne noire la première fois (par exemple de biais, par son capteur dessous gauche), c’est l’instruction suivante qui est exécutée :

Instruction déjà définie dans mon extrait
Instruction déjà définie dans mon extrait

L’état du robot est initialement de 4 arcs blancs. Quand le robot rencontre la ligne noire (ici de biais avec son capteur gauche), le robot s'arrête, fait de la musique, enclenche un timer (qui lui permettra d'enchaîner les actions de changement de couleurs, attente, etc.) et passe à un autre état. À la fin des actions déclenchées successivement par les timers, il est important que le robot finisse dans un état différent de l'état initial (4 arcs blancs) ! Par exemple :

Nouvel état du robot quand il a reconnu la piste et qu'il commence à la suivre
Nouvel état du robot quand il a reconnu la piste et qu'il commence à la suivre

Cet état permettra de déclencher les actions de suivi de la piste, dont la nouvelle instruction que je vous ai donnée ! (Il en manque encore 3 autres...)

Trouvez les 3 autres instructions correspondant à cet état qu'il faut ajouter pour guider le robot au cours de son suivi de la ligne
Trouvez les 3 autres instructions correspondant à cet état qu'il faut ajouter pour guider le robot au cours de son suivi de la ligne

Alors vous vous en sortez ? Et oui, on peut réussir ainsi à programmer le comportement complet désiré, mais c’est vrai que c'est un peu fastidieux de gérer tous ces évènements timer avec des états différents...

Programmez avec Thymio Scratch

Si vous aimez les défis, n'hésitez pas à explorer Thymio Scratch par vous même pour tenter de réaliser seul un programme qui fait le comportement demandé ! Il y a plusieurs façons de faire.

Mais si vous êtes un peu perdus dans Scratch, observez-plutôt mon programme à trou ci-dessous et essayez de deviner ce qui se cache derrière les nuages masquant quelques bouts du programme...

Programme à compléter
Programme à compléter

Quand on clique sur le drapeau vert, on lance le programme principal dans lequel des boucles  répéter jusqu'à écoutent des évènements concernant les capteurs de sol ( ground ).

Ces boucles “répéter jusqu'à” signifient “faire tant que”.

  • Premier “répéter jusqu'à” : tant que le robot n’est pas sur une ligne noire par un de ses capteurs, alors il évite les obstacles. Sinon, c’est qu’il a trouvé une ligne noire !

  • Deuxième “répéter jusqu'à” : tant qu’il n’est pas sur du blanc il suit la ligne. Sinon, c’est qu’il est sur du noir et suit la ligne.

Comprenez-vous comment le programme fonctionne ? Êtes-vous capable de retrouver ce qui se cache derrière les nuages ? Testez le programme et investiguez !

Quand vous êtes prêts, découvrez ma solution et l'explication complète du programme dans le pas à pas vidéo :

Si vous voulez poursuivre ce défi, rien ne vous empêche maintenant de chercher à le réaliser en programmant avec Thymio Blockly... Ou même Aseba Studio ! Si vous vous engagez sur cette voie, n'hésitez pas à partager vos tentatives et vos impressions sur le forum. Qu'est-ce qui vous a semblé le plus simple ? Le plus tordu ? Quel est votre langage préféré ?

En résumé

  • Il existe de nombreuses manière de programmer un comportement, que ce soit avec différents langages ou bien même en utilisant un seul langage : je vous ai proposé plusieurs variantes en Scratch, et il en existe encore d'autres !

  • Ce qui est important, c'est de bien comprendre la logique nécessaire en programmation : il faut être très rigoureux... Le diable (et les bugs !) se cachent dans les détails. 😉

  • Certains langages sont plus adaptés à certains comportements : les comportements séquentiels (actions successives) sont plus simples à gérer avec Scratch qu'avec les états et les timers de VPL. Par contre je suis sûr que vous préférez Thymio VPL et son interface très intuitive pour les comportements simples et purement évènementiels !

  • Si vous avez rencontré des problèmes techniques lors de la programmation de votre Thymio, pas de panique, ça fait partie du jeu en robotique... Tout se passe rarement comme prévu dans la vraie vie aussi. 

  • Thymio Scratch est encore en beta et évolue rapidement. Il est possible que vous ayez rencontré des bugs qui seront résolus dans une future version du logiciel... La suite au prochain épisode. 😉

 

Exemple de certificat de réussite
Exemple de certificat de réussite