🛠 Gestión de E/S en la placa Romu
Objetivos
Este tutorial tiene como objetivo comprender el modelo específico de E/S de la placa Romu. A diferencia de las placas de desarrollo estándar, la Romu no posee pines GPIO accesibles para conectar sensores externos directamente. El objetivo es dominar la interacción con los componentes integrados: el LED RGB, los botones pulsadores y las almohadillas de depuración. Aprenderás a controlar la salida de luz y a leer el estado de las entradas físicas presentes en la PCB.
Material necesario
- Placa Romu de Bitmerse (basada en RP2354A)
- Ordenador con un puerto USB-A disponible
- Cable micro-USB o USB-C (según tu configuración de depuración) para alimentación y flasheo si es necesario
- Entorno de desarrollo compatible con RP2354 (MicroPython o SDK C/C++)
- Soldador y cables finos (opcional, para usar las almohadillas de depuración)
Pasos
La placa Romu está diseñada para ser ultracompacta (15,5 x 12 mm). No hay conectores para cables Dupont. Toda interacción física se realiza a través de componentes soldados en la placa o almohadillas de prueba.
- Comprender la ausencia de GPIO externos
- Identificar componentes de E/S integrados
- LED RGB: Un único LED multicolor permite señalar el estado del programa.
- Botones: Botones pulsadores integrados que sirven como entradas digitales simples.
- Almohadillas de depuración: Puntos de contacto diminutos que permiten acceder a señales internas si es necesario, pero requieren soldadura precisa.
Asegúrate de que tu script apunte correctamente a los pines internos. En el RP2354, los pines se direccionan numéricamente. Para el LED RGB, debes identificar los pines correspondientes a los canales Rojo, Verde y Azul.
- Configurar el entorno MicroPython
Usa la biblioteca machine para controlar el LED. Aquí hay un ejemplo genérico para encender el LED en rojo: ```python from machine import Pin import time
- Escribir el código de control del LED
# Reemplaza los números por los pines reales de Romu # (Consulta la hoja de datos del RP2354A para el mapeo exacto) led_r = Pin(25, Pin.OUT) led_g = Pin(26, Pin.OUT) led_b = Pin(27, Pin.OUT)
while True: led_r.value(1) # Enciende el rojo time.sleep(1) led_r.value(0) # Apaga el rojo time.sleep(1) ```
Los botones generalmente se configuran como entradas con una resistencia de pull-up interna. Para detectar una pulsación: ```python button = Pin(22, Pin.IN, Pin.PULL_UP)
- Leer el estado de los botones
while True: if button.value() == 0: print("Botón presionado") led_g.value(1) else: led_g.value(0) ```
Conecta la Romu a tu PC a través de su conector USB Tipo-A integrado. El dispositivo debe aparecer como una unidad de almacenamiento masivo (modo UF2) o un puerto serie según el bootloader. Copia tu archivo .py a la placa.
- Flashear el código
Verificación
Después del reinicio, el LED RGB debe parpadear según tu programa. Presiona los botones integrados para verificar que el LED cambia de color o que el mensaje aparece en la terminal serie. Si no ocurre nada, verifica los números de pines en la documentación técnica del RP2354A, ya que varían según las configuraciones de hardware específicas de la Romu.
Para ir más allá
Para agregar sensores externos, debes usar las almohadillas de depuración. Suelda cables muy finos a estas almohadillas para acceder a líneas GPIO internas no expuestas. Luego puedes conectar sensores simples I2C o analógicos, pero esto anula la ventaja de la compacidad. Una alternativa es usar la Romu como dispositivo HID (teclado/ratón) y simular entradas mediante software, en lugar de gestionar el hardware externo directamente.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
romu-rgb-led-pwm.inoC/C++ (Pico SDK)romu-hid-keyboard-macro.inoC/C++ (TinyUSB)romu-internal-flash-storage.inoC/C++ (Pico SDK)romu-midi-controller.inoC/C++ (TinyUSB)romu-secure-boot-check.inoC/C++ (Pico SDK)romu-hid-custom-keyboard.inoC++ (Arduino)