Se déplacer dans l’espace

Intro

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

É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 ».

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

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

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

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

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

Laisser un commentaire

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

Retour en haut