🛠 Gestión de E/S en la placa Romu
Objetivos
Este tutorial tiene como objetivo comprender la arquitectura de E/S de la placa Romu. A diferencia de las placas estándar, Romu no carece de conectores GPIO externos. Exploraremos cómo acceder a los recursos disponibles: el LED RGB integrado y los pads de depuración. El objetivo es dominar el control de salida de luz y comprender las limitaciones de hardware para diseñar periféricos USB compactos.
Materiales necesarios
- Una placa Romu de Bitmerse.
- Un ordenador con un puerto USB-A disponible.
- Software de desarrollo compatible con RP2354 (como MicroPython o SDK C/C++).
- Un puente USB-a-UART o un depurador compatible con SWD (opcional para pads).
Pasos
- Configuración del entorno: Instale el SDK de Raspberry Pi Pico adaptado para RP2354. Conecte la Romu directamente a un puerto USB-A de su ordenador. La placa se reconoce como un dispositivo USB nativo.
- Acceso al LED RGB: El LED RGB es el principal indicador de salida. En su código, identifique los pines internos asociados con los canales Rojo, Verde y Azul. Por ejemplo, en MicroPython:
from machine import Pin
import time
# Ejemplo genérico: los pines internos deben verificarse mediante el esquema
# Suponiendo pines internos 25 (R), 26 (G), 27 (B) para este ejemplo
led_r = Pin(25, Pin.OUT)
led_g = Pin(26, Pin.OUT)
led_b = Pin(27, Pin.OUT)
def set_color(r, g, b):
led_r.value(not r) # Lógica activa baja común
led_g.value(not g)
led_b.value(not b)
- Uso de pads de depuración: Los pads de depuración (SWDIO, SWCLK, GND, 3V3) son para depuración de hardware. No están diseñados para E/S rápidas o sensores estándar. Para leer un estado, debe soldar cables finos o usar sondas pogo. No intente conectar componentes pesados.
- Bucle de control: Implemente un bucle que cambie el color del LED para confirmar el funcionamiento. Esto valida la cadena de compilación y la carga del código en el RP2354.
while True:
set_color(1, 0, 0) # Rojo
time.sleep(0.5)
set_color(0, 1, 0) # Verde
time.sleep(0.5)
set_color(0, 0, 1) # Azul
time.sleep(0.5)
- Compilar y Flashear: Compile su script y transféralo a la placa. Romu usa un bootloader específico. Asegúrese de que el archivo .uf2 se copie correctamente en la unidad de almacenamiento masivo USB.
Verificación
Observe el LED RGB. Debe cambiar de color según la secuencia programada. Si el LED permanece apagado, verifique la alimentación a través del puerto USB y la validez de los pines internos utilizados en el código. La falta de respuesta a menudo indica un error de compilación o un mapeo incorrecto de pines.
Para ir más allá
Para agregar entradas, debe usar los botones físicos en la placa o diseñar un circuito externo conectado a los pads de depuración con resistencias de pull-up adecuadas. Estudie las bibliotecas USB HID para transformar estas señales en eventos de teclado o ratón, aprovechando el propósito principal de Romu.
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)