clavier_media.ino

LattePanda Alpha · Fichier : clavier_media.ino · Langage : Arduino · Usage : Tourner le bouton physique en touche clavier USB

Le 32U4 est un périphérique USB complet : un bouton du connecteur devient une touche média envoyée à... l'hôte LattePanda lui-même. Le circuit complet bouton → HID → système, sans fil ni driver.

Matériel requis

Une LattePanda Alpha (x86 Intel m3-7Y30, Windows 10 ou Linux) avec son coprocesseur ATmega32U4 compatible Arduino Leonardo sur les connecteurs 50 broches. 1 bouton poussoir (D2 vers GND).

Branchement

Bouton entre D2 et GND. Le MCU est relié à l'hôte par le bus série interne — l'USB HID part du 32U4 vers le PC via le contrôleur interne.

Fonctionnement

Keyboard.write envoie un rapport HID standard ; le noyau de l'hôte le traite comme un clavier réel. Le maintien cadence les répétitions à 1 Hz. L'ATmega32U4 est un vrai Leonardo : brochez-le en « Arduino Leonardo » dans l'IDE via son port COM interne. Côté hôte, la bibliothèque DFRobot lattepanda (Python) dialogue avec lui par série.

Pour aller plus loin

Pavé de raccourcis pour le studio (mute micro, play), ou combo clavier+souris pour une présentation.

clavier_media.ino

// Cote MCU (carte « Arduino Leonardo ») : le 32U4 est le clavier.
// Bouton D2 = touche volume +/- ; le PC (l'hote !) recoit les medias.
#include <Keyboard.h>

const int BOUTON = 2;

void setup() {
  pinMode(BOUTON, INPUT_PULLUP);
  Keyboard.begin();
}

void loop() {
  if (digitalRead(BOUTON) == LOW) {
    Keyboard.write(KEY_MEDIA_VOLUME_UP);
    delay(150);                       // repetition volontairement lente
    while (digitalRead(BOUTON) == LOW) {
      if (millis() % 1000 < 20) Keyboard.write(KEY_MEDIA_VOLUME_UP);
      delay(5);
    }
  }
  // Raccourcis utiles : KEY_MEDIA_PLAY_PAUSE, KEY_LEFT_GUI...
}

← Retour à la fiche