Avancer et reculer

Intro

Dans cette leçon, tu vas apprendre à faire déplacer l’Eliobot en utilisant ses moteurs pour avancer et reculer.

Étape 1

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

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

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

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

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

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Retour en haut