Environnement Thymio VPL
Le langage de programmation graphique (en anglais VPL: Visual Programming Language) permet de programmer Thymio visuellement. Il est disponible de deux façons :
- Le programme Thymio VPL fournit un environnement VPL indépendant.
- Le VPL est disponible comme plug-in pour Aseba Studio. Cliquer sur Charger VPL sous l'onglet Outils pour le lancer.
Les fichiers sauvegardés dans un environnement peuvent être ré-ouverts dans l'autre et vice-versa.
Pour les utilisateurs de versions précédentes
La version 1.4 a amené plusieurs nouveautés. Si vous êtes habitués à la version 1.3 ou précédente, veuillez lire le guide de transition.
Survol de l'environnement
Dans VPL, un programme est écrit en assemblant des paires de blocs d'événement et d'action. La fenêtre se présente ainsi :
- La barre d'outils contient les boutons pour ouvrir et sauvegarder des fichiers, lancer ou arrêter l'exécution du programme, et changer de mode d'édition.
- Cette zone est dédiée à la construction du programme. Le programme sert d'instruction au robot pour déterminer son comportement.
- Cette ligne indique si les paires événement-action composant le programme sont correctes et complètes.
- Les blocs d'événements déterminent quand le robot doit démarrer une action. Ces blocs peuvent être ajoutés au programme en cliquant dessus ou en les glissant sur le carré gauche d'une paire événement-action qui apparaît dans la zone programme.
- Les blocs d'action déterminent comment le robot doit réagir. Ces blocs peuvent être ajoutés au programme en cliquant dessus ou en les glissant sur le ou les carré(s) à droite d'une paire événement-action qui apparaît dans la zone programme.
- En mode indépendant de Studio, le programme texte correspondant au programme graphique est écrit dans cette zone. Quand utilisé à l'intérieur de Studio, le programme texte est écrit dans Studio.
Une archive zip contenant les images de tous les blocs peut être téléchargée ici.
Boutons de la barre d'outils
Assembler des paires
La programmation dans VPL se fait en association des blocs événement à un ou plusieurs blocs action. Vous pouvez le faire en cliquant-glissant les blocs dans la zone de programmation. Par exemple, une paire composée d'un événement bouton et d'une action moteurs vous permettra de faire avancer le robot lorsque son bouton est pressé.
Plusieurs paires d'instructions peuvent être assemblées. Elles peuvent être cliquées-glissées pour les réarranger. Cliquer sur le bouton + permet d'ajouter une nouvelle paire vide et cliquer sur le bouton X permet d'en effacer une. Une fois le programme créé, il doit être chargé dans le robot en cliquant sur le bouton charger et exécuter de la barre d'outils.
Pour résumer, les étapes de la programmation visuelle sont:
- Déposer un bloc événement sur la gauche de la paire événement-action
- Déposer un ou plusieurs blocs action sur la droite de la paire événement-action
- Répéter 1 et 2 jusqu'à ce que le programme soit complet
- Cliquer sur le bouton charger et exécuter et voir si le robot se comporte comme prévu
Mode basique
Quand VPL démarre, il est en mode basique. Dans ce mode, seul certains blocs sont visibles afin de rendre l'interface facile à comprendre.
Blocs d'événements
Blocs d'action
moteurs | Cette action définit la vitesse des moteurs gauche et droite (et donc des roues). | |
couleur du haut | Cette action définit la couleur du haut du robot en un mélange de rouge, vert et bleu (RGB). | |
couleur du bas | Cette action définit la couleur du bas du robot en un mélange de rouge, vert et bleu (RGB). | |
musique | Cette action joue une mélodie d'au maximum 6 notes définies par l'utilisateur. Pour chaque note, sa hauteur dépend de sa position verticale. Un point blanc produit une note qui dure deux fois plus longtemps qu'un point noir. Pour définir une note, cliquez sur la barre où vous voulez qu'elle apparaisse. Un clic sur un point le change de blanc à noir. Un clic supplémentaire transforme la note en silence. |
Mode avancé
Cliquer sur le bouton mode avancé (voir à droite) dans la barre d'outils permet de construire des programmes avec un état interne. Cela permet également d'utiliser des versions avancées de certains blocs ainsi que de nouveaux blocs.
Les états internes
La réponse du robot à un événement peut maintenant dépendre de son état. Supposons que vous êtes un robot avec un programme pour décider quoi manger à midi. L'événement est « il est midi maintenant » ; l'action est « manger X ». Mais X peut dépendre de la météo :
- il est midi maintenant et il fait froid → manger une soupe pour le repas de midi
- il est midi maintenant et il fait chaud → manger une salade de fruit pour le repas de midi
En terme de paire événement-action, l'action du robot dépend à la fois de l'événement et de l'état du robot ; par exemple :
- l'on claque des mains et le robot est dans l'état 0 → allumer le robot en bleu
- l'on claque des mains et le robot est dans l'état 1 → allumer le robot en rouge
Pour définir l'état, le mode avancé ajoute une action d'état (voir à droite). De plus, il y a quatre boutons (qui ressemblent à l'action état) à droite de chaque bloc événement dans chaque paire événement-action. Ces boutons correspondent à quatre variables d'état de 1 bit chacune, qui peuvent donc être soit à 0 soit à 1. L'état courant du robot est visualisé au dessus de celui-ci par quatre LEDs aux quatre coins de son cercle de LEDs (chaque LED est éteinte pour 0, allumée pour 1). L'action état permet de définir n'importe quelle combinaison de ces quatre bits à soit 0 soit 1. Pour l'événement, les boutons d'état fonctionnent comme des filtres : lorsque le bouton est gris, le bit est ignoré ; lorsqu'il est orange, le bit doit être à 1 pour que l'événement s'active ; lorsque le bouton est blanc, le bit doit être à 0 pour que l'événement s'active.
L'exemple ci-dessous allume le robot en rouge ou bleu lorsqu'il détecte un clappement de mains, en fonction de son état. L'état est défini avec les boutons :
Blocs aditionnels
En mode avancé, on dispose de trois nouveaux blocs. Deux d'entre eux représentent le compte à rebours ou "timer", un moyen de déclencher une action à retardement, et un bloc représente l'état interne du robot.
Timer écoulé | Cet événement se déclenche lorsque le compte à rebours arrive à zéro. | |
Timer | Cette action permet de démarrer un compte à rebours de 0 à 4 secondes, défini par l'utilisateur en cliquant sur l'horloge. Lorsque le compte à rebours arrive à zéro, un événement "Timer écoulé" est déclenché. | |
État | Cette action régle l'état à 4 bit du robot. Gris signifie laisser la valeur actuelle ; blanc signifie mettre l'état à 0 ; jaune signifie mettre l'état à 1. |
Versions avancées de certains blocs
Les blocs suivants possèdent des versions avancées. Ils sont similaires à leur version de base mais permettent de faire plus de choses.