🛠 Utiliser la Due en hôte USB : lire un clavier sur le port Native

Arduino Due · avance · Schéma : IMG-due-avance-2-usb-host-clavier-usbhost.svg — clavier USB branché via un hub alimenté sur le connecteur micro-USB Native de l'Arduino Due, bibliothèque USBHost annotée, moniteur série affichant les touches reçues.

Objectifs

Le port Native de la Due est piloté directement par le SAM3X et il est OTG : la carte peut devenir HÔTE USB — le tutoriel officiel « Keyboard Controller » l'exploite avec la bibliothèque USBHost. Vous allez brancher un clavier USB standard, intercepter les touches et les retranscrire sur le port série. C'est la base pour transformer la Due en panneau de contrôle, lecteur de périphériques HID ou enregistreur de frappe.

Matériel

Code complet

// Hote USB : clavier HID -> moniteur série (inspiré du tuto officiel
// docs.arduino.cc/tutorials/due/keyboard-controller)
#include <Keyboard.h>

USBKeyboard Keyboard;
uint8_t addr = 0;

void setup {
  Serial.begin(9600);        // via le port Programming (16U2)
  while (!Serial) { }
  Keyboard.begin;          // la Due devient hote USB sur le port Native
}

void loop {
  Keyboard.Task;           // machine a état de l'hote USB
  if (Keyboard.getConnected(addr)) {
    while (Keyboard.keyAvailable) {
      Keyboard.key_t k;
      if (Keyboard.getKey(k)) {
        Serial.print("touche: ");
        Serial.print(k.key);
        Serial.print("  état: ");
        Serial.println(k.state == KEY_PRESSED ? "appuyee" : "relachee");
      }
    }
  }
}

Vérification attendue

Brancher le clavier sur le port Native (via l'adaptateur/le hub alimenté) : le moniteur du port Programming affiche chaque touche appuyée/relâchée. Débrancher/rebrancher le clavier se fait à chaud, la machine à état Task gère énumération et déconnexion. Le téléversement continue de fonctionner par le port Programming pendant que le Native joue l'hôte.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels