🛠 Control GPIO Avanzado en Arduino UNO Q
Objetivos
Este tutorial tiene como objetivo dominar la interacción de bajo nivel entre los nodos Modulino y el sistema Linux de la Arduino UNO Q. Aprenderá a mapear entradas físicas (botones, joystick) a eventos del sistema y controlar salidas (píxeles) para retroalimentación háptica o visual compleja, más allá de la simple emulación de ratón/teclado.
Material Necesario
- Kit Arduino UNO Q SBC Controller (tarjeta UNO Q 4GB)
- Nodos Modulino: Botones, Joystick, Perilla Rotativa, Píxeles
- Cable USB-C de 24 pines
- Fuente de alimentación USB-C de 45W
- Hub USB-C 8 en 1 (para acceso a terminal SSH)
- Entorno Arduino App Lab instalado
Pasos
- Conexión Física: Ensamble la tarjeta UNO Q en su carcasa 3D. Conecte los nodos Modulino a los puertos dedicados. Asegúrese de que el hub USB-C esté conectado para el acceso a red y pantalla.
- Acceso al Sistema: Abra un terminal SSH hacia la UNO Q mediante su IP local. Verifique la detección de periféricos con
lsusbpara confirmar la presencia de los Modulinos.
- Configuración App Lab: Inicie Arduino App Lab. Seleccione el proyecto "Custom Controller". En la pestaña "Mapping", asocie el botón físico a una tecla específica (ej:
KEY_ESC) y el joystick a ejes del ratón.
import hid dev = hid.device(vid=0x2341, pid=0x0050) dev.open_path(dev.enumerate()[0]['path']) print(dev.read(64))
- Script de Control GPIO: Para un control avanzado, cree un script Python usando la librería
hidapio interfaces GPIO directas si están expuestas. Ejemplo de lectura de estado:```python
5. **Mapeo Dinámico**: Use `evtest` para monitorear eventos brutos. Cree un archivo de reglas `udev` para ejecutar un script shell cuando se presione un botón Modulino, permitiendo ejecutar comandos del sistema (ej: iniciar una app de Home Assistant).
6. **Retroalimentación Visual**: Configure los píxeles Modulino para que se enciendan según el estado del sistema. En App Lab, enlace la salida LED a una señal GPIO lógica o use un script para enviar paquetes HID de control LED.
## Verificación
Ejecute `evtest` en el terminal. Presione el botón Modulino: debería ver un evento `EV_KEY` generado. Verifique que los píxeles se iluminen durante la acción. Si el mapeo falla, revise los permisos udev y reinicie el servicio de gestión de dispositivos.
## Para Ir Más Allá
Explore la creación de perfiles múltiples para alternar entre modos "Juegos Retro" y "Domótica". Integre sensores externos a través de GPIOs extendidos para una mayor capacidad de respuesta ambiental.