Paso 7: Emulando un teclado
Ahora sabemos cómo actualizar el firmware, así que ahora tenemos que actuar como un teclado. Así que lo primero que debemos hacer es escribir un sencillo programa para Arduino que envía pulsaciones de tecla a la consola serie. ¿Cómo enviar una pulsación de tecla? Utilizando esta lista de códigos de teclado HID para buscar el carácter que desea enviar. A continuación, el código de ejemplo proporcionado por Kevin DeMarco:
/* Arduino USB HID Keyboard Demo * Random Key/Random Delay */ uint8_t buf[8] = { 0 }; /* Keyboard report buffer */ void setup() { Serial.begin(9600); randomSeed(analogRead(0)); delay(200); } void loop() { delay(5000); buf[0] = 0; buf[2] = 0x15; // letter R Serial.write(buf, 8); releaseKey(); } void releaseKey() { buf[0] = 0; buf[2] = 0; Serial.write(buf, 8); // Release key }
Compruebe este código de error y luego subirlo a Arduino. Ahora todo lo que queda hacer es seguir los mismos pasos como en los pasos 2 y 3 para subir el firmware de teclado de Arduino. Brevemente, aquí están los
- Desenchufe el Arduino desde el ordenador
- Coloque el jumper del disco duro sobre los pivotes de tierra y Reset.
- Enchufe el Arduino en el equipo que alimenta en
- Remueva el jumper del disco duro
- En su terminal de computadora, ejecutar estos comandos para cargar el firmware de Arduino teclado
sudo dfu-programmer atmega16u2 erase sudo dfu-programmer atmega16u2 flash --debug 1 Arduino-keyboard-0.3.hex sudo dfu-programmer atmega16u2 reset sudo atmega16u2 de dfu-programador flash--debug 1 Arduino-teclado-0.3.hex #include <Brain.h> Brain brain(Serial); long interval = 500; long previousMillis = 0; int medValue; uint8_t buf[8] = { 0 }; void setup() { Serial.begin(9600); randomSeed(analogRead(0)); delay(200); } void loop() { if (brain.update()) { Serial.println(brain.readCSV()); medValue = brain.readMeditation(); } if(brain.readSignalQuality() == 0) { if (medValue < 50) { buf[0] = 0; buf[2] = 0x17; // letter T Serial.write(buf, 8); delay(40); releaseKey(); buf[0] = 0; buf[2] = 0x0C; // letter I Serial.write(buf, 8); delay(40); releaseKey(); buf[0] = 0; buf[2] = 0x11; // letter N Serial.write(buf, 8); delay(40); releaseKey(); buf[0] = 0; buf[2] = 0x0E; // letter K Serial.write(buf, 8); delay(40); releaseKey(); buf[0] = 0; buf[2] = 0x08; // letter E Serial.write(buf, 8); delay(40); releaseKey(); buf[0] = 0; buf[2] = 0x15; // letter R Serial.write(buf, 8); delay(40); releaseKey(); buf[0] = 0; buf[2] = 0x11; // letter N Serial.write(buf, 8); delay(40); releaseKey(); buf[0] = 0; buf[2] = 0x18; // letter U Serial.write(buf, 8); delay(40); releaseKey(); buf[0] = 0; buf[2] = 0x17; // letter T Serial.write(buf, 8); delay(40); releaseKey(); buf[0] = 0; buf[2] = 0x28; // enter Serial.write(buf, 8); delay(40); releaseKey(); } } } void releaseKey() { buf[0] = 0; buf[2] = 0; Serial.write(buf, 8); // Release key }
- Ciclo de alimentación del Arduino por desenchufarlo y enchufarlo de nuevo en.
Con tu Arduino reconectado, abrir un texto editor y usted debería ver la letra "R" se escribe (o cualquier carta que usted eligió). Con éxito ha emulado un teclado con tu Arduino!