Un nuevo proyecto de código abierto demuestra cómo combinar visión por computador y robótica en una sola placa. El robot, aproximadamente del tamaño de un escritorio, detecta un rostro humano mediante aprendizaje automático ejecutado localmente y gira hacia él en tiempo real, trabajando a unos 10 a 15 cuadros por segundo. Todo corre sobre la nueva Arduino UNO Q, sin recurrir a servicios en la nube.

¿Cómo trabajan los dos procesadores?
El funcionamiento aprovecha la arquitectura híbrida de la UNO Q, que integra dos unidades distintas y con roles bien separados.
| Unidad | Sistema | Tarea |
|---|---|---|
| Microprocesador Qualcomm | Linux | Ejecuta el modelo de inteligencia artificial y la lógica de control escrita en Python |
| Microcontrolador STM32 | Zephyr RTOS | Genera la señal PWM de los servomotores con precisión de tiempo real |
Los dos procesadores se comunican mediante Bridge RPC, un protocolo basado en MessagePack sobre un enlace serial interno, con una latencia de ida y vuelta de cerca de 8 milisegundos. De esta forma la inferencia pesada queda separada de la ruta de tiempo real, y el control de los motores se mantiene determinista.
Esa separación es la diferencia práctica con los montajes clásicos sobre una sola placa, donde la inferencia y el control de motores compiten por el mismo procesador y el movimiento se vuelve errático justo cuando la carga de visión sube.
Visión, control e interfaz web
Una cámara web USB captura el video, mientras un modelo liviano de detección facial localiza el rostro dentro del cuadro. Un controlador proporcional convierte luego la posición horizontal del rostro en comandos diferenciales para las ruedas.
El proyecto usa dos "bricks" listos de App Lab: uno para detección de objetos por cámara y otro para la interfaz web. El panel accesible desde el navegador permite monitorear las detecciones y ajustar los parámetros de dirección en tiempo real, sin recompilar el código. Cada cambio en los deslizadores surte efecto de inmediato mediante Socket.IO, lo que agiliza la fase de calibración.
¿Qué protecciones tiene el movimiento?
El robot usa tracción diferencial con dos servos de rotación continua: un pulso de 1.500 microsegundos corresponde a detención, mientras que valores menores o mayores determinan el giro en uno u otro sentido. Además, el sistema limita las llamadas al Bridge a un máximo de 20 Hz, porque enviar comandos demasiado rápido bloquearía el enlace serial.
El proyecto incluye por eso varias protecciones:
- Un mecanismo de inercia que mantiene la última posición conocida cuando el rostro desaparece por un momento.
- Un perro guardián que detiene el robot si las detecciones se interrumpen.
- Una parada de emergencia que ignora la limitación de frecuencia para frenar los motores de inmediato.
Clasificado como proyecto de nivel intermedio, está completamente documentado y publicado bajo una licencia de código abierto.




