안녕하세요 여러분, 다시 오신 것을 환영합니다. 유용한 정보 하나 알려드릴게요.
MACROPAD Pi는 라즈베리 파이 PICO를 기반으로 처음부터 자체 제작한 3버튼 매크로패드입니다. PICO를 HID 장치로 활용하여 기계식 스위치 3개와 OLED 화면을 추가하여 복사, 붙여넣기, 지우기 명령을 수행할 수 있도록 했습니다.
이 프로젝트의 목표는 Fusion360 및 복사, 붙여넣기, 삭제 명령을 자주 사용해야 하는 다른 소프트웨어를 사용할 때 편리한 초소형 매크로패드를 만드는 것이었습니다. 또한 어떤 명령이 선택되었는지 알려주는 OLED 화면도 추가했습니다.
이 Instructables는 이 작은 매크로패드의 전체 제작 과정을 다루고 있으니, 바로 시작해 보겠습니다.
이 프로젝트에 사용된 구성 요소는 다음과 같습니다.
맞춤형 PCB (NEXTPCB 제공)
라즈베리 파이 피코
암 헤더 핀 CON20
SSD1306 OLED 화면
기계식 스위치
키캡
3D 프린팅 베이스
M2 나사
1단계: 3D 디자인



우리는 PICO 3D 모델과 스위치 및 OLED 화면 3D 모델을 불러오는 것으로 프로젝트의 3D 디자인 작업을 시작했습니다.
우리는 한쪽 면에는 기계식 스위치가, 다른 쪽 면에는 디스플레이가 있는 PCB를 제작했습니다. 기판의 아랫면에는 PICO를 설치했습니다.
이 간단한 PCB 모델을 완성한 후, 회로를 상단에 고정하는 프레임 부분을 제작했습니다. 이 프레임 부분은 바닥면이 약간 경사져 있어 회로를 키보드처럼 비스듬히 기울여 놓을 수 있습니다.
프레임 부품은 최종적으로 설계되어 0.4mm 노즐과 0.2mm 레이어 높이를 사용하여 PLA 소재로 3D 프린팅되었습니다.
2단계 PCB 설계

이 프로젝트의 회로도를 위해 먼저 라즈베리 파이 피코, SSD1306 OLED 화면, 그리고 세 개의 기계식 스위치로 구성된 간단한 장치를 만들었습니다. OLED 화면의 VCC는 피코의 VBUS 핀에, GND는 접지에, SDA 핀은 GPIO4에, SCL 핀은 GPIO5에 연결했습니다. 세 개의 스위치는 각각 GPIO0, GPIO1, GPIO2에 연결했습니다.
CAD 파일의 치수를 사용하여 PCB 레이아웃과 보드 외곽선을 작성하고 부품을 적절한 위치에 배치했습니다. PICO 2는 보드 하단에 위치합니다.
3단계: NextPCB PCB 서비스
거버 데이터가 넥스트PCB 본사 로 전송되었고 , 파란색 솔더마스크와 흰색 실크스크린 인쇄 주문이 이루어졌습니다.

주문 후 일주일 안에 PCB를 받았는데, PCB 품질이 상당히 좋았습니다.
또한, 제가 여러 프로젝트에서 큰 도움을 받았던 HQDFM을 소개해 드리고 싶습니다. 화추(Huaqiu)의 사내 엔지니어들이 개발한 무료 제조 설계 소프트웨어인 HQDFM은 PCB 설계자들이 설계를 시각화하고 검증하는 방식을 혁신적으로 변화시켰습니다.
NextPCB의 액셀러레이터 캠페인을 활용하여 혁신적인 프로젝트에 필요한 RP2040 기반 조립 PCB 2개를 무료로 받으세요.
https://www.nextpcb.com/blog/rp2040-free-pcba-prototypes-nextpcb-accelerator
이 특별 혜택은 물류를 포함한 모든 비용을 지원하여 여러분의 아이디어를 더욱 쉽고 저렴하게 현실로 구현할 수 있도록 도와줍니다. SMT(표면 형상기억장치) 서비스는 비용이 많이 들 수 있지만, NextPCB는 이러한 부담을 덜어드립니다. 관련 프로젝트 정보를 공유해 주시면 나머지는 NextPCB에서 처리해 드립니다. 여러분의 기술 창작 활동을 한 단계 더 발전시킬 수 있는 이 놀라운 기회를 놓치지 마세요!
4단계: HQDFM: 무료 온라인 거버 뷰어 및 DFM 분석 도구

