
DeLorean RC
Vehículo autónomo inspirado en el DeLorean de Regreso al Futuro. Un proyecto de robótica que integra control remoto, navegación autónoma, visión por IA y arquitectura distribuida maestro-esclavo. Incluye detección de obstáculos, streaming de video y actualización OTA.
En desarrollo - Estará disponible pronto
¿Qué es?
Un coche RC inspirado en el DeLorean de Regreso al Futuro que, por dentro, es un pequeño sistema distribuido: una Raspberry Pi hace de maestro y varios ESP32 hacen de esclavos, cada uno con una única responsabilidad (tracción, dirección, luces, sensores). El objetivo final es controlarlo desde el móvil o el PC por WiFi, ver el vídeo de su cámara en tiempo real, que detecte obstáculos y que acabe navegando solo con visión por IA. Todo con actualizaciones OTA para no tener que abrirlo cada vez que cambio el firmware.
El repositorio se llama CamperBot; la carrocería del DeLorean es la capa final del proyecto y la que más ganas tengo de enseñar.
¿Por qué lo hice?
Quería un proyecto de robótica hecho "como se debe" y no un sketch de Arduino gigante: módulos independientes con interfaces claras, un protocolo común, tests unitarios y de integración, CI en GitHub Actions y un flujo de git disciplinado. Es mi banco de pruebas para PlatformIO, comunicación entre microcontroladores, visión por computador y navegación, y de paso una excusa para imprimir un DeLorean.
Cómo funciona
Arquitectura maestro-esclavo
- Maestro (Raspberry Pi, Python): el cerebro. Expone una API REST para configuración y estado, un WebSocket para control y telemetría en tiempo real, y agrupa los módulos de comunicación con esclavos, percepción (cámara, detección de objetos) y navegación (planificación de ruta, evitación de obstáculos, localización).
- Esclavos (ESP32, C++ con PlatformIO):
motor_controller,steering_controller,light_controllerysensor_hub. Hablan con el maestro por un protocolo común definido encommon/protocols; el transporte actual es serie, con I2C, CAN y Ethernet previstos en la configuración. - Clientes: app web en React y app móvil en React Native para control directo, modo autónomo, vídeo y telemetría.
Lo que ya funciona
- Motor y dirección: motor brushed a través de puente H con PWM (5 kHz, 8 bits) y servo de dirección de 0 a 180°. Se controla con comandos serie tipo
FORWARD,BACKWARD,STOP,SPEED:0-255,STEER:0-180,CENTER,SWEEP:ON/OFFy una secuenciaTESTque combina movimientos. - Luces: frontales, traseras, intermitentes con parpadeo de 500 ms y modo emergencia con prioridad sobre los intermitentes individuales (
FRONT:ON,LEFT:ON,HAZARD:ON...).
Roadmap
| Fase | Contenido | Estado |
|---|---|---|
| 1. Infraestructura | Chasis, motores y montaje | Hecho |
| 2. Electrónica | Motor, dirección, luces, carga solar | En curso |
| 3. Comunicación | Protocolo maestro-esclavo, control remoto, sensores de obstáculos | Pendiente |
| 4. Percepción | Cámara y streaming, detección de objetos, navegación básica | Pendiente |
| 5. Optimización | CAN/Ethernet, visión por IA, actualizaciones OTA | Pendiente |
Stack
- Maestro: Python,
pytest - Esclavos: C++ sobre ESP32, PlatformIO, tests con Unity
- Comunicación: serie (UART) hoy; I2C, CAN y Ethernet en el roadmap
- Clientes: React (web) y React Native (móvil)
- CI: GitHub Actions bloqueando merges si fallan los tests
- Hardware: esquemas y PCB en KiCad, piezas 3D en STL/STEP, BOM en CSV
- Git: trunk-based, ramas
feature/*yfix/*, merges siempre--no-ff
Estado
En desarrollo. Hay firmware funcional para tracción, dirección y luces; el maestro tiene la estructura y la configuración, pero el bucle de control y el protocolo con los esclavos están por implementar. Próximos pasos:
- Cerrar el protocolo maestro-esclavo y el control remoto desde la web.
- Sensores de distancia en el
sensor_huby parada por obstáculo. - Cámara con streaming y, a partir de ahí, detección de objetos.
Enlaces
- Repositorio: https://github.com/Guilleloma/CamperBot