Intro
Se déplacer dans l’espace
Dans cette leçon, tu vas apprendre à faire déplacer l’Eliobot en utilisant ses moteurs.
Étape 1
Déclaration des entrées / sorties
Nous allons commencer notre code en intégrant quelques bibliothèques. Ce sont des ensembles de codes déjà écrits nous permettant de rajouter des fonctions facilement.
La première s’appelle “board” et est spécifique à CircuitPython. C’est grâce à elle que nous allons pouvoir expliquer à notre programme comment sont connectés les éléments au microcontrôleur (le cerveau de Eliobot)
Pour l’intégrer dans notre programme on utilise la ligne suivante :
import board
Cela nous permet d’appeler les entrée / sorties de la cartes en utilisant le numéro de la broche.
board.IO36
Les moteurs de Eliobot sont branché sur les broches IO36, IO38 pour le moteur gauche et IO35, IO37 pour le moteur droit.
Étape 2
Déclaration des moteurs
Pour déclarer les moteurs, nous allons utiliser une bibliothèque qui se nomme « pwmio ».
import pwmio
Ensuite, on définit chaque moteur et son sens.
AIN1 = pwmio.PWMOut(board.IO36)
AIN2 = pwmio.PWMOut(board.IO38)
BIN1 = pwmio.PWMOut(board.IO35)
BIN2 = pwmio.PWMOut(board.IO37)
Pour nous faciliter la tâche, nous allons utiliser la bibliothèque « elio ».
from elio import Eliobot
Ensuite, on définit Eliobot en lui donnant 100 correspond au pourcentage de la vitesse ; ici, nous sommes à 100 %, donc à la vitesse maximale. moteurs comme attributs pour qu’il puisse les utiliser.
elio = Eliobot(AIN1, AIN2, BIN1, BIN2, None, None, None, None, None)
Eliobot possède 9 attributs ; les quatre premiers sont associés aux moteurs, le cinquième à la batterie, le sixième au capteur d’obstacles, le septième au buzzer, et les huitième et neuvième aux capteurs de ligne.
Dans nôtre cas on utilise les 4 premier arguments pour les moteurs. Nous définirons donc tous les autres attributs à None
.
Pour avancer vers l’avant on va utilise cette fonction :
elio.move_forward(100)
100 correspond au pourcentage de la vitesse ; ici, nous sommes à 100 %, donc à la vitesse maximale.
Étape 3
Ajout d’une temporisation
Pour mieux controller le robot et pas seulement le faire aller vers l’avant on va ajouter de la temporisation.
Pour cela on va importer une nouvelle bibliothèque « time »
import time
La fonction “sleep” nous permet de mettre le programme en pause pendant une durée exprimée en secondes, par exemple pour une seconde on écrit :
time.sleep(1)
On va pouvoir ajouter cette fonction à nôtre code
elio.move_forward(100)
time.sleep(1)
elio.motor_stop()
Ici on demande à elio d’aller vers l’avant d’attendre une seconde et d’arrêter ses moteurs on avance donc vers l’avant pendant une seconde.
Étape 4
Aller vers la droite ou la gauche
Maintenant qu’il a avancé, nous allons faire déplacer Eliobot vers la droite ou la gauche.
elio.turn_right(100)
elio.turn_left(100)
right -> droite , left -> gauche
On l’ajoute à notre programme sans oublier la temporisation.
elio.move_forward(100)
time.sleep(1)
elio.turn_right(100)
time.sleep(1)
elio.move_forward(100)
time.sleep(1)
elio.turn_left(100)
time.sleep(1)
elio.move_forward(100)
time.sleep(1)
Ici on fais avancer Eliobot en zig-zag.
Étape 5
C’est parti pour des zigzags !
Petite étape bonus, tu peux rajouter une boucle « while » autour des actions de ton programme pour qu’il ne s’arrête jamais !
while True:
elio.move_forward(100)
time.sleep(1)
elio.turn_right(100)
time.sleep(1)
elio.move_forward(100)
time.sleep(1)
elio.turn_left(100)
time.sleep(1)
elio.move_forward(100)
time.sleep(1)
Étape 6
Programme final
Voici le programme final que l’on va pouvoir exécuter ▶️ :
import board
from elio import Eliobot
import pwmio
import time
AIN1 = pwmio.PWMOut(board.IO36)
AIN2 = pwmio.PWMOut(board.IO38)
BIN1 = pwmio.PWMOut(board.IO35)
BIN2 = pwmio.PWMOut(board.IO37)
elio = Eliobot(AIN1, AIN2, BIN1, BIN2, None, None, None, None, None)
while True:
elio.move_forward(100)
time.sleep(1)
elio.turn_right(100)
time.sleep(1)
elio.move_forward(100)
time.sleep(1)
elio.turn_left(100)
time.sleep(1)
elio.move_forward(100)
time.sleep(1)
Bravo !
Et voila, ton programme est fini ! Il ne te reste plus qu’à le Téléverser pour admirer le résultat