🛠 Crear un teclado macro USB HID con la placa Romu
Objectifs
Este tutorial avanzado tiene como objetivo configurar la placa Romu como un periférico USB HID (Human Interface Device). Aprenderá a utilizar los botones físicos de la placa para enviar combinaciones de teclas complejas al ordenador anfitrión, creando un teclado macro compacto. Abordaremos el manejo de eventos de entrada y la simulación de teclado a través del protocolo USB.
Matériel nécessaire
- Placa de desarrollo Romu (Bitmerse)
- Ordenador con puerto USB-A
- Entorno de desarrollo compatible con RP2354A (SDK MicroPython o C/C++)
- Cable USB-A para el flasheo inicial (si es necesario según el estado de la placa)
Étapes
Instale la herramienta de programación adecuada para el microcontrolador RP2354A. Asegúrese de que el modo BOOTSEL sea accesible si la placa necesita reiniciarse. Conecte la Romu a su PC a través de su conector USB Type-A integrado.
- Preparación del entorno
En su IDE, cree un nuevo proyecto basado en la biblioteca USB HID. Defina el descriptor de dispositivo para que sea reconocido como un teclado estándar. Esto garantiza la compatibilidad plug-and-play con la mayoría de los sistemas operativos sin necesidad de instalar controladores específicos.
- Configuración del proyecto HID
Identifique los GPIO internos asociados con los botones de la placa Romu. Escriba una función que lea el estado de estos botones. Por ejemplo, asocie el botón 1 con la macro Ctrl+Shift+T y el botón 2 con Ctrl+C. Utilice temporizadores para evitar problemas de rebote de hardware.
- Mapeo de botones físicos
Codifique la secuencia de envío de códigos de tecla. Para cada pulsación, la placa debe enviar la presión de las teclas modificadoras (Ctrl, Shift), luego la tecla principal, seguida de la liberación de las teclas en orden inverso. Aquí hay un ejemplo de estructura lógica: ``c if (button_pressed(BTN_1)) { send_key_mod(KC_MOD_CTRL, KC_MOD_SHIFT); send_key(KC_T); release_keys(); } ``
- Implementación de la lógica de macro
Compile el código para el objetivo RP2354A. Transfiera el binario a la placa Romu. Una vez finalizado el flasheo, la placa se reconectará automáticamente al bus USB.
- Compilación y flasheo
Vérification
Abra un editor de texto o un navegador. Presione el botón configurado para la macro. Si se inserta texto o se activa la acción correspondiente (como cerrar una pestaña con Ctrl+Shift+T), la configuración HID es exitosa. Verifique también que no se requieran controladores adicionales en el administrador de dispositivos.
Pour aller plus loin
Integre el LED RGB para indicar los estados de las macros o los modos activos. También puede explorar el uso de la seguridad Arm Trustzone para proteger las macros sensibles contra la lectura no autorizada, convirtiendo la Romu en una llave de autenticación física.
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)