3D프린터로 매크로키보드 DIY (9keys + 1knob) : 클리앙

안녕하세요. Fabricator입니다.


이번에 만든 디바이스는 "3D Printed 9KEY 매크로 키보드" 입니다.

아두이노 마이크로(Atmega32u4)를 활용하여 저번에 만든 볼륨 컨트롤러와 1Key 키보드를 통합하였습니다.

여기서 키의 숫자를 늘리면 하면 n키 키보드가 됩니다. 

다운로드.png



제작방법

- 3D모델파일 + 아두이노 소스코드 다운로드

- 전자 부품 :

(1) Arudino Micro x 1 

(2) Rotary Module Module x 1

(3) Cherry Switch x 9

(3) Diode(1N4148)  x 9

(4) Knob x 1 (Opt.)


 먼저 전자부품의 CAD 데이터를 참고하여 3D모델링을 진행합니다. 이번에 설계한 Macro Keyboard 는 Main_body, Top_cover, AngleStand, Keycap, Knob 총 5개의 파트로 구성되어 있습니다. 



 



3D모델파일이 준비가 되었으면 3D프린터로 출력합니다. 이번에 제작하는 디바이스는 좀더 제품과 유사하게 제작하고 싶어서 레진을 활용한 SLA 3D프린터(Form2 & Form3)를 사용하였습니다. 

 

3D프린팅 파트들도 다 준비되었으니 이제 전자회로 작업을 진행합니다. 이번에는 엔코더 Unit을 사용하지 않고 모듈을 사용하여 회로가 심플하게 나왔습니다. 키마다 다이오드를 사용하는이유는 고스트키 현상을 막기위해 필요합니다. (고스트키 : 여러개의 키가 눌려질때 어떤키가 인식이 안되거나 다른키가 눌린것으로 인식)



위 그림처럼 회로를 구성하였습니다. 아두이노 마이크로의 D2(CLK), D3(DT)은 외부인터럽트(CHANGE)를 사용하여 엔코더의 변화를 센싱하고, D4핀은 엔코더의 스위치에 연결합니다. 



 

위 회로도대로 납땜작업을 합니다. 

 

D5 ~ D9 키보드 출력핀, A1, A2 는 입력 핀(내부저항 사용)입니다.

이번 프로젝트는 앞선 프로젝트에 연장선의 성격이 강하므로 브레드보드 단계 테스트는 생략합니다. (과거의 나를 믿으며)

이번에도 볼륨컨트롤러를 사용하니까 아두이노 예제에서 제공하는 keyboard.h 원시 헤더파일을 수정합니다. 원시 헤더파일 그대로 keyboard.h 를 사용하면 볼륨컨트롤이 제대로 작동하지 않습니다.


keyboard_headerfiles.zip

mac 기준으로 볼때 파인더 -> 폴더로 이동 -> /Users/xxx/Library/  -> Arduino15 -> libraries -> Keyboard -> src 에 들어가서 위 파일을 덮어 씌웁니다.

 

키 맵핑

 

아래 이미지처럼 매크로 키를 수행하는 코드를 제작하였습니다.



완성되었습니다.

 

이전 볼륨컨트롤러와 1Key 키보드 프로젝트를 통합하여, 9Key 매크로 키보드를 만들어 보았는데요. 

현재 상태에서 무한 복붙으로 키를 늘려가면 N키 키보드 제작 가능합니다. 하지만 아두이노 마이크로(Atmega32U4) I/O핀의 한계로 어느정도 넘어가면 Shift Register, 멀티플렉서를 사용해야만 합니다.

시프트레지스터 , 멀티플렉서를 사용하게 되면 코딩의 형태는 지금짠것 크게 달리질 수 있습니다.

긴글 읽어 주셔서 감사드리며, 다음번엔 더 유익한 프로젝트로 돌아오겠습니다.


사진게시판