Ignorer la navigation

Se parquer

L 'algorithme

Fin de cycle

Il  s'agit ici,de faire rentrer le Thymio, dans son parking... Pour cela j'utilise le script " suivre une ligne "que je modifie.

 Lorsque Thymio détecte une ligne d'une autre couleur alors je le décale.  Il peut faire un ou plusieurs tours avant de se garer. (utilisation d'une variable incrémentée)

La ligne noire côté capteur droit et la ligne côté capteur gauche permet de suivre le trajet, pour se garer.

Lorsque les deux capteurs détectent du blanc alors il fait un demi-tour.

Son demi-tour s'arrête lorsque les deux capteurs captent la ligne noire.

En simulation

En pilotage

Dans cet exemple, Thymio exécute "n" tours, puis se parque.  Il suffit pour cela d'ajouter un compteur.

La structure de ce programme utilise un bloc principal qui fait appel à des sous blocs appelés sous-routine.

Le programme principal:

Programme principal

Lorsque le bouton central est activé, le script suivant se déroule :
- la variable nombre de tours est créée et initialisée à 2,
- la variable compteur est créée et initialisée à 0,
- la LED du dessus est éteinte.

Jusqu'à ce que la variable compteur n'est pas égale à la variable nombre de tours le script ci-après se déroule sinon arrêt bref des moteurs et appel à la sous-routine "parking".

Quand* les détecteurs de sol gauche et droite détectent du blanc "plus blanc que blanc":
- la LED du dessus s'allume en rouge,
- le moteur tourne à gauche pour éviter que Thymio prenne le chemin de droite,
- la variable compteur est incrémentée.

Sinon la sous-routine "deplacements" est appelée.


*Dans ce code, La structure est basée sur l'utilisation de Quand...faire.
On pourrait croire à une similarité avec Si...faire à une exception:
Le Quand n'exécute le code que si la valeur a changé entre le dernier événement et celui durant lequel elle est testée.


La sous-routine "déplacements":

Déplacements

La sous-routine "deplacements" utilise le programme décrit dans "suivre une ligne".


La sous-routine "Parking":

Parking

La sous -routine appelée, effectue le script suivant:
- la première boucle répète un tourner à droite jusqu'à ce que le capteur gauche au sol capte du noir (ce qui permet à Thymio d'emprunter le chemin de droite),
- les moteurs sont brièvement arrêtés,
- la LED de dessus s'allume en bleu.

- la seconde boucle répète le script suivant jusqu'à ce que les deux capteurs droite et gauche au sol détectent du blanc :
- si le capteur détecte du blanc alors Thymio tourne rapidement à gauche,
- si le capteur détecte du noir alors Thymio tourne rapidement à droite,
- sinon Thymio avance droit.

Les deux capteurs droite et gauche au sol captent du blanc, alors on arrête brièvement les moteurs et la troisième boucle se lance.
Cette troisième boucle répète le script suivant jusqu'à ce que les deux capteurs droite et gauche au sol détectent du noir.

Thymio tourne rapidement à gauche, puis en en arrière droite. Ce qui permet à Thymio d'effectuer un demi tour.

Lorsque les deux capteurs droite et gauche au sol détectent du noir, alors les moteurs s'arrêtent.