
Un ESP32-C3 SuperMini sobre su placa. Los tres controladores del robot son el mismo módulo con firmware distinto.
El software del robot se reparte en dos capas. La primera es el firmware embebido de los tres controladores ESP32-C3, que esta página documenta. La segunda es el sistema de coordinación que corre en la NUC, detallado en Servidor / percepción.
Los tres controladores
Sección titulada «Los tres controladores»Los tres corren MicroPython sobre módulos ESP32-C3 SuperMini. Cada uno resuelve una función de actuación distinta y habla con la NUC por I²C o por USB-CDC. El detalle de cada uno vive en su propia página.
| Controlador | PCB | Comunicación con la NUC | Función |
|---|---|---|---|
| Puente H | Diseño propio (KiCad) | USB-CDC COM4 (maestro) | Motores DC de tracción |
| CL57T | Diseño propio (KiCad) | I²C 0x0B vía maestro | 3 ejes del manipulador |
| Gripper | Protoboard (sin PCB) | USB-CDC COM5 | Pinza — posición en mm |
El Puente H configurado como maestro (DIP = 100) concentra el bus I²C, así
que la NUC solo necesita un canal USB para mandar sobre los tres nodos de
movimiento. Los modos del DIP switch están en
Electrónica;
la topología completa, más abajo.
Nivel de replicación
ConstruibleEstá la geometría acotada y el procedimiento. Tendrás que adaptarlos a tus herramientas y materiales.
Lo que encuentras aquí
- Los tres firmwares completos, con pinout y protocolo documentados
- Mapa de direcciones del bus I²C y reparto de puertos USB
- Archivos de fabricación y BOM de las dos PCB de diseño propio
Lo que falta para llegar a «Reproducible»
- Números de parte de proveedor en ambos BOM
- Diagrama de cableado entre las placas, los drivers y las fuentes de alimentación
- Procedimiento de flasheo de MicroPython paso a paso, con la versión de intérprete usada
Requisitos
Sección titulada «Requisitos»El software debía cumplir cuatro condiciones:
- Un firmware ligero y estable para controlar motores en tiempo real.
- Un sistema de coordinación que integre percepción, comunicación ZMQ y control de actuadores.
- Ninguna dependencia de ROS. Fue una decisión explícita de simplicidad y portabilidad, registrada en ADR-0001.
- Una interfaz de depuración siempre disponible, por USB-C.
Código fuente
Sección titulada «Código fuente»Las dos capas, completas. El coordinador de la NUC es el programa más grande del proyecto y el que une todo lo demás: percepción, comunicación con el operador y mando de los tres controladores embebidos.
Artefacto
Coordinador de la NUC — nuc_master_code.pyArtefacto
Firmware de tracción — main_movil_final.pyArtefacto
Firmware del manipulador — main_manipulador_final.pyArtefacto
Firmware del gripper — main_gripper_final.py| Firmware | Controlador | Líneas | Estado |
|---|---|---|---|
main_movil_final.py | Puente H | 1 175 | Funcional |
main_manipulador_final.py | CL57T | 933 | Funcional |
main_gripper_final.py | Gripper | 703 | Funcional |
Topología de comunicación completa
Sección titulada «Topología de comunicación completa»Del operador al motor. Cada arista lleva el medio físico y, donde aplica, la dirección o el puerto por el que viaja.
El detalle de los puertos y tópicos ZMQ está en Middleware.
Estado actual (última verificación conocida)
Sección titulada «Estado actual (última verificación conocida)»| Funcionalidad | Estado |
|---|---|
| Firmware Puente H — todos los modos de comunicación | Funcional |
| Firmware CL57T — homing, movimiento, compensación de muñeca | Funcional |
| Firmware gripper — posición mm, stall, calibración JSON | Funcional |
| Control de motores individual por USB-C | Verificado |
| Control por WiFi y BLE | Verificado |
| Integración de control de base desde interfaz XR | Funcional |
| Control completo del manipulador 3 GDL | Funcional |
| Control del gripper desde interfaz XR | Funcional |