Programmation avec blockly

Bonjour,
je continue ma découverte de l’environnement thymio…
j’ai compris avec VPL les états, et j’arrive à programmer en VPL, mais je n’arrive pas à reproduire cela avec Blockly !
je n’ai pas trouvé de “tuto” blockly, et n’étant pas “programmist” je galère un peu (beaucoup) :wink:
il me faudrait un “mode d’emploi” des blocs, car la syntaxe est parfois …déroutante (enfin , je trouve)
je voudrai reproduire le comportement d’une poubelle automatique, dont la porte s’ouvre après une détection de mouvement sur le capteur de devant, et mettre en route un moteur qui ouvrirait une trappe (avec des legos je pense) fraction de tour, nombre de tour ??la trappe reste ouverte qq secondes, puis se referme !
pouvez-vous m’aider ?
en tout cas je trouve super les thymios sans fils, robustes, fiables…
merci d’avance :slight_smile:
Cordialement.
AC

Bonjour,

Il existe une version alternative à VPL et à blockly d’AsebaStudio. Celle-ci s’appelle Blockly4Thymio et sera peut-être plus simple à appréhender pour mettre en oeuvre pour votre projet…

Je vous invite à jeter un œil à l’adresse : www.blockly4thymio.net, vous trouverez dans la section Exercices et l’exercice nommé Envie de programmer, l’ensemble des blocs de l’interface Blockly4Thymio. En espérant que ceux-ci vous aide à réaliser votre programme…

Bonjour,
et merci pour votre réponse rapide ; je connais le site et l’ai utilisé !
j’arrive bien à faire ce qui est montré dans les exercices (sauf, pour l’instant faire parler thymio, n’ayant pas encore de lecteur de micro SD); c’est la programmation de blockly qui me pose problème …
les notions de “timer” (je n’ai plus le terme en tête, et ne peut vérifier, car il faut avoir le thymio de branché pour ouvrir Aseba, c’est dommage !!)
le site à au moins ça de pratique, on peut faire le programme sans le thymio, mais on ne peut pas valider du coup ! :wink:
ce que je veux faire et j’ai réussit, en partie, c’est quand le capteur frontal détecte quelque chose, faire tourner un moteur dans un sens, temporisation de 2 secondes puis tourne dans l’autre sens pour le même temps (retour à la position de départ)
je ne sais pas si je suis bien clair là …:slight_smile:
je ne sais pas joindre une PJ au message… je voudrai mettre une copie d’écran de mon programme…
merci de votre aide.
Cordialement
Ac.

Vous pouvez ajouter une pièce jointe à votre réponse à l’aide du bouton “Envoyer”

Bonjour,
je vous joins la copie d’écran de mon programme !
cette partie fonctionne bien ; mais je n’arrive pas à faire tourner le moteur dans l’autre sens !
j’ai essayé avec les commandes disponibles (tourner sens horaire; avancer commencer à rouler en avant…)
je n’arrive pas non plus à gérer les temporisations… je ne comprend pas la « logique »
merci de votre aide !
cordialement
AC

Bonjour,
Il faut voir ici le minuteur comme un événement périodique. Quand on définit le miniteur on définit en fait in intéerval de temps en milliseconde. Après l’événement se produira périodiquement.
Pour faire ce que vous voulez vous devez rajouter une variable (d’état) qui vous permettra de savoir ou vous en étes dans votre programme.
Le timer peut aussi être utilisé pour compter un certain temps. Il faut alors ajouter une variable (compteur) qui s’incrémente par exemple chaque 100ms (période) et vous effecteur vos tache avec une granularité de 0.1 sec. Dans ce cas c’est le compteur qui vous permet d’effectuer les tâche l’une après l’autre.
Si ce n’est pas claire je vous ferais un exemple.
Meilleures salutations

Bonjour,
je veux bien un exemple, car j’en suis resté à une logique “séquentielle” (mes notions d’automatisme date du lycée…dans les années 80 :slight_smile:
et j’ai du mal avec “l’événementiel” !
n’y a t-il pas une doc “blockly pour les nuls” ? avec la liste des commandes et leur utilisation ? je n’ai pas trouvé …encore
je vois ce que je veux faire mais ma logique ne colle pas !!
la notion de variable aussi, je veux bien des explications !
un grand merci encore !
cordialement.

Re bonjour,
je suis arrivé à cela avec blockly4thymio :

qui correspond au comportement attendu !
mais je n’ai pas les mêmes blocs dans blockly…

cordialement.

1 « J'aime »

La différence entre « Aseba, VPL, Blockly » et Blockly4Thymio est la philosophie de programmation événementiel contre séquentiel.
Dans le premier cas, il ne peut pas y avoir de tâche bloquante ou d’attente. C’est pourquoi c’est plus compliqué de faire une séquence mais pas impossible.
Voici une solution avec blockly et des événement non bloquant

Laquelle des deux philosophie est meilleure, c’est une question de point de vue et je laisserai le débat ouvert… Je trouve la programmation événementiel plus moderne et adaptée au robot qui interagit avec le monde. La seconde est plus historique et simple pour certaine tâche mais peut bloquer le processeur dans une tâche « inutile » d’attente.
Meilleures salutations

deuxieme possiblité avec les etats:

Bonjour,
merci beaucoup pour les exemples, je vais tester !
et essayer de comprendre :wink:
Cordialement.
Alain.