DIY/자작 키보드
자작 키보드 - Prototype
naudhizb
2017. 4. 16. 01:16
반응형
BOM
- Arduino Pro Micro
- 기계식 스위치
- 우드락
키보드로 동작이 가능한지, 스위치 치수를 어느정도로 해야 할 지에 대한 테스트로
프로토타입 키보드를 만들어 보았다.
인터넷에서 가끔씩 보아왔던 Ctrl, Alt, Delete만 있는 키보드를 만들어 보자.
키가 3개밖에 없는 만큼 복잡한 회로는 필요 없으며, 간단하게 vcc와 스위치 그리고 핀 입력을 연결하면 된다.
주요 함수는
Keyboard.begin()
Keyboard.press(char)
Keyboard.release(char)
이다.
기본적으로 아두이노에서는 ASCII 코드에 해당하는 값들을 전송 가능하며
추가적인 키들(e.g. 컨트롤, 알트, F1~12)등은 다음의 주소에서 값들을 확인 가능하다.
(https://www.arduino.cc/en/Reference/KeyboardModifiers)
아두이노로 만든 키보드는 BIOS에서 정상적으로 동작하지 않는데, 이 부분에 대한 보강 방법을 찾아야 할 필요가 있을 것 같다.
코드는 다음과 같다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | #include <stdio.h> #include <stdint.h> #include <Keyboard.h> void setup() { // put your setup code here, to run once: pinMode(5,OUTPUT); pinMode(2, INPUT); pinMode(3, INPUT); pinMode(4, INPUT); Serial.begin(9600); Keyboard.begin(); //while(!Serial); } uint8_t key_map[] = {KEY_LEFT_CTRL, KEY_LEFT_ALT, KEY_DELETE};//{'q', 'w', 'e'};// void loop() { digitalWrite(5, HIGH); uint8_t key_status = 0; for(int i=0; i<3; i++){ key_status += digitalRead(2+i) << i; } for(int j=0; j<3; j++){ if(key_status & (1<<j)){ Keyboard.press(key_map[j]); } else { Keyboard.release(key_map[j]); } } } | cs |
반응형