본문 바로가기
그림 기능과 기술

아두이노로 아이패드용 그림 컨트롤러 제작하기

by ㅁ륜ㅁ 2020. 7. 5.

서두: 왜 나는 이걸 만들었는가.

 

출처: 8BitDo zero 2 공식 판매 페이지

요 녀석은 8BitDo 에서 낸 zero 2 라는 컨트롤러이다.

 

이전작 zero부터 흔히 아이패드에서 그림을 그릴 때 쓰는 컨트롤러라는 인식이 있고, 인터넷에 검색하면 관련 트위터 글타래나 유튜브 동영상이 쉽게 뜬다.

 

헌데 직접 사용하면 느낄 수 있는 문제가 있는데, 

 

이 녀석은 단추가 심하게 부족하다.

 

출처: 레이저 공식 홈페이지의 Tartarus Pro 소개 페이지

 

그림작업을 컴퓨터로 하면 80개가 넘는 키보드 키, 혹은 기본 27개에 추가로 3배까지 더 단축키를 지정할 수 있는 한손키보드를 사용하게 되는데,

 

8BitDo zero 2는 기껏해야 12개밖에 안된다.

 

여기에 일반 키보드의 경우 Shift, Ctrl, Alt를 통한 복합 단축키가 활발히 이용되는데, 이는 8BitDo zero 2를 비롯한 시장에 나온 모든 그림용 컨트롤러에서 지원하지 않는 기능이다.

 

당장 그림그릴 때 가장 많이 쓰는 단축키가 실행취소인데, 이것부터가 Ctrl + Z이다. 그림용 컨트롤러가 이를 지원하지 않는 건 매우 큰 손실로 다가온다.

 

출처: 8BitDo Lite 공식 판매 페이지

 

그나마 나은 대안이라 '믿었던' 8BitDo Lite는 총 24개의 버튼을 제공하여 PC에서는 그럭저럭 쓸 수 있었으나, PC에는 이미 한손키보드를 쓰기 때문에 굳이 얘를 쓸 필요가 없고,

 

아이패드에서는 이게 키보드가 아닌 게임패드로만 인식되기 때문에 그림 작업에는 전혀 활용할 수 없었다.

 

그래서 직접 만들기로 했다.

 

 

구상: Shift, Alt, Ctrl 을 지원하는 그림 컨트롤러를 만들자

 

 

기본 윤곽은 생각보다 빨리 잡혔다.

 

엄지 손가락으로 전면에 있는 12개의 단추를 조작하고, 옆면에는 Alt, Shift, Ctrl 키를 배정해서 복합단축키를 이용할 수 있게 한다.

 

여기에 추가로 브러시 크기 증가, 감소와 같은 기능을 부여할 수 있는 위/아래 단추를 넣고, 꼭대기에는 디지털 화가에게 가장 중요하다고 할 수 있는 Ctrl+S 단추를 놓아 언제든지 저장할 수 있도록 한다.

 

잘 누르지 않는 아래에는 전원과 페어링 단추를 놓고, 마지막으로 충전 포트 자리까지 만들면 완성이다.

 

 

여기까지 보면 완벽하다. 헌데 그림으로 설정놀음하는 건 쉽지만 그걸 만드는 건 생각보다 어렵다. 도대체 컨트롤러는 어떻게 만드는 걸까?

 

출처: 알리익스프레스 ESP32 판매 페이지

 

위 사진의 개발 보드는 ESP32 라는 마이크로 컨트롤러이다.

 

10cm미터도 안 하는 요 녀석은 wifi에 블루투스까지 다 지원하고, 아두이노로 프로그래밍할 수 있어서 많이 애용된다.

 

https://github.com/T-vK/ESP32-BLE-Keyboard

 

T-vK/ESP32-BLE-Keyboard

Bluetooth LE Keyboard library for the ESP32 (Arduino IDE compatible) - T-vK/ESP32-BLE-Keyboard

github.com

그리고 왠 걸, 누가 이미 ESP32를 통해 블루투스 LE 키보드 환경을 구축하는 코드를 만들어놨다.

 

