Aller au contenu principal

Capteurs d'obstacles

proximity sensors


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 catégorie proximité.

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 gaucheCapteur devantCapteur droitCapteur derrière
PinIO4IO5IO6IO7

Les capteurs renvoient des valeurs analogiques.

Exemples associés

Exemple Elioblocs

exemple proximité 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.