HQDFM: 무료 온라인 거버 뷰어 및 DFM 분석 도구
또한 NextPCB는 자체 Gerber Viewer 및 DFM 분석 소프트웨어를 보유하고 있습니다.
HQDFM 소프트웨어(DFM) 서비스를 이용하면 설계 품질이 향상됩니다. 제조업체로부터 DFM 보고서를 기다리는 것이 번거롭기 때문에 HQDFM은 사전 자체 점검을 수행하는 가장 효율적인 방법입니다.
온라인 거버 뷰어에서 보이는 화면은 이렇습니다. 간단하게 살펴보기에는 괜찮지만 완전히 선명하지는 않습니다. PCBA에 대한 자세한 DFM 분석과 같은 모든 기능을 사용하려면 데스크톱 소프트웨어를 다운로드해야 합니다. 웹 버전은 기본적인 DFM 보고서만 제공합니다.
HQDFM은 포괄적인 제조설계(DFM) 분석 기능을 갖춘 무료의 정교한 온라인 PCB 거버 파일 뷰어입니다.
15년 이상의 업계 경력을 바탕으로 첨단 제조 공정에 대한 귀중한 통찰력을 제공합니다. 합리적인 가격에 신뢰할 수 있는 PCB 서비스를 찾고 있다면 HQ NextPCB를 꼭 살펴보시기 바랍니다.
5단계: PCB 조립
- PCB 조립 과정은 PICO 풋프린트의 하단에서 두 개의 CON20 암형 헤더 핀을 연결하는 것으로 시작합니다.
- 기판을 뒤집어서 납땜 인두를 사용하여 윗면에서 커넥터 패드를 납땜합니다.
- 다음으로, PCB 상단에서 SSD1306 OLED를 배치하고 그 뒤에 기계식 스위치 3개를 배치합니다.
- 스위치와 OLED 핀은 PCB 아래쪽에서 납땜합니다.
- 마지막으로 CON20 헤더 핀 커넥터에 PICO를 설치합니다.
PCB 조립이 완료되었습니다.
6단계: 최종 조립
PCB 조립이 완료되면 최종 조립 과정을 시작합니다. 먼저 회로 기판을 3D 프린팅된 프레임 위에 놓고, 각각 두 개의 M2 나사로 두 부품을 고정합니다.
마지막으로 기계식 스위치 위에 키캡을 씌워 조립 과정을 완료했습니다.
7단계: 코드 입력
이 프로젝트에서 사용한 코드가 바로 이것이며, 아주 간단한 코드입니다.
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Keyboard.h>
// Pin Definitions
#define BUTTON_COPY 0
#define BUTTON_PASTE 1
#define BUTTON_DELETE 2
// OLED Display Config
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
// State Tracking
unsigned long lastActionTime = 0;
bool showingCommand = false;
void setup() {
pinMode(BUTTON_COPY, INPUT_PULLUP);
pinMode(BUTTON_PASTE, INPUT_PULLUP);
pinMode(BUTTON_DELETE, INPUT_PULLUP);
Wire.begin();
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
display.setTextColor(SSD1306_WHITE);
display.display();
Keyboard.begin();
showIdle(); // Display "MACROPAD" at startup
}
void loop() {
if (digitalRead(BUTTON_COPY) == LOW) {
showCommand("Copy");
Keyboard.press(KEY_LEFT_CTRL);
Keyboard.press('c');
delay(100);
Keyboard.releaseAll();
lastActionTime = millis();
showingCommand = true;
}
else if (digitalRead(BUTTON_PASTE) == LOW) {
showCommand("Paste");
Keyboard.press(KEY_LEFT_CTRL);
Keyboard.press('v');
delay(100);
Keyboard.releaseAll();
lastActionTime = millis();
showingCommand = true;
}
else if (digitalRead(BUTTON_DELETE) == LOW) {
showCommand("Delete");
Keyboard.press(KEY_DELETE);
delay(100);
Keyboard.releaseAll();
lastActionTime = millis();
showingCommand = true;
}
// Check if 5 seconds have passed since last action
if (showingCommand && millis() - lastActionTime > 5000) {
showIdle();
showingCommand = false;
}
delay(100); // Loop throttle + debounce
}
void showCommand(String command) {
display.clearDisplay();
display.setTextSize(2);
int16_t x = (SCREEN_WIDTH - command.length() * 12) / 2;
display.setCursor(max(0, x), 20);
display.println(command);
display.display();
}
void showIdle() {
display.clearDisplay();
display.setTextSize(2);
display.setCursor(20, 20);
display.println("MACROPAD");
display.display();
}
OLED와의 I²C 통신을 위한 Wire 라이브러리와 선이나 텍스트 같은 그래픽 기본 요소를 위한 Adafruit_GFX 라이브러리와 같은 필수 라이브러리를 추가했습니다. Adafruit_SSD1306은 OLED 화면을 구동하고, Keyboard 라이브러리는 USB를 통해 키보드 입력을 에뮬레이션합니다.
버튼 핀에 읽기 쉬운 이름과 GPIO 번호를 할당합니다.
다음으로, Wire를 사용하여 I²C를 통해 통신하는 128×64 픽셀 OLED를 설치했습니다.
unsigned long lastActionTime = 0;
bool showingCommand = false;
LastActionTime은 마지막 명령이 실행된 시점을 추적하며, Command를 표시하면 디스플레이를 재설정해야 할 시점을 판단하는 데 도움이 됩니다.
setup()
버튼, OLED 디스플레이 및 키보드를 초기화하고 시작 시 "MACROPAD"라고 표시된 대기 화면을 보여줍니다.
loop
루프 함수는 버튼을 읽고 동작을 트리거하며, 키 입력을 전송하고 OLED를 업데이트합니다. 기기가 5초 동안 유휴 상태이면 OLED에 "MACROPAD"가 표시됩니다. 이는 showIdle() 함수에 의해 트리거되는 기본 텍스트입니다.
8단계: 결과
이 작지만 실용적인 장치는 복사, 붙여넣기, 삭제 명령을 수행할 수 있는 매크로패드로 완성되었습니다. 복사 버튼을 누르면 OLED 화면에 작업이 확인됩니다. 붙여넣기 버튼을 누르면 간편하게 내용을 붙여넣을 수 있으며, 삭제 버튼은 즉시 삭제 기능을 제공합니다. 간단하고 효율적이며, 입력 과정을 간소화하도록 설계되었습니다.
이 매크로패드를 사용하니 제가 선호하는 디자인 소프트웨어인 Fusion 360에서 Ctrl+C 버튼을 누르지 않고도 작업할 수 있게 되었습니다. 버튼 하나로 복사하고 다른 버튼으로 붙여넣기만 하면 되니 작업이 훨씬 수월해졌습니다.
전반적으로 이 프로젝트는 완료되었으며 수정 사항이 필요하지 않습니다.
본 프로젝트에 사용된 부품을 제공해 주신 HQ NextPCB 에 특별히 감사드립니다 . 다양한 PCB 및 PCBA 관련 서비스를 저렴한 가격으로 이용하시려면 NextPCB를 방문해 보세요.
여기까지 읽어주셔서 감사합니다. 곧 새로운 프로젝트로 돌아오겠습니다.
본 튜토리얼 기사와 설명 자료는 다음 링크를 따라가서 만나세요. 원 저자에게 감사합니다.
'라즈베리파이 5' 카테고리의 다른 글
| 라즈베리파이에서 claude로 YoLo 실행하기 (0) | 2026.08.25 |
|---|---|
| 라즈베리파이 프로젝트 리스트 (0) | 2026.07.30 |
| 라즈베리 파이 5 vs 라즈베리 파이 4: 완벽 비교 및 리뷰 (0) | 2026.07.20 |
| Matter 1.6 주요 특징 2 (0) | 2026.06.23 |
| Matter 1.6 주요 특징 1 (0) | 2026.06.18 |
| 라즈베리 파이: 원격 데스크톱 연결(RDP) 설정하기 – 윈도우 PC (0) | 2026.06.11 |
| 리눅스, 한 번도 실패한 적 없는 간편한 설치 방법 (0) | 2026.06.09 |
| 라즈베리 파이에 Node-RED 설치하기 (0) | 2026.06.08 |
취업, 창업의 막막함, 외주 관리, 제품 부재!
당신의 고민은 무엇입니까? 현실과 동떨어진 교육, 실패만 반복하는 외주 계약,
아이디어는 있지만 구현할 기술이 없는 막막함.
우리는 알고 있습니다. 문제의 원인은 '명확한 학습, 실전 경험과 신뢰할 수 있는 기술력의 부재'에서 시작됩니다.
이제 고민을 멈추고, 캐어랩을 만나세요!
코딩(펌웨어), 전자부품과 디지털 회로설계, PCB 설계 제작, 고객(시장/수출) 발굴과 마케팅 전략으로 당신을 지원합니다.
제품 설계의 고수는 성공이 만든 게 아니라 실패가 만듭니다. 아이디어를 양산 가능한 제품으로!
귀사의 제품을 만드세요. 교육과 개발 실적으로 신뢰할 수 있는 파트너를 확보하세요.
캐어랩