즉, 내가 할 일은 필요한 부품을 사다가 인터넷에 올라온 코드를 복사해서 붙여넣기만 하면 되는 간단한 일이다.

 

 

개발: 버튼 매트릭스에서 코딩까지

 

 

- 해당 항목은 쓸데없이 길어지고 재미없으므로 생략한다. 보고 싶다면 이 글을 참고하라.-

 

 

조립: Minty Fresh 컨티션

 

 

실물 조립은 레트로 게임기, Mintypi 에서 영감을 받아 알토이즈 통을 사용하기로 했다.

 

3d 프린트를 해서 손에 더 딱 맞게 제작할 수도 있었지만, 나는 3d 프린터가 없고 사실상 코딩도, 납땜도 모델링도 전부 다 처음 해보는 입장이기 때문에 일이 잘못될 가능성은 너무 많았고 3d 프린트를 하는데 돈과 시간이 든다.

 

지금 글도 완성한 뒤에 정리해서 수월해 보이는 거지, 실제로는 2달 넘게 각 단계를 건너뛰고 되돌아가면서 난잡하게 개발했다. 그래서 아쉽지만 3d 프린트는 포기하기로 했다.

 

통을 정했으니 새롭게 단추의 위치를 정한다.

 

아래에는 자리가 생각보다 없었기 때문에 전원 단추를 위로 보냈고,

 

코드를 보면 얘는 항상 페어링을 하기 때문에 굳이 페어링 버튼을 집어넣을 필요가 없어서 단추를 뺐다.

 

그래서 드릴로 구멍을 뚫고, 줄로 다듬어서 버튼을 넣기 좋게 만든다.

 

내가 사용한 단추는 조이콘 버튼인데, 버튼 크기만한 드릴비트가 없어서 드레멜 라우터 비트를 써서 겨우겨우 구멍을 넓혔다.

 

대충 요약하면, 원래 용도가 아닌 애로 쌩쇼를 했다는 소리다.

 

각종 조립과정을 생략하고, 완성된 사진이다.

 

내부에는 코딩 편에서 설명해야 했을 것들이 잔뜩 끼워져 있다.

 

대충 요약하면, 

 

충전/보호모듈 TP4056을 통해 배터리를 충전하고 안전하게 LOLIN D32 PRO 2.0.0 기판에다 전류를 공급하면, 기판이 블루투스 키보드 역할을 수행해서 17+2개(전원, Ctrl+S)의 단추를 통해 조작할 수 있게 된다.

 

17개의 단추 중 3개는 Ctrl, Shift, Alt이니, 실제로 이용할 수 있는 기능은 14 x 3 = 42개가 된다.

 

그리 많아보이지 않을 수 있지만, 그래도 8BitDo zero 2 가 제공하는 12개보다는 30개나 더 많은 기능이다.

 

 

그러면 실제 조작은 어떤가?

 

 

생각보다 알토이즈 통이 커서 Ctrl, Shift, Alt를 사용한 복합단축키를 누르는데 살짝 어색했지만, 매우 잘 작동한다.

 

앞으로 익숙해지면 계속 쓸 수 있을 것 같다.

 

 

마치며

 

2달 전에 시작한 프로젝트가 오늘 와서야 마무리되었다.

 

PC에서는 쓴 단축키가 막상 아이패드에서는 불편하거나, 단추가 애매하게 맞지 않아서 흔들거리는 등 아쉬운 점이 없지는 않지만, 난생 처음 시도한 프로그래밍과 납땜으로 혼자 쓸 만한 그림용 컨트롤러를 만든 것 치고는 매우 괜찮은 결과가 나왔다.

 

미래에 다시 제작한다면 3d 프린트를 해서 손에 더 맞게 크기를 조정하고, led를 달아서 전원을 켜고 끌 때, 건전지가 부족할 때 알릴 수 있도록 하는 편이 좋을 것 같다.

 

이제 그림을 그리는게 한 결 수월해질 것 같다.

댓글