Arduino - Đăng xuất bàn phím
Ví dụ này sử dụng thư viện Bàn phím để đăng xuất bạn khỏi phiên người dùng trên máy tính của bạn khi chân 2 trên ARDUINO UNO được kéo xuống đất. Bản phác thảo mô phỏng thao tác nhấn phím theo chuỗi hai hoặc ba phím cùng lúc và sau một khoảng thời gian ngắn, nó sẽ nhả chúng ra.
Warning - Khi bạn sử dụng Keyboard.print()lệnh, Arduino tiếp quản bàn phím máy tính của bạn. Để đảm bảo bạn không mất quyền kiểm soát máy tính của mình trong khi chạy bản phác thảo với chức năng này, hãy thiết lập một hệ thống điều khiển đáng tin cậy trước khi bạn gọi Keyboard.print (). Bản phác thảo này được thiết kế để chỉ gửi lệnh Bàn phím sau khi ghim đã được kéo xuống đất.
Thành phần bắt buộc
Bạn sẽ cần các thành phần sau:
- 1 × Breadboard
- 1 × Arduino Leonardo, Micro hoặc bảng Do
- 1 × nút bấm
- 1 × Jumper
Thủ tục
Làm theo sơ đồ mạch và nối các thành phần trên breadboard như trong hình dưới đây.
Phác thảo
Mở phần mềm Arduino IDE trên máy tính của bạn. Mã hóa bằng ngôn ngữ Arduino sẽ điều khiển mạch của bạn. Mở một tệp phác thảo mới bằng cách nhấp vào Mới.
Đối với ví dụ này, bạn cần sử dụng Arduino IDE 1.6.7
Note- Bạn phải đưa thư viện bàn phím vào tệp thư viện Arduino của mình. Sao chép và dán tệp thư viện bàn phím vào bên trong tệp với các thư viện tên (được đánh dấu) như thể hiện trong ảnh chụp màn hình sau.
Mã 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);
}
Mã cần lưu ý
Trước khi bạn tải chương trình lên bảng của mình, hãy đảm bảo rằng bạn chỉ định đúng hệ điều hành mà bạn hiện đang sử dụng cho biến nền tảng.
Trong khi bản phác thảo đang chạy, nhấn nút sẽ kết nối chân 2 với mặt đất và bảng sẽ gửi chuỗi đăng xuất đến PC được kết nối USB.
Kết quả
Khi bạn kết nối chân 2 với đất, nó sẽ thực hiện thao tác đăng xuất.
Nó sử dụng các tổ hợp bàn phím sau để đăng xuất:
Trên Windows, CTRL-ALT-DEL theo sau là ALT-l
Trên Ubuntu, CTRL-ALT-DEL và ENTER
Trên OSX, CMD-SHIFT-q