자바스크립트를 활성화 해주세요

마이크로소프트 서피스 다이얼 클론 제작 - 3 (v0.5 마무리)

 ·   ·  ☕ 3 min read  ·  ✍️ Yogo

테스트 환경에서 기본적인 기능을 구현하고 회로와 기구를 구성합니다.

제작

회로 설계

회로 설계 자체는 모두 모듈을 사용하기 때문에 크게 어려운 점이 없습니다. NRF52와 배터리 충전 역시 모듈을 사용하기 때문에 엔코더와 스위치 연결만 잘 해주어도 됩니다. NRF52 모듈은 Holyiot사의 YJ-170951을 사용하였습니다. 크기가 9.4 x 9.25mm 밖에 안될 정도로 매우 작습니다.

“ble module”

모듈 회로도나 핀 맵은 데이터시트에서 확인 가능합니다.

배터리 충전은 SZH-EK026(TP4056) 라는 모듈을 사용했습니다. 간단히 vbat 부분에 배터리 연결하여 사용할 수 있습니다. 관련 정보는 데이터시트 페이지에서 확인 가능합니다.

엔코더와 모듈 들을 다음과 같이 연결했습니다.

“circuit”

참고로 공간이 협소하다 보니 원래 계획했던 회로 설계를 모두 반영하지 못했습니다. (LED 인디케이터, 배터리 관련) 그리고 BLE 모듈이 펌웨어 개발 테스트 후 패드 몇개가 날아가버려서 부득이하게 연결가능한 핀만 사용했습니다.

아무래도 비용이나 기타 사유로 진행하지 않았던 PCB 설계/제작을 향후 버젼에는 고려 해야할 것 같습니다.

기구 배치 고려

엔클로져는 50 x 50 x 25 mm 크기로 생각보다 많이 타이트 합니다. 회로를 실제로 제작하기에 앞서서 어떻게 엔클로져에 담을 것인지 고민이 필요했습니다.
일단 하단에 충전모듈을 놓고 가배치 후 버튼이나 USB 포트가 연결될 부위에 구멍을 뚫었습니다.

회로 제작

“materials”

이전 포스트에서 언급하였 듯이 기성품으로는 서피스 다이얼과 동일한 형태로 구성이 어렵기 때문에 엔코더 노브 부분과 회로가 포함될 엔클로져 구분이 필요합니다.

먼저 만능 기판(universal board)에 충전 모듈을 납땜하여 붙이고 사이드에 BLE 모듈에서 점퍼선을 날려서 보드에 연결했습니다. 안테나 방사 특성을 고려하여 가급적 BLE 모듈의 안테나는 보드사이에 위치 하지 않고 외곽으로 빠질 수 있도록 합니다.

그 후 엔코더가 연결될 기판을 별도로 마련하여 상단 하단이 핀 헤더(pin header)로 연결 되도록 합니다. 두 보드가 최대한 가깝게 붙어야 하므로 핀 헤더 소켓은 사용하지 못했습니다.

회로가 완료되었으면 펌웨어를 올리고 테스트를 해봅니다. 동작에 큰 이상이 없으면 기구와 조립을 합니다.

기구 조립

조립은 무난하게 진행되는 듯 하였으나 역시 공차 문제로 딱 들어맞지 못했습니다. 뚜껑이 잘 안닫히는 문제가 발생했는데 추후 조치하기로 하고 일단 조립을 마무리 합니다.

회전 시 디바이스가 움직이지 않도록 실리콘 패드를 하단에 붙여주었습니다.

테스트 및 시연

간단한 테스트 동작 화면 입니다. 길게 버튼을 누르면 현재 활성화된 애플리케이션이나 환경에 맞게 원형 모양의 메뉴가 뜨고 메뉴를 선택하여 휠로 조절 할 수 있습니다.

기본적인 동작은 큰 문제없이 가능하나 휠 동작 반응성이 좀 떨어지는 면이 있어서 개선이 필요합니다.

“demo”

동영상: https://youtu.be/cQLYvCz1rvM

마무리

부족하게나마 서피스 다이얼을 흉내내는 디바이스를 제작 해보았습니다. 아직 리눅스에서 테스트 등도 이루어지지 않았고 회로상이나 펌웨어 상으로 보완하거나 개선해야 할 사항이 많이 남아 있습니다. ‘Wanna be’를 표방하고 있기 때문에 일회성으로 끝내지 않고 지속적으로 개선된 버전으로 탈바꿈 하여 비슷하게 따라가는 과정을 거칠까 합니다.

소스코드는 아직 불안정한 부분도 있고 추가로 테스트가 많이 남아서 공개는 차후에 이루어질 것 같습니다. 아니면 차기 버젼에서 할 수 도 있구요 때가 되면 별도로 포스팅하고 Github에 공개 하겠습니다.

그럼 이번 프로젝트는 ver 0.5 정도라고 하고 차기 버전을 기약하며 마무리 하겠습니다.