Intro
Avancer et reculer
Dans cette leçon, tu vas apprendre à faire déplacer l’Eliobot en utilisant ses moteurs pour avancer et reculer.
É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 » et « analogio »pour la batterie
import pwmio
import analogio
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)
vBatt_pin = analogio.AnalogIn(board.BATTERY)
Pour nous faciliter la tâche, nous allons utiliser la bibliothèque « elio ».
from elio import Motors
motors = Motors(AIN1, AIN2, BIN1, BIN2, vBatt_pin)
Pour avancer vers l’avant on va utilise cette fonction :
motors.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 librairie « 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.
motors.move_forward(100)
time.sleep(1)
motors.motor_stop()
Ici on demande à Eliobot d’aller vers l’avant d’attendre une seconde et d’arrêter ses moteurs. On avance donc pendant une seconde.
Étape 4
Reculer
Maintenant qu’il a avancé, nous allons faire revenir l’Eliobot à son point de départ en marche arrière. Pour ce faire, nous utiliserons le même principe, mais avec la fonction pour reculer.
motors.move_backward(100)
Nous l’ajoutons à notre programme sans oublier la temporisation.
motors.move_forward(100)
time.sleep(1)
motors.motor_stop()
motors.move_backward(100)
time.sleep(1)
motors.motor_stop()
Étape 5
Programme final
Voici le programme final que l’on va pouvoir exécuter ▶️ :
import board
from elio import Motors
import pwmio
import analogio
import time
AIN1 = pwmio.PWMOut(board.IO36)
AIN2 = pwmio.PWMOut(board.IO38)
BIN1 = pwmio.PWMOut(board.IO35)
BIN2 = pwmio.PWMOut(board.IO37)
vBatt_pin = analogio.AnalogIn(board.BATTERY)
motors = Motors(AIN1, AIN2, BIN1, BIN2, vBatt_pin)
motors.move_forward(100)
time.sleep(1)
motors.motor_stop()
motors.move_backward(100)
time.sleep(1)
motors.motor_stop()
Bravo !
Et voila, ton programme est fini ! Il ne te reste plus qu’à le Téléverser pour admirer le résultat