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




반응형