Ir al contenido
Placa del controlador CL57T ensamblada, con el módulo ESP32-C3 montado

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 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.

ControladorPCBComunicación con la NUCFunción
Puente HDiseño propio (KiCad)USB-CDC COM4 (maestro)Motores DC de tracción
CL57TDiseño propio (KiCad)I²C 0x0B vía maestro3 ejes del manipulador
GripperProtoboard (sin PCB)USB-CDC COM5Pinza — 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

Construible

Está 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

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.

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

PYCoordinador de la NUC — nuc_master_code.py

80 KB

Artefacto

PYFirmware de tracción — main_movil_final.py

31 KB

Artefacto

PYFirmware del manipulador — main_manipulador_final.py

30 KB

Artefacto

PYFirmware del gripper — main_gripper_final.py

19 KB

FirmwareControladorLíneasEstado
main_movil_final.pyPuente H1 175Funcional
main_manipulador_final.pyCL57T933Funcional
main_gripper_final.pyGripper703Funcional

Del operador al motor. Cada arista lleva el medio físico y, donde aplica, la dirección o el puerto por el que viaja.

WiFi · ZMQ

COM4 · USB-CDC

COM5 · USB-CDC

COM3 · 460 800 bps

USB 3

I²C 0x08 · binario

I²C 0x0B · ASCII

PUL / DIR × 3

Meta Quest 3 · interfaz XR

NUC a bordo · Python 3.12

Puente H maestro · ESP32-C3

Puente H esclavo · ESP32-C3

Controlador CL57T · ESP32-C3

Controlador gripper · ESP32-C3

Motor DC derecho

Motor DC izquierdo

3 × NEMA 17 · driver CL57T

TB6612FNG · motor + encoder

RPLiDAR C1

Intel RealSense D435i

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)»
FuncionalidadEstado
Firmware Puente H — todos los modos de comunicaciónFuncional
Firmware CL57T — homing, movimiento, compensación de muñecaFuncional
Firmware gripper — posición mm, stall, calibración JSONFuncional
Control de motores individual por USB-CVerificado
Control por WiFi y BLEVerificado
Integración de control de base desde interfaz XRFuncional
Control completo del manipulador 3 GDLFuncional
Control del gripper desde interfaz XRFuncional