Keyboard Reprogram

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


Schematic

Código
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);
}



No hay comentarios:

Publicar un comentario