취미/자동차 및 전자기기

자동 오르골 연주기 제작

lazykuna 2026. 11. 8. 12:50

주의: 첫 메카트로닉 DIY라 품질이 조악합니다.


오르골 노래를 참 좋아해서 예전부터 오르골로 노래를 재생하는 기기들을 여럿 가지고 있었다 . 그런데 우연히 인터넷에서 누군가 오르골을 자동으로 돌려주는 회로를 만든 것을 보았다 (https://youtu.be/1Xx9plZyf6I?si=2OSHN0fm5KJwr1HF).

나도 동일하게 작업을 해볼 수 있지 않을까 해서, 관련 작업을 시작하게 되었다. 하지만 임베디드 및 모델링 작업이 처음이었고, 그래서 어디부터 어떻게 시작할 지 많이 해맸기도 하다. 대략 재료를 구비하고 1년 넘게 방치하고서야 마무리했으니 …

누군가에게 도움이 될지는 모르겠으나, 내 첫 메카트로닉 작업에 들어간 일련의 고민과 결정을 이렇게 글로서 정리해 둔다.

작업한 리포 주소는 아래와 같다: https://github.com/kuna/autoorgel

1. 요구사항 파악

  • 꼭 오르골과 일심동체가 될 필요는 없고, (초소형x)
  • 이번 프로젝트를 통해 왠지 스텝모터를 한번 써 보고 싶었고 (충분한 토크 제공도 됨),
  • 속도 조절을 위한 노브가 있으면 좋겠고,
  • 상태 표시 위해 액정도 있으면 좋겠고,
  • 외부 전원 의존 없이 포터블한 모양새면 좋겠다

다만, 다 만들고 나니, 일체형에 더 작게 소형화를 했으면 더 좋았을 것 같다. 이때는 첫 작업이라 내공이 부족했음.

2. 필요 부품 및 스펙 파악

  • 컨트롤러: 아두이노 나노
    • 아두이노 나노 붙여놓을 빵판이랑 PCB 소켓 Male/Female
    • 부품들 연결할 케이블 및 단자 (주로 XH2.54 규격) 및 테스트 위한 점퍼케이블
      • 다만, 이 정도의 간단한 회로에, PCB 뽑을 정도의 능력이면 빵판 굳이 쓸 필요는 없을 듯.
  • I2C LCD
  • Rotary Encoder
  • TMC2208
  • NEMA17 호환 스텝모터 (42BYGH23)
  • 18650 리튬이온 전지 3.7v x 2 (회로 전압 7.4v)
    • 리튬이온 전지 2개 직렬 연결 케이스
  • 전원 ON/OFF 스위치
  • 3D 프린트 (모델링 프린트용)
  • (아마 있겠지만) 회로 작업할 인두기, 납, 에나멜선, 테스터기 등등…

그리고 해당 부품들의 스펙이 현재 제공되는 회로 기준으로 정상작동할 수 있는지 확인하기 위해 데이터시트를 확인해본다.

  • 스텝모터는 약 5V 이상의 전압 인가시 작동 가능 → 7V 그대로 인가
  • TMC2208 로직 전압(VIO): 5V (전압 강하 필요) → LM2596 으로 전압 강하
  • 아두이노: 5V ~ 12V → 7V 그대로 인가

그리고 케이스도 만들어 조립할 거면 아래 부품들도 미리 주문해놓으면 좋다.

  • T3 나사 ⇒ 전자부품들 고정/조립할 때 가장 많이 쓰는 규격

 

3. 회로도 구성

부품 오기 전에 회로도 미리 짜놓으면 부품 왔을 때 테스트 런이 가능해진다. KiCad로 열심히 짠다.

KiCad가 어렵다면 일단 Wireviz로 개괄적인 회로도를 yml로 짜서 export 하는 것도 하나의 선택지다.

대충 요런 느낌으로 나온다. 아주 잘 모르겠으면 AI한테 짜달라고 해도 그럭저럭 잘 짜준다.

메인 회로
전원부

KiCad로 짜는 것은 적당한 심볼과 풋프린트 찾는게 절반인데, 그걸 하면서 또 어떤 부품을 써야 하는지 배울 수도 있으니, 한번 쯤 고생하며 거쳐가는 것 또한 좋다. 마찬가지로 AI한테 어느정도의 지시를 주면 잘 짜줌.

익숙해지면 KiCad가 더 짜기 쉽다. 모델 기본 내장되어있기도 하고, 데이터시트 일일이 찾을 필요 없이 핀 전부 맞춰져 있는 것도 그렇고.

물론 처음 작업할때나 부품 선정할때는 데이터시트 찾아가며 정확히 내 요구사항에 맞는가 열심히 찾아봐야 할 것이다.

NOTE: 이 회로 설계에서 스텝모터의 역기전력을 차단하는 것이 중요하다. 커패시터를 스텝모터 사이에 병렬로 끼워놓으면 되는데, 자세한 내용은 앞으로도 스텝모터를 쓸 생각이라면 별개로라도 한 번 알아두는 것이 좋음. (AI가 잘 설명해준다)

 

4. 펌웨어 제작

아무튼 대략 회로를 어떻게 연결할지 구상했다면, 어떤 핀에 어떤 기능이 매핑될 것인지 큰 틀에서 스케치가 완료될 것이다. 그러면 주어진 GPIO 핀들이 원하는 대로 기능할 수 있도록 코드를 잔뜩 짜서 펌웨어에 넣어주도록 하자.

펌웨어는 AI의 도움을 받아 GPIO와 기능을 이야기하며 짜달라고 하면 놀라울 정도로 잘 짜주지만, 이 정도 간단한 작업은 공부해볼 겸 직접 짜는 것도 나쁘지 않겠다. 보면 알겠지만 펌웨어의 메인 루프는 놀라울 정도로 단순한 무한 루프고 통신은 Serial 이다. 원시적 그 자체지만 최신의 프로그램들도 전부 동일하게 작동한다는 사실 …

 

5. 테스트 기동 및 회로 작업

테스트 기동은 간단하다. 빵판에 GPIO와 각종 부품들을 꽃아서 돌려보면 된다. 여기에서 점퍼케이블이 꽤 유용하다.

이상없이 작동한다면 이제 회로를 구워 본다. 회로를 만드는 건 여러가지 방법이 있겠으나, 개인적으로는 아래 4가지 방식 중 하나를 고르라 할 수 있겠다.

  1. KiCad 같은 걸로 만든 회로를 PCB 제작 외주를 맡김 (FM)
  • 단점: 돈이 (비교적) 들고 배송시간도 걸림
  1. KiCad + 3D 프린트로 회로 인쇄 및 구리테이프 신공 — 인터넷에 찾으면 Reddit 형님들이 유사한 작업 굉장히 많이 함.
  2. PCB + 구리테이프 신공 — PCB 판에 구리테이프를 붙인 후, 거기에 회로를 그리고 긁어냄.
  3. PCB + 구리선 납땜 — 납땜을 잘하는 사람 한정. 내구성 약함.

아래로 갈수록 퀄러티가 조악해지고, 이따금씩은 사용이 불가능한 수준이 되기도 한다. 개인적으로는 1~3번 중 하나를 고르라고 권장하고 싶다.

구리테이프는 구매하기 쉽다. 심지어 다이소에서도 판다.

이런식으로 PCB에 붙인 후, GPIO와 파츠들이 연결될 홀을 잘 그려준다.

그리고 열심히 칼로 자르고 긁어내주고, 마지막으로 부품들을 올려주고 땜질하면 완성.

사람이 손으로 만든거다 보니 정확도의 문제가 있을 수 있는데, 이 중 치명적인 쇼트가 일어나지 않도록 음극/양극을 멀티미터로 반드시 점검하자.

회로를 다 만들었으면 이젠 커넥터를 만들어야 한다. 준비한 구리선과 XH2.54 커넥터, 그리고 압착기를 이용하여 열심히 커넥터를 만들자. 이 작업도 생각보다 시간이 오래 걸린다.

모든 커넥터를 연결 후, 부품 가동하고, 테스트 후 이상 없으면 회로 작업은 끝이다.

물론 짬이 좀 찼을 시에는 빵판 과정 스킵 후 바로 회로 제작 후 거기 부품을 꽃아주고 테스트 해도 되겠다.

5. 케이스 모델링

이제 본격적으로 만든 회로를 담을 케이스를 제작해야 한다. 이를 위해서 3D 모델링을 만들어야 하고, 다시 말해 캐드를 배워야 한다는 말이다.

그런데 캐드를 하기 위해서 가장 중요한 건 다름아닌 평면도를 그리는 능력이다. 그리고 그 평면도를 잘 그리려면 부품들 수치들을 잘 재야 한다. 그걸 어떻게 하냐면 …

5.1. 배치할 부품들 모델링 준비

부품들 수치를 재기 위해서 줄자나 버니어캘리퍼스를 많이 쓰게 된다. 마찬가지로 하나 구비하면 아주 요긴하게 쓴다.

그런데 그거 아니어도 인터넷에 해당 모델들을 제공하는 사이트가 있다.

https://grabcad.com/ 같은 사이트에서 모델링을 무료로 제공하고 있으니, 여기에서 필요한 부품을 검색하여 모델링을 준비하면 된다.

여기에서 알아둘 것들:

  • 모델링이 무적은 아니다. 미묘하게 스펙이 다른 경우도 있으니(사실 많다!!) 전적으로 참고용으로 쓴다고 생각하자
  • 부품의 모델링이 없어도 그렇게 문제는 아니다. 그냥 큐브로 땜빵해놓고 써도 됨.

5.2. 각 변(평면)마다 스케치

스케치를 여러 단계로 만드는 게 이후의 작업에서 편한데, 나 같은 경우는 아래의 레이어들로 작업했다.

  • 뼈대 스케치: 바닥과 옆의 벽면을 구성함. 보통 바닥과 천장 스케치 하나씩 따로 작업한다.
  • 구멍 스케치: 보통 바닥과 천장 스케치, 그리고 옆면/앞면 스케치 이렇게 작업한다. 뼈대 스케치에서 만든 모델에서 빼기(subtract) 연산하면 됨.

핵심은 같은 면(top/right/front)라고 해서 하나의 스케치에 다 몰아서 작업하지 않는다는 것. 그렇게 하면 이후에 구멍을 새로 넣는 작업을 한다던가 할 때, 기존 모델이 깨져서 손이 더 많이 간다.

여기에서 팁:

  • 스케치 전에, 스케치의 중심이 될 부분을 정의해놓고 가면 작업 난이도가 훨씬 쉬워진다. (MC; Mate Connector 이라던가)
  • 도형을 이동하려면, 두 점을 고정해야 하거나, 두 변을 고정해야 한다. 스케치의 중심이 될 부분과 도형의 특정 위치를 합치시키고 싶을 때, 두 점을 선택 후 “Shift+O” 를 누르면 된다. 두 변을 고정해야 할 때에는 (특정 거리를 설정해야 할 경우), “D” 키를 누른 후 두 객체를 선택하여 치수를 입력하면 된다.
  • 자주 쓰이는 값들은 변수로 선언해두자. 두께나, 가로 세로 길이나, 등등.

5.3. 본격적으로 도형 출력

스케치를 잘 짜놨다면, 스케치로부터 평면을 그대로 뽑아내면 된다. Extrude의 연속이라, 의외로 시간이 많이 안 걸림.

여기에서 팁:

  • 평행한 평면(Plane)을 여러개 만들 필요는 없다. 평면은 하나로 쓰고, 스케치를 거기에 여러개 비빈 다음, 도형을 사출할 때 offset를 적당히 주는 식으로 여러개의 판(Cuboid)을 만들 수 있음.
  • 도형을 만들 때 파츠를 확인할 것. 의도한 대로 boolean 연산이 이루어져서 하나의 파츠로 만들어 지고 있는지 중간중간 확인해야 삽질을 덜 한다.

5.4. 실제 도형과 대조하며 오차 줄이기

이제 여기에서 아까 위 (5.1) 에서 준비했던 모델링 파일들을 가져오면 된다.

그런데 배치가 조금 어려운데, 이를 위해서 MC(메이트 커넥터)를 두개 선언해야 한다. 하나는 가져온 모델링의 중심에, 다른 하나는 방금 뽑아낸 모델링이나 스케치에서 위치시킬 장소에. 그리고 “변형” 툴을 사용하여 두 MC가 합치하도록 모델링을 이동시켜 주면 된다.

여기에서 팁:

  • 가져온 모델링의 회전축이 맞지 않는 경우가 자주 있는데, “변형” 툴이 아니라 “MC” 에서 회전축과 회전 각도 설정을 해주면 면을 맞출 수 있다.

이렇게 도형을 완성했으면, 우하단 “파트” 섹션에서 내가 만든 조형을 그대로 STL로 뽑아내면 된다.

6. 3D 프린터 출력

이제 신나게 만든 모델을 프린트하자.

프린트하고 나온 모델들이 여러 부품들과 잘 맞는지 조립해본다. 장담하는데 한두번은 수치가 잘 맞지 않을 것이다. 그러면, 모델을 수정하고, 다시 인쇄하여 맞추는 작업을 한다. 그걸 여러번 반복하는 단순한 작업이 되겠다.

여기서 팁: 크기가 애매한 부품들은 인쇄 전에 캐드의 확대 배율을 적당히 맞춰서, 모니터와 부품 크기를 1:1로 맞추고 직접 대 보면서 미리 어느정도 검증을 해볼 수 있음.

7. 조립 및 기동

모든게 성공적으로 인쇄되고 잘 맞아 떨어졌다면, 이렇게 부품들이 안을 잘 채우게 된다.

최종 완성본. 완성하고 나니 단순 오르골을 돌려주는 장치 주제에 생각보다 너무 크고 둔해 보인다… 🥲

아무래도 다음에 개선을 하게 된다면, 일체형 + 소형 컨셉으로 만들고 싶다. 모터 포함 부품들 다시 선정 및 PCB 자그마하게 설계 하고, 일체형 케이스로 모델링 할 듯.