Construye un Robot Evitaobstáculos con Raspberry Pi: Guía para Principiantes
Si eres nuevo en Raspberry Pi y buscas un proyecto práctico que combine software y hardware, esta guía te lleva a construir un robot controlado por Python que detecta y evita obstáculos usando sensores infrarrojos.
Los robots evitaobstáculos son populares para aprender robótica y resultan sorprendentemente sencillos de montar. Siguiendo este tutorial, añadirás una evitación de objetos fiable a tu robot o simplemente explorarás Python y el ecosistema GPIO de la Raspberry Pi.
Qué Necesitas
- Raspberry Pi B, B+, 2, 3 o 4 más periféricos básicos (tarjeta SD, teclado, ratón, fuente).
- Módulos sensor de distancia IR (p. ej., el popular sensor IR de 4 canales).
- Motores DC con reductor y par adecuado para tu chasis.
- Placa controladora de motores L293D.
- Chasis de robot y ruedas.
- Rueda loca para estabilidad.
- Protoboard y cinta de doble cara.
- Cables jumper macho‑macho / hembra‑macho.
- Batería de 9 V y conectores apropiados.
- Pulsador y resistencia de 220 Ω (para control de encendido).
Cómo Funciona
La funcionalidad central del robot se basa en dos sensores IR que detectan objetos a 5‑6 cm. Cuando hay un objeto, la salida del sensor pasa a LOW (0 V). Sin objeto, se mantiene HIGH (5 V). La Raspberry Pi lee estas señales digitales vía sus pines GPIO, y el script Python adjunto dirige los motores en consecuencia.
Los módulos IR consisten en un emisor LED IR y un fotodiodo receptor. Un objeto refleja parte de la luz IR emitida de vuelta al receptor, generando una señal LOW que indica proximidad. Estas señales se conectan a entradas GPIO de la Pi.
Al arrancar el robot –pulsando el botón– la Pi impulsa los motores DC hacia adelante a través del driver L293D. Si un sensor IR detecta un obstáculo, el script primero invierte los motores brevemente y luego ejecuta un giro para esquivarlo.
Paso 1: Cableado de los Sensores IR
Alimenta los sensores con 5 V y GND de la Raspberry Pi, y conecta sus pines de salida a los pines GPIO 3 y 16 (usa el diagrama oficial de pinout GPIO). El modo GPIO.BOARD numera los pines como aparecen en el header.
Guarda el siguiente script como irtest.py:
import RPi.GPIO as GPIO
import time
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
# Sensor derecho (GPIO 3)
GPIO.setup(3, GPIO.IN)
# Sensor izquierdo (GPIO 16) con pull‑up
GPIO.setup(16, GPIO.IN, pull_up_down=GPIO.PUD_UP)
while True:
right = GPIO.input(3)
left = GPIO.input(16)
if right == 0:
print "Obstáculo detectado a la derecha", right
time.sleep(0.1)
elif left == 0:
print "Obstáculo detectado a la izquierda", left
time.sleep(0.1)
Ejecútalo con sudo python irtest.py. Al tapar un sensor con la mano, la consola mostrará un mensaje indicando qué lado detectó el obstáculo.
Paso 2: Conexión de Motores mediante Driver L293D
Alimenta el L293D con la batería de 9 V (positivo al pin +, negativo al –). Conecta la masa de la placa a GND de la Raspberry Pi. Cablea las salidas de los motores a los pines de salida del driver y los pines de control a GPIOs adicionales (consulta el datasheet del L293D para definiciones de pines). Con los motores cableados, el script puede ordenar avance, retroceso y giros.
Una vez ensamblado el hardware, enciende la Raspberry Pi, pulsa el botón y observa cómo el robot navega esquivando obstáculos.
Para más recursos de aprendizaje, descarga nuestro eBook gratuito sobre Raspberry Pi y Arduino para profundizar en tus habilidades.
Proceso de manufactura
- Construya un registrador de temperatura con Raspberry Pi y sensor I2C de 5 $
- Construya una estación meteorológica con Raspberry Pi que envíe datos diarios por email
- Construya un Sensor de Movimiento Infrarrojo DIY para Raspberry Pi – Guía Paso a Paso
- Controle un LED con Sensor PIR de Movimiento en Raspberry Pi
- Construya un Sensor de Humedad de Suelo de Bajo Coste para Riego Inteligente con Raspberry Pi
- Construya un Contador Geiger con Raspberry Pi – Tutorial de Sensor de Radiación Open‑Hardware
- Tu primer proyecto IoT con Raspberry Pi, DHT11 y ThingSpeak
- Los mejores accesorios para aprovechar al máximo tu Raspberry Pi
- Tutorial sensor de luz Raspberry Pi: cablear LDR y leer niveles de luz con Python
- Monitor de temperatura casero con Raspberry Pi, MCP9808, InfluxDB y Grafana
- Domina GPIO de Raspberry Pi: interfaz sensor PIR movimiento en B+/Model 2