En este ejemplo se utiliza la biblioteca Keyboard para abrir una nueva ventana de programa del software Arduino (IDE) , envía comandos de teclado que escriben el ejemplo Blink, y reprograma la placa. Después de ejecutar este programa y llevar el pin 2 a tierra mediante el pulsador, la placa tendrá un nuevo programa, Blink.
Nota: Cuando se utiliza el comando Keyboard.print (), el Arduino toma el control el teclado de su ordenador! Para asegurar que no pierde el control de su ordenador mientras se ejecuta un programa con esta función, asegúrese de establecer un sistema de control fiable antes de llamar Keyboard.print (). Este programa está diseñado para enviar sólo los comandos de teclado después de que pin digital 2 se lleva a nivel LOW.
Hardware Requerido
- 1 Placa Arduino Leonardo, Micro o Due
- 1 Pulsador
- Hilo para cableado
- 1 protoboard
Software Requerido
- Arduino IDE ejecutandose
Circuito
Conectar la placa al puerto USB, a continuación, active el pulsador para conectarse con D2 e iniciar el programa de emulación de pulsación del teclado . Recuerde que debe tener la ventana del software de Arduino (IDE) abierta antes de pulsar el botón.
/*
Arduino Programs Blink
Este programa demuestra el uso de la biblioteca Keyboard.
Solo para placas Leonardo y Due.
Cuando se conecta el pin 2 a masa, se abre una nueva ventana
window con la combinación de teclas (CTRL-N),
a continuación, escribe el programa Blink, después auto-formatea el texto utilizando otra combinación de teclas (Ctrl + T), entonces carga el programa para el Arduino actualmente seleccionado usando una combinación de teclas final (CTRL-T).
Circuiot:
* 1 Placa Arduino Leonardo, Micro, Due, LilyPad USB, o Yún
* cable para conectar D2 a masa.
creado 5 Marzo 2012
modificado 29 Marzp 2012
por Tom Igoe
modificado 3 Mayo 2014
por Scott Fitzgerald
Este código es de dominio público
http://www.arduino.cc/en/Tutorial/KeyboardReprogram
*/
#include "Keyboard.h"
// use esta opción para OSX.
// Comenta esta línea si se usa Windows o Linux:
char ctrlKey = KEY_LEFT_GUI;
// use esta opción para Windows y Linux.
// dejar cometada esta línea si se usa OSX:
// char ctrlKey = KEY_LEFT_CTRL;
void setup() {
// configura el pin 2 como entrada y activa
// la resistencia pullup que pone el pin a nivel HIGH
// hasta que se conecte a masa:
pinMode(2, INPUT_PULLUP);
// inicializa el control del teclado:
Keyboard.begin();
}
void loop() {
while (digitalRead(2) == HIGH) {
// no hace nada hasta que el pin 2 se lleva a nivel LOW
delay(500);
}
delay(1000);
// nuevo documento
Keyboard.press(ctrlKey);
Keyboard.press('n');
delay(100);
Keyboard.releaseAll();
// espera a que se abra la nueva ventana:
delay(1000);
// versions de Arduino IDE posteriores 1.5
// nuevos programas con funciones setup() y loop()
// borrar la ventana antes de escribir algo
// seleccionar todo
Keyboard.press(ctrlKey);
Keyboard.press('a');
delay(500);
Keyboard.releaseAll();
// borra el texto seleccionado
Keyboard.write(KEY_BACKSPACE);
delay(500);
// Escribe el programa "blink":
Keyboard.println("void setup() {");
Keyboard.println("pinMode(13, OUTPUT);");
Keyboard.println("}");
Keyboard.println();
Keyboard.println("void loop() {");
Keyboard.println("digitalWrite(13, HIGH);");
Keyboard.print("delay(3000);");
// 3000 ms es demasiado largo. Bórrelo:
for (int keystrokes = 0; keystrokes < 6; keystrokes++) {
delay(500);
Keyboard.write(KEY_BACKSPACE);
}
// en su lugar ponerlo a 1000 :
Keyboard.println("1000);");
Keyboard.println("digitalWrite(13, LOW);");
Keyboard.println("delay(1000);");
Keyboard.println("}");
// ordenar:
Keyboard.press(ctrlKey);
Keyboard.press('t');
delay(100);
Keyboard.releaseAll();
delay(3000);
// cargar el código:
Keyboard.press(ctrlKey);
Keyboard.press('u');
delay(100);
Keyboard.releaseAll();
// esperar el borrado y reprogamación:
while (true);
}
Arduino Programs Blink
Este programa demuestra el uso de la biblioteca Keyboard.
Solo para placas Leonardo y Due.
Cuando se conecta el pin 2 a masa, se abre una nueva ventana
window con la combinación de teclas (CTRL-N),
a continuación, escribe el programa Blink, después auto-formatea el texto utilizando otra combinación de teclas (Ctrl + T), entonces carga el programa para el Arduino actualmente seleccionado usando una combinación de teclas final (CTRL-T).
Circuiot:
* 1 Placa Arduino Leonardo, Micro, Due, LilyPad USB, o Yún
* cable para conectar D2 a masa.
creado 5 Marzo 2012
modificado 29 Marzp 2012
por Tom Igoe
modificado 3 Mayo 2014
por Scott Fitzgerald
Este código es de dominio público
http://www.arduino.cc/en/Tutorial/KeyboardReprogram
*/
#include "Keyboard.h"
// use esta opción para OSX.
// Comenta esta línea si se usa Windows o Linux:
char ctrlKey = KEY_LEFT_GUI;
// use esta opción para Windows y Linux.
// dejar cometada esta línea si se usa OSX:
// char ctrlKey = KEY_LEFT_CTRL;
void setup() {
// configura el pin 2 como entrada y activa
// la resistencia pullup que pone el pin a nivel HIGH
// hasta que se conecte a masa:
pinMode(2, INPUT_PULLUP);
// inicializa el control del teclado:
Keyboard.begin();
}
void loop() {
while (digitalRead(2) == HIGH) {
// no hace nada hasta que el pin 2 se lleva a nivel LOW
delay(500);
}
delay(1000);
// nuevo documento
Keyboard.press(ctrlKey);
Keyboard.press('n');
delay(100);
Keyboard.releaseAll();
// espera a que se abra la nueva ventana:
delay(1000);
// versions de Arduino IDE posteriores 1.5
// nuevos programas con funciones setup() y loop()
// borrar la ventana antes de escribir algo
// seleccionar todo
Keyboard.press(ctrlKey);
Keyboard.press('a');
delay(500);
Keyboard.releaseAll();
// borra el texto seleccionado
Keyboard.write(KEY_BACKSPACE);
delay(500);
// Escribe el programa "blink":
Keyboard.println("void setup() {");
Keyboard.println("pinMode(13, OUTPUT);");
Keyboard.println("}");
Keyboard.println();
Keyboard.println("void loop() {");
Keyboard.println("digitalWrite(13, HIGH);");
Keyboard.print("delay(3000);");
// 3000 ms es demasiado largo. Bórrelo:
for (int keystrokes = 0; keystrokes < 6; keystrokes++) {
delay(500);
Keyboard.write(KEY_BACKSPACE);
}
// en su lugar ponerlo a 1000 :
Keyboard.println("1000);");
Keyboard.println("digitalWrite(13, LOW);");
Keyboard.println("delay(1000);");
Keyboard.println("}");
// ordenar:
Keyboard.press(ctrlKey);
Keyboard.press('t');
delay(100);
Keyboard.releaseAll();
delay(3000);
// cargar el código:
Keyboard.press(ctrlKey);
Keyboard.press('u');
delay(100);
Keyboard.releaseAll();
// esperar el borrado y reprogamación:
while (true);
}
No hay comentarios:
Publicar un comentario