Arduino - Disconnessione dalla tastiera

Questo esempio utilizza la libreria Keyboard per disconnetterti dalla sessione utente sul tuo computer quando il pin 2 di ARDUINO UNO viene portato a terra. Lo schizzo simula la pressione dei tasti in sequenza di due o tre tasti contemporaneamente e dopo un breve ritardo li rilascia.

Warning - Quando usi il file Keyboard.print()comando, Arduino prende il controllo della tastiera del tuo computer. Per assicurarti di non perdere il controllo del tuo computer mentre esegui uno schizzo con questa funzione, imposta un sistema di controllo affidabile prima di chiamare Keyboard.print (). Questo schizzo è progettato per inviare un comando da tastiera solo dopo che un perno è stato tirato a terra.

Componenti richiesti

Avrai bisogno dei seguenti componenti:

  • 1 × Breadboard
  • 1 × scheda Arduino Leonardo, Micro o Due
  • 1 × pulsante
  • 1 × Ponticello

Procedura

Seguire lo schema del circuito e collegare i componenti sulla breadboard come mostrato nell'immagine sottostante.

Schizzo

Apri il software IDE Arduino sul tuo computer. La codifica nella lingua Arduino controllerà il tuo circuito. Aprire un nuovo file di schizzo facendo clic su Nuovo.

Per questo esempio, è necessario utilizzare Arduino IDE 1.6.7

Note- È necessario includere la libreria della tastiera nel file della libreria Arduino. Copiare e incollare il file della libreria della tastiera all'interno del file con le librerie dei nomi (evidenziate) come mostrato nella schermata seguente.

Codice Arduino

/*
   Keyboard logout
   This sketch demonstrates the Keyboard library.
   When you connect pin 2 to ground, it performs a logout.
   It uses keyboard combinations to do this, as follows:
   On Windows, CTRL-ALT-DEL followed by ALT-l
   On Ubuntu, CTRL-ALT-DEL, and ENTER
   On OSX, CMD-SHIFT-q
   To wake: Spacebar.
   Circuit:
   * Arduino Leonardo or Micro
   * wire to connect D2 to ground.
*/

#define OSX 0
#define WINDOWS 1
#define UBUNTU 2

#include "Keyboard.h"

// change this to match your platform:
int platform = WINDOWS;

void setup() {
   // make pin 2 an input and turn on the
   // pullup resistor so it goes high unless
   // connected to ground:
   
   pinMode(2, INPUT_PULLUP);
   Keyboard.begin();
}

void loop() {
   while (digitalRead(2) == HIGH) {
      // do nothing until pin 2 goes low
      delay(500);
   }
   
   delay(1000);
   
   switch (platform) {
      case OSX:
      Keyboard.press(KEY_LEFT_GUI);
	  
      // Shift-Q logs out:
      Keyboard.press(KEY_LEFT_SHIFT);
      Keyboard.press('Q');
      delay(100);
	  
      // 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 to confirm logout:
      Keyboard.write(KEY_RETURN);
      break;
   }
   
   // do nothing:
   while (true);
}

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 to confirm logout:
      Keyboard.write(KEY_RETURN);
      break;
   }
   
// do nothing:
   while (true);
}

Codice da notare

Prima di caricare il programma sulla tua scheda, assicurati di assegnare il sistema operativo corretto che stai attualmente utilizzando alla variabile della piattaforma.

Mentre lo sketch è in esecuzione, premendo il pulsante si collegherà il pin 2 a terra e la scheda invierà la sequenza di logout al PC collegato tramite USB.

Risultato

Quando si collega il pin 2 a terra, esegue un'operazione di logout.

Utilizza le seguenti combinazioni di tasti per disconnettersi:

  • Sopra Windows, CTRL-ALT-CANC seguito da ALT-l

  • Sopra Ubuntu, CTRL-ALT-CANC e INVIO

  • Sopra OSX, CMD-SHIFT-q