Αυτό το παράδειγμα χρησιμοποιεί την βιβλιοθήκη του πληκτρολογίου. Ο σκοπός είναι να επιτευχθεί η διακοπή της συνεδρίας ενός χρήστη από τον υπολογιστή σας. Το μόνο που χρειάζεται, είναι να συνδεθεί ο ακροδέκτης 2 της πλακέτας Leonardo, Micro ή Due με την γείωση. Ο παρακάτω κώδικας, προσομοιώνει το πάτημα δύο ή και τριών πλήκτρων ταυτόχρονα. Στην συνέχεια, αυτά θα απελευθερωθούν έχοντας υποστεί μια μικρή καθυστέρηση.

Αποσαφήνιση: Να έχετε υπόψη σας ότι όταν χρησιμοποιείτε την εντολή Keyboard.print(), τότε το Arduino θα πάρει τον έλεγχο του πληκτρολογίου σας. Έτσι, πρώτα από όλα, βεβαιωθείτε ότι δεν θα χάσετε τον έλεγχο του υπολογιστή σας κατά την εκτέλεση κώδικα που εμπεριέχει αυτήν την συνάρτηση. Αυτό μπορεί να πραγματοποιηθεί αν δημιουργήσετε ένα αξιόπιστο σύστημα ελέγχου, προτού να καλέσετε την συνάρτηση Keyboard.print(). Ο συγκεκριμένος κώδικας έχει σχεδιαστεί να λειτουργεί μόνο κατά την αποστολή εντολών από το πληκτρολόγιο. Όπως αναφέραμε, αυτό μπορεί να υλοποιηθεί αφού πρώτα έχετε γειώσει τον ακροδέκτη 2.

Απαιτούμενος εξοπλισμός

– Πλακέτα του Arduino Leonardo, Micro ή Due.
– Στιγμιαίο μπουτόν.
– Καλώδια σύνδεσης.
– Breadboard.

Κύκλωμα

 

 

 

 

 

 

 

Σχηματικά

 

 

 

 

 

 

 

 

 

 

 

 

Κώδικας

Προτού να φορτώσετε το πρόγραμμα στην πλακέτα σας, βεβαιωθείτε ότι έχετε ορίσει το σωστό λειτουργικό σύστημα που χρησιμοποιείτε εκείνη την στιγμή στην μεταβλητή πλατφόρμας.

Έτσι, πατώντας το στιγμιαίο μπουτόν κατά την εκτέλεση του κώδικα, πραγματοποιείται η σύνδεση του ακροδέκτη 2 με την γείωση. Στην συνέχεια, η πλακέτα θα αποστείλει στον συνδεδεμένο υπολογιστή μέσω του καλωδίου USB, την ακολουθία λήξης της συνεδρίας του εκάστοτε χρήστη.

/*
  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.

 created 6 Mar 2012
 modified 27 Mar 2012
 by Tom Igoe

 This example is in the public domain

 http://www.arduino.cc/en/Tutorial/KeyboardLogout
 */

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

#include "Keyboard.h"

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

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);
      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);
}

Επιστροφή στην σελίδα Παραπομπές Γλώσσας

Save

Save