메뉴 전체보기

회원메뉴

개발 장치용 초소형 키보드 설계 > 게시판

본문 바로가기

쇼핑몰 검색

NO. 3405
제목 : 개발 장치용 초소형 키보드 설계
2026-09-24 10:49

소개: 개발 장치용 초소형 키보드 설계


소개: 개발 장치용 초소형 키보드 설계


이 instructable에서는 개발 장치용 초소형 키보드를 만드는 방법을 보여 줍니다.

회로 설계와 PCB 레이아웃부터 3D 인클로저 설계 및 소프트웨어 개발까지 모든 단계를 포함합니다.




STEP 1. 준비물


Waveshare RP2040-tiny 개발 보드

선택 사항: 사용한 MINTIA 민트 상자




STEP 2. 직접 만드는 이유


시중의 대부분의 초소형 키보드는 USB 또는 Bluetooth로 연결되는데, 개발 장치에 사용하기에는 여러 가지 불편한 점이 있습니다.

USB 연결:

  1. 모든 개발 장치에 USB 호스트 인터페이스가 있는 것은 아닙니다.
  2. 작은 휴대용 개발 장치와 키보드를 USB 케이블로 연결해 두 부분을 이어 놓는 것은 번거롭습니다.
  3. 초소형 일체형 인클로저 내부에 USB 연결부를 숨기기 어렵습니다.
  4. 키보드가 USB 호스트 포트를 차지합니다.

Bluetooth 연결:

  1. 모든 개발 장치가 Bluetooth를 지원하는 것은 아닙니다.
  2. Bluetooth 연결은 휴대용 장치의 배터리를 계속 소모합니다.
  3. Bluetooth 키보드도 간헐적으로 충전해야 합니다.

반면 대부분의 개발 장치는 I2C 인터페이스를 지원합니다. 따라서 I2C 인터페이스를 사용하는 키보드가 개발 장치에 더 적합합니다. 그러나 시중에는 I2C 키보드가 흔하지 않습니다. 그러니 직접 만들어 봅시다!




STEP 3. I2C 인터페이스란 무엇인가?


I2C (Inter-Integrated Circuit; 발음은 "아이 스퀘어드 씨" 또는 "아이 투 씨"), 또는 I2CIIC라고도 하며, 동기식, 다중 마스터/다중 슬레이브방식의 단일 종단직렬 통신 버스입니다. 1980년에 Philips Semiconductors 가 개발했으며, 현재는 NXP Semiconductors 입니다..[1] 저속 주변 장치를 연결하는 데 집적 회로 (IC)을 프로세서 및 마이크로컨트롤러 에 연결하는 근거리 보드 내 통신에 널리 사용됩니다.
I2C 버스는 속도보다 단순성과 낮은 제조 비용이 더 중요한 다양한 전자 기기 애플리케이션에서 찾아볼 수 있습니다.

많은 개발 모듈이 I2C 인터페이스로 연결되며, 이는 마이크로컨트롤러 세계에서 USB 인터페이스와 같은 역할을 합니다.

참고:

https://en.wikipedia.org/wiki/I2C




STEP 4. 소프트웨어 준비


  1. 회로 설계와 PCB 레이아웃에는 JLC EDA 설계 소프트웨어를 사용합니다. 다음 주소에서 JLC EDA 설계 소프트웨어를 다운로드하여 설치하세요: lceda.cn.
  2. 3D 인클로저 설계에는 Autodesk Fusion을 사용하며, 다음 주소에서 다운로드하세요: autodesk.com.
  3. 선택 사항으로, 투명 3D 인클로저 인쇄 주문을 위해 JLCONE 을 다운로드하세요.
  4. 소프트웨어 개발에는 Arduino IDE를 사용합니다. 소프트웨어와 ESP32 지원을 설치하려면 Waveshare WiKi 를 참조하세요.




STEP 5. 회로 설계


회로 설계


일반적인 미니 키보드에는 기능 키 F1~F12를 제외하면 약 65개의 키가 있습니다. 키는 5개 행으로 배치되므로 각 행에는 65 / 5 = 13개의 키를 배치할 수 있습니다.

대부분의 키보드는 모든 버튼을 5개 행과 13개 열로 연결하는 매트릭스 회로 설계를 사용하므로 5 + 13개의 GPIO가 필요합니다. I2C 인터페이스에 2개의 GPIO를 사용하므로 총 20개의 GPIO가 필요합니다. Waveshare RP2040-tiny 개발 보드 는 높이가 낮은 개발 보드이며 GPIO가 20개 있어 이 프로젝트에 딱 맞습니다.

