Intro
Détecter un obstacle
Dans cette leçon, tu vas apprendre à utiliser les capteurs d’Eliobot pour détecter des obstacles.
É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.IO4
Étape 2
Déclaration des capteurs
Pour déclarer les capteurs on va utiliser la bibliothèque « analogio »
import analogio
Ensuite on défini chaque capteur.
obstacleInput = [analogio.AnalogIn(pin) for pin in
(board.IO4, board.IO5, board.IO6, board.IO7)]
Pour nous faciliter la tâche on va utiliser la bibliothèque « elio ».
from elio import ObstacleSensor
Ensuite, nous définissons obstacleSensor
obstacleSensor = ObstacleSensor(obstacleInput)
Étape 3
Utiliser la fonction
La fonction « get_obstacle() » renvoie une information : False
si aucun obstacle n’est détecté, True
si un obstacle est présent. Nous pouvons donc l’utiliser dans des conditions.
if obstacleSensor.get_obstacle(1):
# faire quelque chose
else:
# faire quelque chose d'autre
Ici on utilise la condition if -> si et la condition else -> sinon
Si un obstacle est présent devant faire, sinon faire
if obstacleSensor.get_obstacle(1):
print("Un obstacle est devant")
else:
print("Aucun obstacle")
On va utiliser la fonction print() pour écrire dans le terminal si un obstacle est devant ou non.
« print() » permet d’écrire ou d’afficher la valeur d’une variable dans le terminal.
Étape 4
Ajout d’une boucle
Pour finir, nous plaçons le code dans une boucle afin d’assurer une vérification constante de la présence d’un obstacle.
while True:
if obstacleSensor.get_obstacle(1):
print("Un obstacle est devant")
else:
print("Aucun obstacle")
On note que le code en dessous de “while True : ” est indenté (décalé vers la droite), montrant ainsi qu’il va être répété dans la boucle pareil dans le if et le else.
Étape 5
Programme final
Voici le programme final que l’on va pouvoir exécuter ▶️ :
import board
from elio import ObstacleSensor
import analogio
obstacleInput = [analogio.AnalogIn(pin) for pin in
(board.IO4, board.IO5, board.IO6, board.IO7)]
obstacleSensor = ObstacleSensor(obstacleInput)
while True:
if obstacleSensor.get_obstacle(1):
print("Un obstacle est devant")
else:
print("Aucun obstacle")
Bravo !
Et voila, ton programme est fini ! Il ne te reste plus qu’à le Téléverser pour admirer le résultat