🛠 Créer un pavé macro USB HID avec la carte Romu
Objectifs
Ce tutoriel avancé vise à configurer la carte Romu comme un périphérique HID (Human Interface Device) USB. Vous apprendrez à exploiter les boutons physiques de la carte pour envoyer des combinaisons de touches complexes à l'ordinateur hôte, créant ainsi un pavé macro compact. Nous aborderons la gestion des événements d'entrée et la simulation de clavier via le protocole USB.
Matériel nécessaire
- Carte de développement Romu (Bitmerse)
- Ordinateur avec port USB-A
- Environnement de développement compatible RP2354A (SDK MicroPython ou C/C++)
- Câble USB-A pour le flash initial (si nécessaire selon l'état de la carte)
Étapes
Installez l'outil de programmation adapté au microcontrôleur RP2354A. Assurez-vous que le mode BOOTSEL est accessible si la carte doit être réinitialisée. Connectez la Romu à votre PC via son connecteur USB Type-A intégré.
- Préparation de l'environnement
Dans votre IDE, créez un nouveau projet basé sur la bibliothèque USB HID. Définissez le descripteur de périphérique pour qu'il soit reconnu comme un clavier standard. Cela garantit la compatibilité plug-and-play avec la plupart des systèmes d'exploitation sans installation de pilote spécifique.
- Configuration du projet HID
Identifiez les GPIO internes associés aux boutons de la carte Romu. Écrivez une fonction qui lit l'état de ces boutons. Par exemple, associez le bouton 1 à la macro Ctrl+Shift+T et le bouton 2 à Ctrl+C. Utilisez des temporisations pour éviter le rebond matériel (debouncing).
- Mapping des boutons physiques
Codez la séquence d'envoi des codes touches. Pour chaque appui, la carte doit envoyer la pression des touches modificateurs (Ctrl, Shift), puis la touche principale, suivie de la libération des touches dans l'ordre inverse. Voici un exemple de structure logique : ``c if (button_pressed(BTN_1)) { send_key_mod(KC_MOD_CTRL, KC_MOD_SHIFT); send_key(KC_T); release_keys(); } ``
- Implémentation de la logique de macro
Compilez le code pour la cible RP2354A. Transférez le binaire sur la carte Romu. Une fois le flash terminé, la carte se reconnectera automatiquement au bus USB.
- Compilation et flash
Vérification
Ouvrez un éditeur de texte ou un navigateur. Appuyez sur le bouton configuré pour la macro. Si le texte s'insère ou si l'action correspondante se déclenche (comme la fermeture d'un onglet avec Ctrl+Shift+T), la configuration HID est réussie. Vérifiez également qu'aucun pilote supplémentaire n'est requis dans le gestionnaire de périphériques.
Pour aller plus loin
Intégrez la LED RGB de la carte pour indiquer l'état des macros ou le mode actif. Vous pouvez également explorer l'utilisation de la sécurité Arm Trustzone pour protéger les macros sensibles contre la lecture non autorisée, transformant la Romu en une clé d'authentification physique.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
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)