이전 경험에 따르면 일반적인 택트 스위치는 시중의 미니 키보드와 비교해 누르기가 너무 뻑뻑합니다. 이는 "작동력(Operating Force)" 특성과 관련이 있습니다. 일반적인 택트 스위치의 작동력은 160gf 또는 250gf입니다. 테스트해 본 결과, 100gf(약 1N)가 작은 키보드에 훨씬 더 적합하다고 생각합니다.

회로 설계의 자세한 내용은 위 동영상을 참조하세요.




STEP 6. PCB 레이아웃


PCB 레이아웃


회로 설계가 끝나면 다음 단계는 회로도를 PCB 레이아웃으로 내보내는 것입니다. MINTIA 민트 케이스에 들어가는 작은 키보드를 만들고 싶었으므로 PCB 크기는 74.5 x 44.3 mm로 정했습니다.

일부 특수 키는 쉽게 식별할 수 있도록 90도 회전시켰습니다. 모든 버튼은 PCB 앞면에 배치하고 RP2040-tiny와 I2C 핀 헤더는 PCB 뒷면에 배치했습니다.

PCB 레이아웃의 자세한 내용은 위 동영상을 참조하세요.

회로도와 PCB 레이아웃의 최종 버전은 OSHWHub에서 공유했습니다:

https://oshwhub.com/moononournation/project_bvgfbgsk




STEP 7. 납땜 작업


납땜 작업


PCB 레이아웃을 완성한 후에는 JLC EDA 설계 소프트웨어에서 PCB를 온라인으로 바로 주문할 수 있습니다. 동시에 SMT 서비스도 주문할 수 있습니다. 작은 택트 스위치 65개를 직접 납땜하는 것은 쉽지 않으므로 앞면만 SMT 서비스를 주문했습니다. PCB 뒷면에는 RP2040-tiny와 핀 헤더, 두 부품만 있으므로 직접 납땜할 수 있습니다.

납땜 작업의 자세한 내용은 위 동영상을 참조하세요.




STEP 8. 3D 인클로저 설계


3D 인클로저 설계


3D 인클로저는 먼저 MINTIA 민트 케이스 뒷면의 외형을 따르도록 설계했습니다. 그리고 I2C 핀 헤더 포트용 구멍을 뚫었습니다. 그런 다음 PCB의 버튼 위치에 맞춰 구멍을 뚫었습니다.

JLC EDA 설계 소프트웨어에서는 PCB 레이아웃의 3D 모델도 내보낼 수 있으므로, 이 모델을 3D 인클로저 설계로 가져와 서로 잘 맞는지 확인할 수 있습니다.

3D 인클로저 설계의 자세한 내용은 위 동영상을 참조하세요.

3D 인클로저 STL 파일의 최종 버전은 Thingiverse에서 공유했습니다:

https://www.thingiverse.com/thing:7411628




STEP 9. 3D 프린팅 및 조립


3D 프린팅 및 조립


STL 파일은 다음 주소에서 다운로드하세요: https://www.thingiverse.com/thing:7411628

직접 출력하거나 Thingiverse에서 3D 출력물을 주문할 수 있으며, JLC에서 투명 버전을 주문할 수도 있습니다.

3D 프린팅 및 조립의 자세한 내용은 위 동영상을 참조하세요.




STEP 10. 선택 사항: 키 라벨 설계


선택 사항: 키 라벨 설계


선택 사항: 키 라벨 설계


선택 사항: 키 라벨 설계


선택 사항: 키 라벨 설계


선택 사항: 키 라벨 설계


선택 사항: 키 라벨 설계


투명 버전 또는 프레임만 있는 버전의 3D 인클로저를 사용하는 경우 PCB에 인쇄된 키 라벨을 볼 수 있습니다. 하지만 불투명한 3D 인클로저를 출력했다면 키 라벨을 직접 표시해야 합니다.

접착식 A4 라벨지에 인쇄한 후 잘라서 인클로저에 붙일 수 있습니다. 또는 마커펜으로 버튼에 키 라벨을 직접 쓸 수도 있고, 맞춤형 디자인의 UV DTF 전사 스티커를 주문할 수도 있습니다...




STEP 11. USB 키보드 소프트웨어


USB 키보드 소프트웨어


소스 코드는 GitHub에서 다운로드하세요:

https://github.com/moononournation/ProjectMINTIA

Arduino IDE에서 RP2040Keyboard/RP2040KeyboardUSB/RP2040KeyboardUSB.ino를 연 다음, 컴파일하여 RP2040-tiny에 업로드하세요.

업로드가 성공적으로 완료되면 새 USB 키보드 장치가 컴퓨터에 연결됩니다. 온라인 키보드 테스터를 사용해 작동 여부를 확인할 수 있습니다. 예를 들면 https://en.key-test.ru

자세한 내용은 위 동영상을 시청하세요.




STEP 12. Fn 키 매핑


USB Keyboard 프로그램은 더 많은 키 입력을 위해 몇 가지 Fn 매핑을 정의했습니다. 예를 들어 "fn" 키를 누른 상태에서 "1" 키를 누르면 "F1" 키로 인식됩니다.

uint8_t key_fn_map[FN_KEY_PAIRS * 2] = {
/* from and to key pair */
'1', KEY_F1,
'2', KEY_F2,
'3', KEY_F3,
'4', KEY_F4,
'5', KEY_F5,
'6', KEY_F6,
'7', KEY_F7,
'8', KEY_F8,
'9', KEY_F9,
'0', KEY_F10,
'-', KEY_F11,
KEY_BACKSPACE, KEY_F12,
KEY_LEFT_SHIFT, KEY_RIGHT_SHIFT,
KEY_HOME, KEY_PAGE_UP,
KEY_END, KEY_PAGE_DOWN,
KEY_LEFT_CTRL, KEY_RIGHT_CTRL,
KEY_LEFT_ALT, KEY_RIGHT_ALT,
KEY_LEFT_GUI, KEY_RIGHT_GUI,
KEY_DELETE, KEY_INSERT,
'=', KEY_MENU,
};

원하는 대로 이 매핑을 변경할 수 있습니다. 예를 들어 fn+위쪽 키를 Page Up 키로 지정할 수 있습니다.




STEP 13. I2C Keyboard 소프트웨어


I2C Keyboard 소프트웨어


I2C Keyboard 소프트웨어는 아직 개발 중입니다. 현재도 통신 데이터 형식을 정하기 위해 고심하고 있습니다.

처음에 언급했듯이 I2C 키보드는 시장에서 흔하지 않으므로 표준 데이터 형식이 없습니다. 조사해 본 결과, 선택할 수 있는 방법은 다음 세 가지입니다.

  1. TI TCA8418 표준: 8x10 키 매트릭스를 처리할 수 있는 널리 사용되는 I2C 키보드 칩입니다. 조회 한 번마다 최대 10개의 키 누름 및 해제 이벤트를 처리할 수 있습니다. 하지만 클라이언트 측에서 데이터를 읽은 후 매트릭스 키 코드를 실제 키로 해석해야 합니다.
  2. USB keyboard HID 표준: 모든 키 코드가 잘 정의되어 있어 클라이언트 측에서 쉽게 처리할 수 있습니다. 조회 한 번마다 눌린 모든 수정 키와 최대 6개의 키 입력을 처리할 수 있습니다. 전 세계 사용자가 매일 USB 키보드를 사용하고 있는, 검증된 솔루션입니다.
  3. 눌린 모든 키를 간단히 전송합니다. RP2040은 눌린 모든 키를 버퍼링할 수 있으므로, 눌린 키 데이터를 모두 간단히 전송할 수 있습니다.

현재 RP2040KeyboardI2C.ino 샘플 프로그램은 눌린 모든 키를 단순히 전송하지만, 아직 fn 키 매핑은 처리하지 않습니다. 장기적으로는 HID 표준을 충족하는 다른 버전이 있어야 하며, 그러면 빈티지 머신 에뮬레이터나 VNC 씬 클라이언트 같은 사용 사례에서 더 이식성이 높아질 것입니다.




STEP 14. 즐겨 보세요!


이제 키보드 입력이 필요한 프로젝트를 개발할 수 있습니다. 예를 들어 빈티지 머신 에뮬레이터, VNC 씬 클라이언트, 대용량 저장 장치에서 재생할 노래 검색, 또는 간단한 WiFi 비밀번호 입력 등에 활용할 수 있습니다 ;>

참고:

키보드가 항상 연결되어 있지 않을 수 있으므로, 필요할 때 I2C 케이블로 연결하세요.




STEP 15. 간단한 키 테스트 프로그램


간단한 키 테스트 프로그램


초기 키 매트릭스 개발 단계에서는 간단한 테스트 프로그램이 빠른 PoC에 도움이 됩니다. RP2040KeyboardTest.ino는 모든 행 및 열 핀을 정의하기만 하면 키의 눌림 및 해제 상태를 확인할 수 있는 간단한 프로그램입니다.


원문: https://www.instructables.com/Design-Tiny-Keyboard-for-Dev-Device/

좋아요 0
게시판

회사명 공방유니언 주소 각 공방 주소 참조
사업자 등록번호 0000 대표 공방유니언 전화 019-60105846 팩스 0000 이메일 gongbangunion@gmail.com
통신판매업신고번호 0000 개인정보관리책임자 공방유니언
Copyright © 2017 공방유니언. All Rights Reserved.