Arduino - แป้นพิมพ์ออกจากระบบ
ตัวอย่างนี้ใช้ไลบรารีคีย์บอร์ดเพื่อล็อกคุณออกจากเซสชันผู้ใช้บนคอมพิวเตอร์ของคุณเมื่อพิน 2 บน ARDUINO UNO ถูกดึงลงกราวด์ ภาพร่างจำลองการกดแป้นตามลำดับของปุ่มสองหรือสามปุ่มในเวลาเดียวกันและหลังจากหน่วงเวลาสั้น ๆ มันจะปล่อยออกมา
Warning - เมื่อคุณใช้ไฟล์ Keyboard.print()คำสั่ง Arduino เข้าควบคุมแป้นพิมพ์ของคอมพิวเตอร์ของคุณ เพื่อให้แน่ใจว่าคุณจะไม่สูญเสียการควบคุมคอมพิวเตอร์ของคุณในขณะที่รันร่างด้วยฟังก์ชันนี้ให้ตั้งค่าระบบควบคุมที่เชื่อถือได้ก่อนที่คุณจะเรียก Keyboard.print () ภาพร่างนี้ออกแบบมาเพื่อส่งคำสั่ง Keyboard หลังจากดึงหมุดลงกราวด์แล้วเท่านั้น
ส่วนประกอบที่จำเป็น
คุณจะต้องมีส่วนประกอบต่อไปนี้ -
- 1 ×เขียงหั่นขนม
- 1 × Arduino Leonardo, Micro หรือ Due board
- 1 ×ปุ่มกด
- 1 ×จัมเปอร์
ขั้นตอน
ทำตามแผนภาพวงจรและเชื่อมต่อส่วนประกอบบนเขียงหั่นขนมดังที่แสดงในภาพด้านล่าง
ร่าง
เปิดซอฟต์แวร์ Arduino IDE บนคอมพิวเตอร์ของคุณ การเข้ารหัสในภาษา Arduino จะควบคุมวงจรของคุณ เปิดไฟล์ร่างใหม่โดยคลิกใหม่
สำหรับตัวอย่างนี้คุณต้องใช้ Arduino IDE 1.6.7
Note- คุณต้องรวมไลบรารีคีย์บอร์ดไว้ในไฟล์ไลบรารี Arduino ของคุณ คัดลอกและวางไฟล์ไลบรารีปุ่มกดภายในไฟล์ด้วยไลบรารีชื่อ (ไฮไลต์) ดังที่แสดงในภาพหน้าจอต่อไปนี้
รหัส 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);
}
รหัสที่ควรทราบ
ก่อนที่คุณจะอัปโหลดโปรแกรมไปยังบอร์ดของคุณตรวจสอบให้แน่ใจว่าคุณได้กำหนดระบบปฏิบัติการที่ถูกต้องที่คุณกำลังใช้อยู่ให้กับตัวแปรแพลตฟอร์ม
ในขณะที่ร่างกำลังทำงานอยู่การกดปุ่มจะเชื่อมต่อพิน 2 เข้ากับกราวด์และบอร์ดจะส่งลำดับการล็อกเอาต์ไปยังพีซีที่เชื่อมต่อ USB
ผลลัพธ์
เมื่อคุณเชื่อมต่อพิน 2 กับกราวด์จะดำเนินการล็อกเอาต์
ใช้ชุดแป้นพิมพ์ต่อไปนี้เพื่อออกจากระบบ -
บน Windows, CTRL-ALT-DEL ตามด้วย ALT-l
บน Ubuntu, CTRL-ALT-DEL และ ENTER
บน OSX, CMD-SHIFT-q