Capteurs d'obstacles
Les capteurs d'obstacles d'Eliobot sont des capteurs infrarouges qui permettent de détecter les obstacles à une certaine distance.
Utilisation avec Elioblocs
Pour utiliser les capteurs d'obstacles d'Eliobot sur Elioblocs, on utilise les blocs de la catégorie .
Utilisation avec Python
Avec python, il faut définir chaque capteur d'obstacle comme un objet.
On a 4 capteurs sur le capteur d'obstacle, ils sont branché sur les pins suivants :
Capteur gauche | Capteur devant | Capteur droit | Capteur derrière | |
---|---|---|---|---|
Pin | IO4 | IO5 | IO6 | IO7 |
Les capteurs renvoient des valeurs analogiques.
Exemples associés
Exemple Elioblocs
Ici, si un obstacle est détecté devant Eliobot, il tourne vers la droite sinon il avance.
Exemple Python
from elio import Eliobot
import board
import time
import digitalio
import analogio
import pwmio
vBatt_pin = analogio.AnalogIn(board.BATTERY)
obstacleInput = None
lineCmd = digitalio.DigitalInOut(board.IO33)
lineCmd.direction = digitalio.Direction.OUTPUT
lineInput = [analogio.AnalogIn(pin) for pin in
(board.IO10, board.IO11, board.IO12, board.IO13, board.IO14)]
AIN1 = pwmio.PWMOut(board.IO36)
AIN2 = pwmio.PWMOut(board.IO38)
BIN1 = pwmio.PWMOut(board.IO35)
BIN2 = pwmio.PWMOut(board.IO37)
buzzer = pwmio.PWMOut(board.IO17, variable_frequency=True)
elio = Eliobot(AIN1, AIN2, BIN1, BIN2, vBatt_pin, obstacleInput, buzzer, lineInput, lineCmd)
proximity_sensor = [
AnalogIn(board.IO4), # Capteur gauche
AnalogIn(board.IO5), # Capteur devant
AnalogIn(board.IO6), # Capteur droit
AnalogIn(board.IO7) # Capteur derrière
]
# Fonction pour récupérer la valeur d'un capteur d'obstacle
def getProximity(proximity_pos):
value = 0
# Mesure de la lumière réfléchie
value = proximity_sensor[proximity_pos].value
if value > 1000:
return True
else:
return False
speed = 100
while True:
if getProximity(1):
elio.turn_right(speed)
else:
elio.move_forward(speed)
Dans cet exemple, Eliobot avance s'il ne détecte pas d'obstacle devant lui sinon il tourne à droite.
Pour détecter un obstacle, on regarde la valeur du capteur devant Eliobot. Si la valeur est supérieure à 1000, alors il y a un obstacle devant Eliobot. 1000 est une valeur approximative et choisie pour détecter un obstacle à une certaine distance. Vous pouvez changer cette valeur pour l'adapter à votre besoin.