En este ejemplo se utiliza la biblioteca de teclado que cierra la sesión de usuario en el equipo cuando el pin 2 en su Leonardo, Micro o Due se lleva a tierra. El dibujo simula la pulsación de teclas en secuencia de dos o tres teclas al mismo tiempo y después de un breve retraso los libera.
Nota: Cuando se utiliza el comando Keyboard.print (), el Arduino toma el control del teclado de su ordenador! Para asegurar que no pierda 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 únicamente para enviar un comando de teclado cuando un pin se pone a nivel LOW.
Hardware Requerido
- 1 Placa Arduino Leonardo, Micro, o Due
- 1 Pulsador
- Hilo para cabledo
- 1 Protoboard
Circuito
Esquema
Código
Antes de cargar el programa en la placa, asegúrese de asignar el sistema operativo correcto que está utilizando actualmente para la variable "plataform".
Mientras que el programa se está ejecutando, pulse el botón para conectarel pin 2 a tierra y la placa enviará la secuencia de cierre de sesión al USB del PC conectado.
/*
Keyboard logout
Este propgrama muestra el yso de la biblioteca Keyboard
Cuando se conecta el pin 2 a masa, se realiza un cierre de sesión.:
Para ello utiliza las siguientes combinaciones de teclas
En Windows, CTRL-ALT-DEL seguido de ALT-l
En Ubuntu, CTRL-ALT-DEL, yENTER
En OSX, CMD-SHIFT-q
Para reactivar: Barra espaciadora
Circuito
* Arduino Leonardo o Micro
* cable para conectar D2 a masa.
creado 6 Marzo 2012
modificado 27 Marzo 2012
por Tom Igoe
Este código es de dominio público
http://www.arduino.cc/en/Tutorial/KeyboardLogout
*/
#define OSX 0
#define WINDOWS 1
#define UBUNTU 2
#include "Keyboard.h"
// cambiar esto para adaprarlo a su Sistema Operativo:
int platform = OSX;
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);
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);
switch (platform) {
case OSX:
Keyboard.press(KEY_LEFT_GUI);
// Shift-Q para cerrar sesión:
Keyboard.press(KEY_LEFT_SHIFT);
Keyboard.press('Q');
delay(100);
Keyboard.releaseAll();
// enter:
Keyboard.write(KEY_RETURN);
break;
case WINDOWS:
// CTRL-ALT-DEL:
Keyboard.press(KEY_LEFT_CTRL);
Keyboard.press(KEY_LEFT_ALT);
Keyboard.press(KEY_DELETE);
delay(100);
Keyboard.releaseAll();
//ALT-l:
delay(2000);
Keyboard.press(KEY_LEFT_ALT);
Keyboard.press('l');
Keyboard.releaseAll();
break;
case UBUNTU:
// CTRL-ALT-DEL:
Keyboard.press(KEY_LEFT_CTRL);
Keyboard.press(KEY_LEFT_ALT);
Keyboard.press(KEY_DELETE);
delay(1000);
Keyboard.releaseAll();
// Enter para confirmar el cierre de sesión:
Keyboard.write(KEY_RETURN);
break;
}
// no hace nada
while (true);
}
Keyboard logout
Este propgrama muestra el yso de la biblioteca Keyboard
Cuando se conecta el pin 2 a masa, se realiza un cierre de sesión.:
Para ello utiliza las siguientes combinaciones de teclas
En Windows, CTRL-ALT-DEL seguido de ALT-l
En Ubuntu, CTRL-ALT-DEL, yENTER
En OSX, CMD-SHIFT-q
Para reactivar: Barra espaciadora
Circuito
* Arduino Leonardo o Micro
* cable para conectar D2 a masa.
creado 6 Marzo 2012
modificado 27 Marzo 2012
por Tom Igoe
Este código es de dominio público
http://www.arduino.cc/en/Tutorial/KeyboardLogout
*/
#define OSX 0
#define WINDOWS 1
#define UBUNTU 2
#include "Keyboard.h"
// cambiar esto para adaprarlo a su Sistema Operativo:
int platform = OSX;
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);
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);
switch (platform) {
case OSX:
Keyboard.press(KEY_LEFT_GUI);
// Shift-Q para cerrar sesión:
Keyboard.press(KEY_LEFT_SHIFT);
Keyboard.press('Q');
delay(100);
Keyboard.releaseAll();
// enter:
Keyboard.write(KEY_RETURN);
break;
case WINDOWS:
// CTRL-ALT-DEL:
Keyboard.press(KEY_LEFT_CTRL);
Keyboard.press(KEY_LEFT_ALT);
Keyboard.press(KEY_DELETE);
delay(100);
Keyboard.releaseAll();
//ALT-l:
delay(2000);
Keyboard.press(KEY_LEFT_ALT);
Keyboard.press('l');
Keyboard.releaseAll();
break;
case UBUNTU:
// CTRL-ALT-DEL:
Keyboard.press(KEY_LEFT_CTRL);
Keyboard.press(KEY_LEFT_ALT);
Keyboard.press(KEY_DELETE);
delay(1000);
Keyboard.releaseAll();
// Enter para confirmar el cierre de sesión:
Keyboard.write(KEY_RETURN);
break;
}
// no hace nada
while (true);
}
No hay comentarios:
Publicar un comentario