Chế tạo keyboard với Arduino Pro Micro

16/06/2019
che-tao-keyboard-voi-arduino-pro-micro

Pro Micro là 1 Board Arduino độc đáo với chức năng HID (Human Interface Device) có thể giả lập chuột và bàn phím. Bài này tui sẽ hướng dẫn các bạn làm 1 keyboard độc đáo bằng Arduino Pro Micro

II. Chuẩn bị

  • Mạch Arduino Pro Micro 
  • Breadboard (một số nơi gọi là Test Board).
  • Dây nối breadboard
  • Điện trở 10 kΩ.
  • Nút nhấn (hoặc công tắc tương đương).

III. Kết nối

Bạn chỉ việc nối button vào board Arduino Pro Micro qua điện trở 10k thôi:

IV. Chương trình

Giới thiệu về lệnh

Để làm được project này, chúng ta cần tìm hiểu các lệnh của thư viện Keyboard.h. Thư viện này chỉ sử dụng cho những board hỗ trợ HID USB thôi nhá...Như Lenardo hay Pro Micro...Không cần Add thư viện hay gì hết,,,bạn cứ dùng lệnh bình thường...vì nó đã được tích hợp sẵn r

  • Keyboard.write(char): Lệnh này gửi ký tự đến cổng USB theo bảng mã ASCII...VD: Keyboard.write('z'), thỳ máy tính sẽ nhận được ký tự 'z' từ keyboard...Lưu ý phải có ngoặc '' bao quanh cái ký tự cần gửi
  • Keyboard.print(string): Lệnh này cho phép keyboard gửi 1 chuỗi ký tự đến máy tính...VD: Keyboard.print("Cộng đồng Arduino Việt Nam")...Sau khi gửi lệnh này, máy tính sẽ nhận được chuỗi "Cộng đồng Arduino Việt Nam".
  • Keyboard.println(string): Cũng giống như Keyboard.print()....nhưng sau khi gửi lệnh, máy tính sẽ nhận thêm phím [ENTER] khi kết thúc chuỗi
  • Keyboard.press(byte): Lệnh này cho phép gửi tín hiệu của nhấn các phím tương ứng như: Alt, Ctrl,...
  • Keyboard.release(byte): Sau khi thực hiện lệnh này, thì sẽ hủy nhấn phím (tức là không giữ cái phím đấy nữa)

Ví dụ về Code

Gửi một ký tự

 
  1. int buttonPin = 2; // Set chân button là chân số 2
  2.  
  3. void setup()
  4. {
  5. pinMode(buttonPin, INPUT);
  6.  
  7. }
  8.  
  9. void loop()
  10. {
  11. if (digitalRead(buttonPin) == 1) // Nếu button được nhấn
  12. {
  13. Keyboard.write('z'); // Gửi ký tự 'z' đến máy tính qua cổngS
  14. delay(1000);
  15. }
  16. }

Nhấn tổ hợp phím

 
  1. #define KEY_RIGHT_SHIFT 0x85
  2. #define KEY_RIGHT_ALT 0x86
  3. #define KEY_RIGHT_GUI 0x87
  4.  
  5. #define KEY_UP_ARROW 0xDA
  6. #define KEY_DOWN_ARROW 0xD9
  7. #define KEY_LEFT_ARROW 0xD8
  8. #define KEY_RIGHT_ARROW 0xD7
  9. #define KEY_BACKSPACE 0xB2
  10. #define KEY_TAB 0xB3
  11. #define KEY_RETURN 0xB0
  12. #define KEY_ESC 0xB1
  13. #define KEY_INSERT 0xD1
  14. #define KEY_DELETE 0xD4
  15. #define KEY_PAGE_UP 0xD3
  16. #define KEY_PAGE_DOWN 0xD6
  17. #define KEY_HOME 0xD2
  18. #define KEY_END 0xD5
  19. #define KEY_CAPS_LOCK 0xC1
  20. #define KEY_F1 0xC2
  21. #define KEY_F2 0xC3
  22. #define KEY_F3 0xC4
  23. #define KEY_F4 0xC5
  24. #define KEY_F5 0xC6
  25. #define KEY_F6 0xC7
  26. #define KEY_F7 0xC8
  27. #define KEY_F8 0xC9
  28. #define KEY_F9 0xCA
  29. #define KEY_F10 0xCB
  30. #define KEY_F11 0xCC
  31. #define KEY_F12 0xCD
  32. // đầu tiên phải define các giá trị của phím tương ứng
  33. void setup()
  34. {
  35. pinMode(9, INPUT);
  36. }
  37. void loop()
  38. {
  39. if(digitalRead(9)==HIGH)
  40. {
  41. Keyboard.press(KEY_LEFT_ALT);//Lưu ý Keyboard.press là giữ phím
  42. Keyboard.write(KEY_F4);//Keyboard.write() là ấn phím, không phải giữ phím
  43. Keyboard.release(KEY_LEFT_ALT);//Nhả phím Alt ra
  44. //Thực hiện ấn lần lượt các phím Alt+F4...
  45. }
  46.  
  47. }

IV. Lời kết

Tương tự như vậy, các bạn có thể tạo ra được 1 keyboard hoàn chỉnh cho riêng mình...Không có j là khó khăn phải không ạ?? Chúc các bạn thành công, nếu thấy hay thỳ Rate Node cho mình nhé!!!

Bình luận
Nội dung này chưa có bình luận, hãy gửi bình luận đầu tiên của bạn.
VIẾT BÌNH LUẬN CỦA BẠN