🛠 Périphérique composite CDC + HID et bootloader Caterina

Arduino Leonardo — Fiche carte · avance · Schéma : IMG-leonardo-avance-8-leonardo-cdc-hid-simultanes.svg — Câble USB de la Leonardo se dédoublant en deux flux étiquetés « Clavier HID » et « Port série CDC » entrant dans un ordinateur, avec la timeline du bootloader Caterina (fenêtre 8 s)

Objectifs

Construire un périphérique USB composite : la Leonardo expose simultanément un port série CDC (débogage) et un clavier HID (sorte d'exécution), grâce à la classe HID ouverte du cœur Arduino (HID.cpp dans ArduinoCore-avr). Vous maîtriserez ensuite le bootloader Caterina : protocole AVR109 sur USB CDC, détection par « touch » à 1200 bauds, fenêtre de 8 s, et la récupération d'un sketch qui monopolise le bus USB à chaque démarrage (runaway).

Matériel

Code complet

// Peripherique composite : CDC (Serial) + clavier HID simultanes
#include <Keyboard.h>

void setup {
  Serial.begin(9600);   // interface CDC : le port série visible par le PC
  Keyboard.begin;     // interface HID : la carte devient clavier
  delay(3000);          // garde-foc : laisser le temps de placer le curseur
  Serial.println(F("Tapez une ligne : elle sera frappee au clavier."));
}

void loop {
  if (Serial.available > 0) {
    String ligne = Serial.readStringUntil('\n');
    ligne.trim;
    if (ligne.length > 0) {
      Keyboard.print(ligne);   // sortie HID vers l'hote
      Keyboard.releaseAll;
      Serial.println(F("Frappe terminee.")); // echo CDC
    }
  }
}

Vérification attendue

Après téléversement, l'ordinateur voit à la fois un périphérique clavier et un port série. Placez le curseur dans un éditeur, tapez une ligne dans le moniteur série : la Leonardo la « retape » dans l'application focalisée. Le descripteur composite est choisi automatiquement par le cœur dès qu'une bibliothèque USB (Keyboard/Mouse) est incluse en plus de Serial.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels