L'extension Thymio
Introduction
Thymio est un robot suisse open source dédié au monde de l’éducation. Il a été développé en 2011 par l’École Polytechnique Fédérale de Lausanne. L’objectif de ce projet était de proposer un outil pour faire découvrir à des néophytes (enfants et adultes) la programmation en utilisant différents langages : Aseba Studio, Thymio VPL ou Blockly4Thymio. Très vite, ce robot est devenu un incontournable dans le monde de l’éducation en raison de sa souplesse de programmation et du spectre des langages qu’il couvre.
Scratch pour Thymio est un logiciel externe à Aseba. Il s’agit d’une extension disponible dans un premier temps sous ScratchX puis depuis mai 2019 sous Scratch 3 en version Beta. C’est cette dernière extension qui a été utilisée pour rédiger ce chapitre.
Thymio et Scratch 3
1. Présentation
Thymio est un robot blanc qui peut se déplacer dans toutes les directions. Il est composé de nombreux capteurs et de LED lui permettant d’interagir avec son environnement. Thymio est pourvu de :
-
Deux moteurs DC : il s’agit de moteurs à double courant continu. Sur chacun des moteurs est positionnée une roue.
-
Cinq boutons tactiles (dessus) pour sélectionner quatre modes préprogrammés. Ils peuvent être utilisés pour déclencher des instructions.
-
Sept capteurs infrarouges de proximité : cinq capteurs sont positionnés à l’avant et deux à l’arrière pour détecter les obstacles situés jusqu’à 10 cm environ.
-
Deux capteurs de sol : situés en dessous et dirigés vers le sol, ces deux capteurs infrarouges font office de suiveur de ligne. Thymio peut ainsi suivre un tracé en toute autonomie.
-
Un capteur fait office de récepteur pour la télécommande.
-
Un haut-parleur (sur le dessus) : de la musique peut être diffusée.
-
Un capteur de température situé sur le côté gauche.
-
Un accéléromètre trois axes pour connaître sa position, c’est-à-dire son angle d’inclinaison.
-
Quatre fixations mécaniques (sur le dessus) : situées aux quatre...
Les blocs
Quarante-trois blocs sont spécifiques à Thymio pour contrôler les deux moteurs, les capteurs ainsi que les différentes LED.
1. Les moteurs
Ce bloc est pourvu d’un menu déroulant et d’une zone à valeur.
Le menu déroulant permet de spécifier le moteur concerné par ce bloc. Les moteurs peuvent tourner indépendamment l’un de l’autre (moteur gauche ou moteur droit) ou en même temps (tous).
Comme nous l’avons vu précédemment avec les Lego WeDo et Mindstorms, si seul le moteur gauche est activé, le robot tourne vers la droite. Si seul le moteur droit est activé, le robot tourne vers la gauche.
La zone à valeur sert à définir la puissance du moteur, c’est-à-dire sa vitesse.
Ce bloc permet d’arrêter les moteurs. La puissance est à 0.
Ce bloc permet d’allumer les deux moteurs et faire avancer Thymio de la distance spécifiée exprimée en simili mm (unité de mesure se rapprochant des millimètres). Si la valeur est positive, il avance et si elle est négative, il recule.
Exemples de déplacements
quand la touche flèche haut est pressée
avancer 50 // Thymio se dirige vers l’avant.
quand la touche flèche bas est pressée
avancer -50 // Thymio se dirige vers l’arrière.
quand la touche espace est pressée
stop moteurs // pour arrêter les déplacements.
Ce bloc utilisé pour faire avancer (valeur positive) ou reculer (valeur négative) est constitué de deux zones à valeurs :
La première, pour définir la distance à parcourir en fonction d’une valeur positive ou négative.
La deuxième, pour définir la vitesse de déplacement en simili mm/ s.
Permet de faire avancer ou reculer Thymio un temps déterminé, mesuré en secondes.
Permet de tourner vers la gauche en spécifiant un angle inférieur à 0, ou de tourner vers la droite en spécifiant un angle supérieur à 0.
Ce bloc est utilisé pour faire tourner Thymio. La première zone de valeur est exprimée en degrés. Les valeurs inférieures à 0 permettent de tourner vers la gauche, et les valeurs supérieures...
Des déplacements autonomes
Ce programme est un exemple de déplacement autonome. Lorsque Thymio détecte un obstacle, il recule et tourne sur sa droite. D’autres instructions pourraient être définies.
quand drapeau vert est cliqué
répéter indéfiniment // ouverture d’une boucle de répétition. Elle contient le bloc utilisé pour faire avancer Thymio, et l’algorithme pour lui faire éviter des obstacles.
leds fixer couleur 50 pour tout// toutes les LED présentes sur Thymio sont allumées en vert.
avancer 50 // la valeur définie étant positive, Thymio se déplace vers l’avant. Cette valeur peut être modifiée.
si 2000 < capteurs horizontaux alors // si la valeur mesurée par les capteurs horizontaux est supérieure à 2000, cela signifie qu’un obstacle est présent.
leds fixer couleur 0 pour tout // toutes les LED présentes sur Thymio deviennent rouge.
Un son peut être ajouté pour alerter du danger !
avancer -100 // la valeur étant négative Thymio recule.
tourner 90 en 1 s // Thymio tourne ensuite vers la droite avant de continuer à avancer.
Fermeture de la condition.
Fermeture de la boucle de répétition.
quand la touche espace est pressée
stop moteurs // cette...
Un suiveur de ligne
Grâce aux deux capteurs situés en dessous de Thymio, vous pouvez le faire suivre une ligne noire sur fond plan. Pour un meilleur résultat, les lignes doivent être courbes et non avec des angles droits.
Ce programme nécessite la création de deux variables utilisées pour définir la puissance des moteurs, et s’ils sont allumés ou éteints. Elles ont pour nom Moteur gauche et Moteur Droit.
Le programme est constitué de quatre conditions pour définir la position de la ligne noire et suivre son tracé.
quand drapeau vert est cliqué
répéter indéfiniment // ouverture d’une boucle de répétition.
Première condition de type si () sinon : si aucune ligne noire n’est présente.
si capteur dessous 0 > 450 et capteur dessous 1 > 450 alors // si le capteur de gauche et le capteur de droite détectent du blanc cela signifie qu’il n’y a pas de ligne noire sous Thymio. Il ne roule plus.
mettre Moteur Droit à 0 // le moteur de droite ne tourne pas.
mettre Moteur Gauche à 0 // le moteur de gauche ne tourne pas. Thymio ne se déplace pas.
sinon
Deuxième condition de type si () sinon : si une ligne noire est présente.
si capteur dessous 0 < 400 et capteur dessous 1 < 400 // si le capteur de gauche et le capteur de...
Conclusion
L’extension Thymio pour Scratch est très bien pourvue en termes de blocs. De très nombreux projets peuvent être réalisés à partir de cette extension en utilisant les capacités de ce robot. De nombreuses ressources pédagogiques sont disponibles sur Internet, Thymio étant très exploité dans le monde éducatif, des challenges sont entre autres réalisés.