Saltar al contenido principal

Sensores de obstáculos

proximity sensors


Les capteurs d'obstacles d'Eliobot sont des capteurs infrarouges qui permettent de détecter les obstacles à une certaine distance.

Usar con Elioblocs

Para utilizar los sensores de obstáculos Eliobot en Elioblocs, utilizamos bloques de la categoría catégorie proximité.

Usando con Python

Con Python, debes definir cada sensor de obstáculos como un objeto.

Disponemos de 4 sensores en el sensor de obstáculos, están conectados a los siguientes pines:

Capteur gaucheCapteur devantCapteur droitCapteur derrière
PinIO4IO5IO6IO7

Los sensores devuelven valores analógicos.

Ejemplos relacionados

Ejemplo de elioblocs

exemple proximité elioblocs

Aquí, si se detecta un obstáculo delante de Eliobot, gira hacia la derecha, en caso contrario avanza.


Ejemplo de Python

Con la biblioteca elio.py

import board
import pwmio
import analogio
from elio import Motors, ObstacleSensor

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)

obstacle_pins = [
analogio.AnalogIn(board.IO4), # Gauche
analogio.AnalogIn(board.IO5), # Avant
analogio.AnalogIn(board.IO6), # Droite
analogio.AnalogIn(board.IO7), # Arrière
]

motors = Motors(AIN1, AIN2, BIN1, BIN2, vBatt_pin)
obstacle_sensor = ObstacleSensor(obstacle_pins)

speed = 100

while True:
if obstacle_sensor.get_obstacle(1): # Obstacle devant
motors.turn_right(speed)
else:
motors.move_forward(speed)

En este ejemplo, Eliobot avanza si no detecta ningún obstáculo delante de él, en caso contrario gira a la derecha.


Sin la biblioteca elio.py

import board
import analogio

obstacle_avant = analogio.AnalogIn(board.IO5) # Capteur avant

while True:
valeur = obstacle_avant.value
if valeur < 10000: # Obstacle détecté
print("Obstacle détecté, valeur :", valeur)
else:
print("Aucun obstacle, valeur :", valeur)

La detección se activa cuando el valor del sensor cae por debajo de 10000. Este valor se puede ajustar según la distancia de detección deseada.