🛠 Transformer l'Esplora en clavier USB (HID)
Objetivos
Aprovechar la firma del Esplora: al igual que la Leonardo, el ATmega32u4 integra el transceptor USB y puede enumerarse como un verdadero dispositivo HID. Con la biblioteca Keyboard, la placa se convierte en un teclado reconocido por cualquier ordenador sin necesidad de controladores. Enviarás letras con los botones del mando en forma de rombo y un texto con el botón del joystick.
Material
- Arduino Esplora + cable micro-USB.
- Bibliotecas Esplora y Keyboard (incluidas con el core
arduino:avr). - Un editor de texto abierto en el PC para probar.
Código completo
/* Esplora -> clavier USB HID. Attention (recommandation officielle pour la
classe Leonardo) : testez d'abord une version Serial, un code HID fou
peut prendre le controle du poste de travail ! */
#include <Esplora.h>
#include <Keyboard.h>
void setup {
Keyboard.begin;
Serial.begin(9600); // le CDC cohabite avec le HID sur le 32U4
}
void loop {
if (Esplora.readButton(SWITCH_LEFT) == PRESSED) Keyboard.write('A');
if (Esplora.readButton(SWITCH_DOWN) == PRESSED) Keyboard.write('S');
if (Esplora.readButton(SWITCH_UP) == PRESSED) Keyboard.write('D');
if (Esplora.readButton(SWITCH_RIGHT) == PRESSED) Keyboard.write('F');
if (Esplora.readButton(SWITCH_JOYSTICK) == PRESSED) {
Keyboard.print("Esplora HID depuis l'ATmega32u4 !");
Keyboard.write(KEY_RETURN);
delay(500); // anti-rebond pour une phrase complete
}
// Combinaison : bouton joystick + slider = volume (media key)
if (Esplora.readSlider > 900) {
Keyboard.write(KEY_MEDIA_VOLUME_UP);
delay(200);
}
delay(50);
}
Verificación esperada
Abre un bloc de notas: cada pulsación de un botón del mando en forma de rombo escribe A, S, D o F. El botón central del joystick escribe la frase completa seguida de un Enter. Al llevar el slider al máximo, sube el volumen del PC (tecla multimedia). El administrador de dispositivos muestra un «dispositivo de teclado HID» conectado, sin ninguna instalación.
Errores frecuentes
- Salir en HID sin red de seguridad: un sketch que envía pulsaciones en bucle puede hacer el PC inutilizable. Prevé una condición estricta (botón pulsado) y sabe cómo recuperar la placa: Reset y luego carga en la ventana de ~8 s del bootloader Caterina, o activación mediante apertura del puerto a 1200 baudios.
- Olvidar
Keyboard.begin: sin esto, no sale nada. - Esperar un joystick real: la biblioteca Keyboard es un teclado; para los ejes analógicos en HID, se necesita la biblioteca Mouse (ver el siguiente tutorial) o un descriptor HID personalizado (nivel avanzado).
- Efecto de rebote: sin temporización, una pulsación puede producir varias letras; añade un seguimiento de estado (RELEASED→PRESSED) en lugar de un simple
delaysi quieres precisión. - Buscar el puerto serie desaparecido: el CDC coexiste con el HID en la misma enumeración USB; si redefines tú mismo los descriptores, puedes perder el monitor serie — hazlo solo con pleno conocimiento de causa.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
joystick-couleur.inoArduinojeu-boutons.inoArduinoslider-luminosite.inoArduinothermometre-couleur.inoArduinosonometre.inoArduinoaccelerometre-tilt.inoArduino