🛠 Crea un dispositivo HID personalizado con Romu

Placa de desarrollo USB compacta Bitmerse Romu (RP2354A) · debutant · Transformez votre carte Romu en un pavé macro USB compact grâce à ses boutons intégrés et son connecteur Type-A.

Objectifs

Este tutorial le guía en la creación de un Dispositivo de Interfaz Humana (HID) simple usando la placa Romu. Aprenderá a enviar comandos de teclado vía USB sin cables externos, aprovechando los botones físicos de la placa. Este caso de uso demuestra la automatización de tareas repetitivas o la creación de atajos personalizados.

Matériel nécessaire

Étapes

Instale picotool y el SDK de Raspberry Pi. Asegúrese de que su compilador esté configurado para el objetivo Arm Cortex-M33 o RISC-V según su elección.

  1. Configuración del entorno

Use la biblioteca HID del SDK para definir un descriptor de dispositivo. Aquí hay un ejemplo en C usando la biblioteca TinyUSB:

  1. Escritura del código HID
#include "tusb.h"

// Definir botones como entradas GPIO internas
#define BTN_A 0
#define BTN_B 1

void setup() {
    gpio_init(BTN_A); gpio_set_dir(BTN_A, GPIO_IN);
    gpio_init(BTN_B); gpio_set_dir(BTN_B, GPIO_IN);
    tusb_init();
}

void loop() {
    tud_task(); // Manejar eventos USB
    if (!gpio_get(BTN_A) && tud_hid_ready()) {
        uint8_t report[2] = {0x00, 0x04}; // Tecla 'a' presionada
        tud_hid_keyboard_report(REPORT_ID_KEYBOARD, 0, report);
    } else if (tud_hid_ready()) {
        uint8_t report[2] = {0x00, 0x00}; // Soltar
        tud_hid_keyboard_report(REPORT_ID_KEYBOARD, 0, report);
    }
    sleep_ms(10);
}

Compile el proyecto para la placa Romu. Conecte la placa a su PC a través del conector USB Tipo-A integrado. Si el bootloader está activo, la placa aparecerá como un dispositivo de almacenamiento masivo. Copie el archivo .uf2 compilado en la unidad.

  1. Compilación y Flash

Desconecte y vuelva a conectar la placa. No se necesita cable para el uso final. Abra un editor de texto y presione el botón correspondiente para verificar la transmisión del carácter.

  1. Prueba Plug-and-Play

Vérification

Pour aller plus loin

Explore el envío de combinaciones de teclas (Ctrl+C) o la implementación de un controlador MIDI USB. La seguridad Arm TrustZone puede activarse para proteger el firmware contra la lectura no autorizada, crucial para las claves de autenticación.

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales