DIY / / 2026. 3. 4. 19:01

[DIY] 매크로 패드 제작기 1편 (기획 및 테스트)

728x90

안녕하세요 데브구일입니다 :D

여러분은 매크로 패드를 알고 계시나요?

가장 흔하게 알려져 있는 제품은 바로 스트림덱 같은 제품이 있죠!

방송하시는 분들이나, 업무에 단축키가 많이 필요한 분들이 사용하시는 편입니다!

스트림덱! 갖고싶다!

 

제가 하는건 뭔가 복잡한 스트림덱은 아니더라고,

매크로를 입력할 수 있는 간단한 패드를 제가 한번 제작을 해보고싶었어요!

 

먼저 어떤식으로 만들지 기획을 해봅니다!

 

우선 키보드의 역할을 해야하므로, HID가 가능한 디바이스를 사용해야합니다.

HID는 Human Interface Device의 줄임말 입니다!

저희가 흔히 사용하는 키보드, 마우스 등의 장치를 말해요!

 

키보드 마우스와 같은 걸 HID라 해요!

 

그래서 제가 자주 사용하는 MCU는 STM32와 ESP32 두 가지가 있는데요!

ESP32가 DIY 하는데 있어서 활용도가 높다고 생각해서 ESP32를 사용하려고 합니다!

ESP32 시리즈 중에서 S3는 기본적으로 USB 인터페이스를 지원하기도하며, HID의 역할로 사용도 가능하기 때문에

MCU는 ESP32-S3를 사용해서 제작하려고 합니다.

 

그리고 ESP32를 사용했을때 장점은...!

무선 기능! 와이파이, 블루투스 기능을 기본 탑재하고 있는 MCU라서

나중에 무선으로 변경할 수 있으면 변경도 해보려고 ESP32-S3로 선택했습니다 ㅎㅎ

유선으로 먼저 제작하고 나서, 나중에 무선으로 만들어볼 생각이예요!

ESP32 개발 보드

 

그리고 버튼을 넣어줘야하는데, 저는 그냥 스위치보다는 누르는 재미가 있는!

기계식 스위치를 사용하려고 합니다!

기계식 스위치는 저희가 흔히 알고있는 기계식 키보드에 사용되는 스위치에요!

 

이런 기계식 키보드와 같은 대중들이 많이 사용하는 스위치를 사용했을 장점도 있어요!

바로 다양한 키캡을 사용할 수 있습니다!

보통 굿즈로 나오거나, 꾸미기용 키캡들은 대부분 기계식 스위치에 맞도록 설계 되는 경우가 많습니다

키를 6~8개 정도..? 배치하는 쪽으로 생각중입니다.

체리 스위치가 하나에 300~500원 정도로 생각하시면 됩니다!

대표적인 스위치는 체리 스위치!

 

그리고 여기에 추가로 로터리 엔코더를 연결해서!

마우스 휠 처럼 사용하거나, 볼륨 제어가 가능하도록 해보려고 합니다!

로터리 엔코더는 포텐셜미터와 다르게, 회전 각도의 제한이 없어서 계속 회전시킬 수 있습니다!

로터리 엔코더도 어떤걸 사용할지 골라서 제품을 적어보도록 하겠습니다 :D

로터리 엔코더

 

자 이제 브레드 보드에서 테스트를 해보겠습니다!

펌웨어 업로드와 HID 연결을 하나의 USB를 사용할 건데요!

ESP32-S3는 기본적으로 USB 인터페이스를 지원합니다!

그렇기 아래 사진을 보시면 기본적으로 GPIO19, GPIO20 번이 USB 통신 역할을 합니다!

여기를 연결하게되면 별도의 장치없이 USB로 연결하여, 업로드를 하거나 HID 통신이 가능합니다!

해당 페이지 링크는 여기를 참고하세요!

 

USB Device Stack - ESP32-S3 - — ESP-IDF Programming Guide v5.5.3 documentation

To install the Device Stack, please call tinyusb_driver_install(). The Device Stack's configuration is specified in a tinyusb_config_t structure that is passed as an argument to tinyusb_driver_install(). Note The tinyusb_config_t structure can be zero-init

docs.espressif.com

ESP32-S3의 USB 하드웨어 연결

 

그리고 USB로 연결할때, 업로드를 할때는 부트로더로 진입해야하는데요!

이때는 BOOT 핀을 제어해 줘야합니다!

저는 키중에 하나를 BOOT핀으로 세팅해두고,

부팅 후에는 기본 스위치로 사용하려고합니다!

ESP32-S3에서는 BOOT핀이 GPIO0 핀에 할당 되어 있습니다!

 

부트로더 진입을 하기 위해 GPIO0을 제어해줘야함!

 

BOOT 핀을 LOW로 내려줘야 부트로더 모드로 진입할 수 있기 때문에

저는 아래와 같이 회로를 구성했어요!

BOOT 스위치를 누르고 있는 상태에서 리셋 버튼을 누르면 부트로더 모드로 진입할 수 있어요!

이렇게 되면 이제 업로드를 할 준비는 되었습니다!

 

BOOT 핀 회로 구성!

 

나머지 스위치도 동일하게 구성해주셔도 됩니다!

저는 동일하게 구성하려고해요!

그리고 어차피 기계식 스위치도 일반 스위치와 동일한 구조이기 때문에

테스트할때는 그냥 택트스위치를 사용할게요!

 

그리고 전원 회로는 3.3V 전원을 연결해주면 사용할 수 있는 상태가 됩니다!

USB에 연결되는 VBUS의 경우 PC에 연결하면 기본적으로 5V 전원이 흐르기 때문에

레귤레이터를 사용해서 3.3V 전원으로 낮춰주셔야하는데요!

우선은 테스트이기 때문에 별도의 브레드보드 전원 모듈을 사용해서 3.3V를 공급해줬어요!

아래 사진에 나와있는 보드의 경우 테스트할때 쓰는 보드 하나 빌려와서 하고있습니다 ㅎㅎ

개발보드를 쓰셔도 무방합니다!

 

브레드보드 테스트!

 

이렇게 해서 업로드를 부트로더로 진입하는지 체크를 해보았고!

거기에 HID 펌웨어 예제를 넣어서 간단하게 되는지 먼저 확인을 해보았습니다!

우선 HID 예제는 esp32 예제 중에 있습니다!

아래 링크로 가시면 예제 코드가 있습니다!

ESP32 예제 코드도 여러가지 많기 때문에, 시간이 되시면 한번 둘러보시는 것도 추천드립니다!

 

esp-idf/examples/peripherals/usb/device/tusb_hid at master · espressif/esp-idf

Espressif IoT Development Framework. Official development framework for Espressif SoCs. - espressif/esp-idf

github.com

 

해당 예제에서 업로드를 해보시면 연결되었을 때, 간단하게 움직이는걸 보실 수 있는데요!

저는 조금 수정해서 제가 연결한 택트 스위치에 매칭 시켜봤습니다!

누르면 Hello가 입력되도록 수정해봤어요!

영상으로 올리고 싶었는데! 따로 컷편집 해야할 것 같아서!

이건 나중에 유튜브에 첨부하도록 하겠습니다!!

일단은 사진으로!! 

 

스위치를 누르면 입력이 된다!!

 

다음 포스팅도 쭉쭉 작성하면서

펌웨어, 회로, PCB 주문까지 차차 포스팅 하도록 하겠습니다!

감사합니다! :D

 

PCBWay 감사합니다 :D

그리고 이 포스팅은 PCBWay의 지원을 받아 제작하게 되었다는 점 알려드립니다 :D

PCBWay에 감사드립니다!

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유