RC 탱크를 위한 3D 프린팅 네르프 미니건 터렛 만들기
이 튜토리얼에서는 이전 영상에서 제작한 3D 프린팅 탱크에 장착할 더블 배럴 네르프 미니건 터렛을 만드는 과정을 보여드리겠습니다. 스포일러를 하자면, 이 미니건(개틀링 건)은 실제 작동하는 메커니즘은 아니지만, 탱크를 훨씬 멋지고 재미있게 만들어줍니다.
다음 영상을 시청하거나 아래의 텍스트 튜토리얼을 읽어보세요.
개요
이 터렛에는 약 200발의 네르프 다트를 수납할 수 있는 탄창이 있으며, 모든 다트를 약 1분 만에 발사할 수 있습니다. 즉, 분당 약 200발의 발사 속도를 자랑합니다. 다트는 초속 약 50m로 날아가며, 최대 사거리는 약 12미터입니다.
이는 최대 스펙으로 엄청나게 강력한 수준은 아니지만, RC 송신기를 통해 발사 파워와 발사 속도를 독립적으로 제어할 수 있습니다.
탱크 제어에는 저렴한 상용 RC 송신기를 사용하며, 이는 탱크의 RC 수신기로 명령을 보냅니다. 수신기는 명령을 받아 마이크로컨트롤러로 전달합니다.
이 플랫폼의 두뇌는 Atmega2560 마이크로컨트롤러 기반 보드이며, 모든 부품을 쉽게 연결하기 위해 보드 위에 장착할 수 있는 커스텀 PCB를 제작했습니다.
앞서 언급했듯, 실제 미니건이나 개틀링 건 메커니즘으로 다트를 발사하는 것이 아니라, 플라이휠을 이용한 일반적인 네르프 다트 발사 방식을 사용합니다. 두 개의 플라이휠이 반대 방향으로 매우 높은 RPM으로 회전하며, 네르프 다트의 부드러운 부분이 닿으면 다트를 강력하게 발사합니다.
다트를 발사 위치로 보내기 위해 회전하는 푸셔 부품이 다트를 밀어 넣습니다.
다트 수납을 위해 대용량 탄창을 만들었으며, 중력과 탄창 하단의 두 롤러가 다트를 푸셔 위치로 안내합니다.
이전 영상의 탱크에 대해 간단히 설명하자면, 듀얼 스피드 기어박스를 갖춘 완전 3D 프린팅 탱크로, 저단/고단 기어를 선택해 지형이나 용도에 맞게 더 높은 토크나 속도를 낼 수 있습니다.
또한 주소 지정 가능한 LED 스트립으로 무한한 조명 효과를 연출할 수 있습니다. 탱크 제작에 대한 자세한 내용은 이전 글을 참고하시고, 이번 글에서는 미니건 터렛 제작에 집중하겠습니다.
네르프 미니건 터렛 설계
먼저 설계 과정을 살펴보겠습니다. 이 프로젝트의 후원사인 Onshape를 사용해 터렛을 설계했습니다.
Onshape는 제가 프로젝트에 사용하는 전문가급 클라우드 네이티브 3D CAD 및 PDM 시스템입니다.
기계 엔지니어와 제품 디자이너라면 Onshape를 확인해보세요. 귀하와 귀사의 경우 Onshape.pro/HowtoMechatronics에서 Onshape Professional을 최대 6개월간 무료로 사용할 수 있습니다.
이 프로젝트의 주 목표는 '멋져 보이는 것'이었기에 더블 배럴 디자인을 채택했고, 최대한 많은 네르프 다트를 수납할 수 있는 대용량 탄창을 만들었습니다.
터렛의 팬(좌우 회전)과 틸트(상하 회전) 움직임에는 짧은 NEMA17 스테퍼 모터 두 개를 사용했습니다. 팬 움직임은 베이스 부분의 기어 세트로 이루어집니다.
베이스는 탱크에 고정되며 중앙에 고정 기어가 있고, 상단 터렛 부분이 스테퍼 모터가 기어 세트를 고정 중앙 기어 주위로 회전시키며 팬(회전)합니다.
반면 틸트 움직임은 후면의 스크류 드라이브 메커니즘으로 구현됩니다.
플라이휠은 12,000 RPM의 12V DC 모터로 구동합니다. 배럴당 두 개의 플라이휠이 필요하므로 총 4개의 12V DC 모터가 들어갑니다.
발사 시 다트는 중앙 배럴을 통과하며, 주변의 다른 배럴들은 멋진 외관을 위한 것입니다.
다트를 플라이휠로 밀어 넣기 위해 50 RPM DC 모터가 기어 세트를 통해 6mm 샤프트를 구동합니다. 샤프트 양쪽에 다트 푸셔 부품이 있어 샤프트가 회전할 때 다트를 플라이휠로 밀어 넣습니다.
약 200발을 수납하는 탄창이 있고, 하단에 롤러가 있어 다트를 푸셔 위치로 안내합니다.
롤러는 20 RPM DC 모터와 기어 몇 개로 구동되어 올바른 방향으로 회전합니다.
사실 이 부분이 프로젝트 전체에서 가장 까다로웠습니다. 겉보기엔 단순해 보입니다. 중력에 의해 다트가 내려오고 롤러가 안내하면 되지만, 네르프 다트가 매우 가벼운데다 앞쪽 고무 팁 때문에 앞이 무거워 이런 방식으로 안내하기가 매우 어려웠습니다.
3D 모델 및 STL 다운로드 파일
이 네르프 미니건 터렛 RC 탱크의 3D 모델을 Onshape에서 웹 브라우저로 바로 확인할 수 있습니다.
이 RC 탱크/로봇 플랫폼의 3D 모델과 3D 프린팅용 STL 파일은 Cults3D에서 다운로드할 수 있습니다.
3D 프린팅
영상에서 항상 강조하지만, 3D 프린팅 시 수평 확장(Horizontal Expansion) 기능을 사용하는 것이 필수적입니다. 최신 Creality Print 슬라이서에서는 X-Y 윤곽 보정(X-Y contour compensation)과 X-Y 구멍 보정(X-Y hole compensation)이라고 부릅니다.
이 설정을 기본값으로 두면 필라멘트 팽창으로 인해 출력물 치수가 CAD 모델과 정확히 일치하지 않습니다. 보통 구멍은 작게, 외곽은 크게 나옵니다.
이 프로젝트에서는 부품에 따라 헐거운 조립(클리어런스 핏)이 필요한 경우(예: 탄창 롤러와 샤프트)와 단단한 조립(간섭 핏)이 필요한 경우(예: 배럴 어셈블리)가 있으므로, 부품에 따라 이 설정값을 양수 또는 음수(±0.1mm 범위)로 조절해야 합니다. 다만, 테스트 프린트를 통해 최적의 값을 찾는 수밖에 없습니다.
모든 부품은 Creality K2 Plus 3D 프린터로 출력했습니다. 훌륭한 프린터를 제공해준 Creality에 감사드립니다. Creality K2 Plus는 제가 써본 최고의 3D 프린터 중 하나입니다. 작은 부품부터 350x350mm 대형 부품까지 아무거나 던져도 완벽하게 출력해냅니다.
자세한 리뷰는 Creality K2 Plus 리뷰를 확인하세요. 구매처: Creality 미국 스토어 | Creality 유럽 스토어 | Amazon
네르프 미니건 터렛 조립
자, 모든 3D 프린팅 부품이 준비되었으니 터렛 조립을 시작하겠습니다.
부품이 많고 큰 것들도 있어 출력에 꽤 시간이 걸립니다.
이 프로젝트에 필요한 DC 모터, 베어링, 볼트, 너트 등 전체 부품 목록입니다.
자재 명세서(BOM)
| 전기 부품 | 수량 | 구매 링크 |
| 12000RPM 12V DC 모터 RS360 | 4 | Amazon | AliExpress | Temu |
| 300RPM 12V DC 모터 – JGA25-370 | 1 | Amazon | AliExpress | Temu |
| 60RPM 12V DC 모터 – JGA25-370 | 1 | Amazon | AliExpress | Temu |
| 30RPM 12V DC 모터 – JGA25-370 | 1 | Amazon | AliExpress | Temu |
| NEMA17 30mm 스테퍼 모터 | 2 | Amazon | AliExpress | Temu |
| 전선 ~20AWG | ~3m | Amazon | AliExpress | Temu |
| 기계 부품 | 수량 | 구매 링크 |
| RC 쇼크 업소버 | 8 | Amazon | AliExpress | Temu |
| 볼 베어링 686 – 6x13x5mm | 2 | Amazon | AliExpress | Temu |
| 볼 베어링 624 – 4x13x5mm | 44 | Amazon | AliExpress | Temu |
| M6 나사봉 | 200mm | Amazon | AliExpress | Temu |
| M3 나사 인서트 | ~30 | Amazon | AliExpress | Temu |
| M3 그럽 스크류 | ~10 | Amazon | AliExpress | Temu |
| M3, M4 볼트 및 너트 | 아래 명시 | Amazon | AliExpress | Temu |
| 볼트 | 너트 |
M2.5×6/8 카운터싱크 – 8개
M3x8mm – 14 M3x10mm – 10 M3x16mm – 12 M3x16/18mm – 4 M3x20mm – 10 M3x25mm – 4 M3x8mm 카운터싱크 – 12 M3x10mm 카운터싱크 – 4
M4x20mm – 6 M4x25mm – 2 M4x30mm – 1
M3 그럽 스크류 – 10
|
M3 록너트 – 50 M3 너트 – 10 M4 록너트 – 40 M4 너트 – 1 M6 너트 – 4
|
공개: 위 링크는 제휴 링크입니다. 아마존 어소시에이트로서 자격 있는 구매로부터 수익을 얻습니다.
전자 부품 BOM은 회로도 섹션을 참고하세요.
터렛 조립
실제로 터렛을 조립하기 전에 쇼크 업소버에 새 스프링을 장착했습니다. 터렛이 추가되면서 탱크 상단에 상당한 무게가 실리기 때문에 필수적인 작업입니다.
순정 스프링은 너무 약해 그 무게를 감당할 수 없습니다. 순정과 같은 치수(길이 30mm, 외경 15mm)지만 와이어가 더 두꺼운 스프링을 구입했습니다. 순정은 1mm 와이어로 두 손가락으로 쉽게 눌렸지만, 새 스프링은 1.5mm로 훨씬 강했습니다. 후면에는 무게가 더 실리므로 1.8mm 스프링을 장착했지만, 1.5mm만으로도 후면까지 충분히 버틸 것 같습니다.
이제 터렛 베이스를 제자리에 장착합니다. 이 베이스는 탱크 커버 후면에 고정됩니다. 베이스 내부의 두 구멍이 탱크 커버의 구멍과 일치해 정렬에 사용했으며, 3mm 드릴로 탱크 후면 커버에 구멍을 뚫었습니다.
이 구멍들을 커버 안쪽의 리브 위에 위치시켜 터렛 베이스를 단단히 고정할 수 있게 했습니다. 또한 터렛에서 나온 전선이 통과할 구멍도 표시하고 뚫었습니다. 이 새로운 구멍들은 원본 탱크 3D 모델 파일에 반영되어 있으니, 지금 탱크를 제작 중이라면 이미 구멍이 있을 것입니다. M3 볼트와 너트 4개로 터렛 베이스를 탱크 커버에 고정합니다.
다음으로 팬 플랫폼을 베이스 위에 올립니다. 이 플랫폼은 베이스에 부착된 볼 베어링 위에 앉아 회전합니다. 13mm 외경, 6mm 내경 베어링을 사용했습니다.
원래 4mm 내경 베어링을 쓰려 했으나 재고가 없어 3D 프린팅 슬리브를 만들어 6mm 내경 베어링을 M4 볼트와 함께 사용했습니다. 베어링 4개를 장착했지만, 더 나은 접촉을 위해 모델을 6개 베어링으로 업그레이드할 예정입니다.
두 부품의 정렬을 위해 47mm 외경, 35mm 내경 베어링을 사용합니다. 이 베어링이 두 부품 사이에 끼워져 부드러운 움직임을 만듭니다. 상단 플랜지로 상단 부품을 고정하는데, 그 전에 팬용 스테퍼 모터를 먼저 장착해야 합니다. NEMA17이지만 길이 24mm짜리라 장착 공간에 맞습니다.
나중에 알았지만 30mm NEMA17을 쓰는 게 나을 뻔했습니다. 이 짧은 모터는 팬 움직임에서 힘이 좀 딸리더군요. 이때 모터 샤프트에 기어도 장착합니다. M3 볼트 슬롯에 볼트를 넣고 그럽 스크류로 기어를 샤프트에 단단히 고정합니다.
팬 어셈블리를 마무리하기 위해 베이스에 나사 인서트를 박고, 플랜지로 베어링을 고정하면 팬 플랫폼이 제자리에 고정됩니다.
이제 틸트 플랫폼을 장착합니다. 구멍이 숭숭 뚫린 스위스 치즈 같은 부품인데, 많은 부품을 부착해야 해서 그렇습니다.
틸트 조인트를 위해 플랫폼 양쪽에 베어링 두 개를 장착합니다. 같은 13mm 외경 베어링입니다. 다만 이곳은 부품 두께가 5mm뿐이라 베어링을 억지로 끼우면 레이어가 분리되거나 부러질 수 있습니다.
다이아몬드 줄로 구멍을 매끄럽게 넓혀 베어링이 쉽게 들어가게 했습니다. M4 볼트 두 개로 틸트 플랫폼을 고정해 틸트 조인트를 만듭니다.
다음으로 틸트 스테퍼 모터를 고정할 브래킷을 장착합니다. 그리고 틸트 움직임을 위한 스크류 드라이브 메커니즘을 형성할 실린더형 부품을 장착합니다. 여기에 M4 나사봉 두 개(각 66mm)가 필요합니다.
실린더 부품 상단에 M4 너트를 올리고 나사봉을 조립합니다. 5mm 스테퍼 모터 샤프트와 4mm 나사봉을 연결하기 위해 3D 프린팅 커플러를 사용하며, M3 볼트와 너트로 조입니다. 다른 66mm 나사봉으로 스테퍼 브래킷을 연결하면 틸트 메커니즘이 완성됩니다.
나사봉을 돌리면 틸트 메커니즘이 위아래로 움직입니다. 여기서는 M4 너트가 실린더 부품에 헐겁게 끼워져 메커니즘이 전혀 견고하지 않습니다. 실린더를 더 타이트하게 끼워지도록 재설계하니 훨씬 나아졌습니다. 물론 M4 너트와 나사봉 사이의 유격, 다른 조인트들의 유격 때문에 전체 틸트 메커니즘이 약간 흔들리지만, 이 정도면 충분하다고 봅니다.
이제 플라이휠 DC 모터를 장착합니다. 12,000 RPM 12V DC 모터이며, M2.5 카운터싱크 볼트로 고정합니다.
고정 후 플라이휠을 모터 샤프트에 끼웁니다. 플라이휠 구멍은 모터 샤프트와 간섭 핏이 되도록 치수 공차로 설계·출력되어 나사 없이도 단단히 고정됩니다.
플라이휠과 틸트 플랫폼 사이에 2.5mm 간격이 있어야 하므로, 2.5mm 드릴을 리미터로 사용해 플라이휠을 끼웠습니다. 그런데 모터 샤프트가 눌렸을 때 약 0.5mm 축방향 유격이 있어 2.5mm 드릴을 쓰면 3mm 간격이 생깁니다. 따라서 2mm 드릴이나 막대를 리미터로 써야 합니다.
플라이휠 장착 후 네르프 다트와의 접촉 상태를 확인합니다. 적당히 잡아줘야 하지만 너무 타이트하면 안 됩니다. 적절한 그립감을 얻으려면 3D 프린팅 시 수평 확장 설정을 여러 값으로 테스트해보세요. 모터 샤프트와의 간섭 핏도 마찬가지입니다.
다음으로 플라이휠로 가기 전 다트를 잡아둘 부품을 장착합니다. M3 볼트와 너트 두 개로 고정합니다. 이런 부품은 플랫폼과 일체형으로 출력하지 않고 모듈식으로 만들어두면 나중에 수정하기 좋습니다.
이 시점에서 플라이휠 DC 모터에 전원을 연결해 제대로 작동하는지 확인한 뒤 조립을 진행합니다.
이제 아웃풋 배럴을 장착합니다. 이 부품은 플라이휠 사이에 끼워져 다트가 각도를 틀어 나오더라도 중앙으로 안내해줍니다.
틸트 플랫폼에 고정하기 전에 47mm 외경, 35mm 내경 베어링 두 개와 거리 링을 사이에 끼웁니다. 이 베어링들이 회전하는 배럴을 지지합니다. 또한 나중에 회전 배럴 메커니즘을 고정할 리테이닝 링도 추가합니다. M3 볼트와 너트 두 개로 아웃풋 배럴을 틸트 메커니즘에 고정합니다.
다음으로 배럴 베이스를 장착합니다. 이 부품은 방금 장착한 아웃풋 샤프트 주위의 베어링을 통해 회전합니다. 고정을 위해 먼저 배럴 베이스에 나사 인서트를 박고 베어링 위에 올립니다.
후면의 리테이닝 링과 M3 카운터싱크 볼트로 고정합니다.
양쪽 배럴 베이스가 제자리에 놓이면 중간에 드라이브 기어를 넣습니다. 이 기어는 12V DC 모터로 구동되며, 제 경우 1300 RPM 모터를 썼지만 300 RPM 정도로 낮춰도 됩니다.
DC 모터는 틸트 플랫폼에 부착된 브래킷으로 고정하고, 그럽 스크류로 기어를 모터 샤프트에 고정합니다.
이제 터렛을 진짜 미니건처럼 멋지게 꾸밀 차례입니다. 배럴을 조립해 미니건 모양을 만듭니다. 중앙에 다트가 통과할 큰 배럴 하나, 그 주변에 작은 배럴 세 개를 배치해 시각적 효과를 냈습니다. 3D 프린팅을 쉽게 하기 위해 배럴을 반으로 나눴는데, 정확히 반이 아니라 길이 차이가 살짝 있으니 주의하세요. 조립에는 기능적이면서 멋도 더해주는 브래킷을 사용합니다.
배럴을 브래킷에 끼우는데, 이때 배럴과 브래킷 사이의 끼워맞춤이 중요합니다. 슬라이서의 수평 확장 설정을 조절해 간섭 핏을 만드세요. 테스트 프린트로 최적의 값을 찾아야 합니다.
첫 번째 섹션에서는 중앙 배럴이 긴 쪽, 바깥쪽 세 배럴이 짧은 쪽을 씁니다. 두 번째 브래킷은 반대 방향으로 바깥쪽 배럴 중간쯤까지 끼웁니다.
두 번째 배럴 세트와 끝단 브래킷을 추가합니다. 끝단에는 브래킷을 두 개 넣어 외관을 더 살렸습니다. 바깥쪽 배럴은 마지막 브래킷과 면이 맞게, 중앙 배럴은 조금 뒤로 빼서 배치합니다.
마지막으로 이 배럴 서브 어셈블리를 배럴 베이스에 M3 볼트 세 개로 고정합니다.
반대쪽도 같은 과정으로 조립하면 배럴 완료입니다.
모터를 돌리면 정말 멋집니다.
하지만 두 배럴의 무게 때문에 틸트 플랫폼이 크게 휘는 게 보입니다. 테스트 중 플랫폼이 부러지기도 했습니다. 설계가 정말 엉망이었습니다.
약 8mm 단일 포인트가 틸트 조인트와 관계하며 전체 무게를 지탱하던 구조였으니 당연합니다. 그래서 재설계해 강성을 높였습니다. 다행히 재료를 더 추가할 공간이 있어 해당 부위의 강도를 높일 수 있었습니다.
양옆과 중앙을 작은 연결부(6x7mm)로 잇기도 했습니다. 사용 가능한 공간이 그 정도뿐이었지만 전체 플랫폼 견고함에 큰 도움이 됩니다.
재설계된 부품은 벽 수와 인필 밀도도 높여 출력했습니다. 훨씬 견고해졌습니다. 재조립 후 테스트하니 훨씬 나았으나, 이번에는 스테퍼 모터와 나사봉 사이 커플러가 고장 났습니다. 커플러를 길게 만들어 볼트 두 개로 조이게 수정하니 해결됐습니다.
무게가 늘어나 틸트 메커니즘이 여전히 흔들리지만, 이건 틸트 메커니즘뿐 아니라 팬 조인트가 좀 헐거운 탓도 있습니다. 그래서 팬 베이스를 6개 베어링으로 업그레이드하겠다고 한 것입니다.
어쨌든 네르프 다트 푸셔 메커니즘 조립으로 넘어갑니다. 먼저 DC 모터를 장착합니다. 여기선 1300 RPM 모터를 썼는데, 나중에 이 속도가 너무 빠르다는 걸 깨닫습니다. 최대 100 RPM 모터가 필요합니다. 이 DC 모터가 기어 세트를 통해 6mm 샤프트를 구동하고, 양쪽에 푸셔 부품을 붙입니다.
샤프트로는 M6 나사봉을 썼습니다. 제대로 된 6mm 샤프트보다 정밀도는 떨어지지만(특히 베어링과 조합 시), 이 메커니즘엔 그 정도 정밀도면 충분합니다. 더 싸고 구하기 쉽기도 합니다.
샤프트 길이는 166mm이며, 틸트 플랫폼 내부의 M6 너트들과 베어링에 눌려 고정됩니다. 기어와 푸셔는 그럽 스크류로 샤프트에 고정합니다. 푸셔 메커니즘은 당분간 잘 작동합니다.
이제 네르프 다트 탄창을 장착합니다. 그 전에 DC 모터들에 전선을 연결해두는 게 좋습니다. 지금이 접근성이 더 좋으니까요. 모터당 약 30cm 전선이 필요합니다.
플라이휠 모터들은 모두 병렬로 연결해 컨트롤러로 단일 +, - 선만 가게 했습니다. 모두 같은 속도로 동시에 제어되니까요. 다만 극성을 확인해 각 플라이휠이 다트 발사 방향으로 올바르게 회전하는지 테스트해야 합니다. 스테퍼 모터도 연결하고 모든 전선을 중앙 구멍으로 통과시킵니다.
이제 다트 탄창을 장착합니다. 약 200발 수납 가능하며, 위로 늘리거나 양옆으로 확장해 용량을 쉽게 늘릴 수 있습니다. 틸트 플랫폼과는 브래킷과 M3 볼트로 연결합니다. 그 전에 탄창 롤러용 DC 모터를 장착합니다.
모터는 브래킷에 고정하고, 브래킷을 탄창에 M3 볼트로 고정합니다. 여기엔 12V 50 RPM 모터를 썼지만 20 RPM으로 더 낮춰도 됩니다. 롤러가 매우 낮은 RPM으로 돌기 때문에 롤러 샤프트는 3D 프린팅했습니다.
이 모터가 기어 세트를 통해 롤러를 구동합니다. 왼쪽 롤러는 모터 기어가 직접 구동하고, 오른쪽 롤러는 모터 기어와 롤러 사이에 기어 하나를 더 넣어 반대 방향으로 회전시킵니다.
탄창에 나사 인서트를 박고, 후면 커버를 고정하는 데 사용합니다.
이제 탄창을 제자리에 끼우고 브래킷과 M3 볼트, 너트로 틸트 플랫폼에 고정합니다.
이제 네르프 미니건 터렛이 완성됐습니다. 움직이는 부품을 감싸 보호할 커버 몇 개만 나중에 추가하면 됩니다.
DC 모터에 전원을 연결해 동작을 확인합니다. 이제 탄창에 다트를 넣고 실제로 작동하는지 테스트해볼 때입니다.
초기 테스트는 그다지 성공적이지 않았습니다. 다트가 자주 걸렸기에 여러 설계 수정을 거쳐야 했습니다.
시스템에 더 나은 로딩을 위해 반대편에 롤러 하나를 더 추가해야 했습니다. 즉, 탄창 전체를 재설계했습니다. 변경 후 모습입니다.
수많은 수정과 업데이트 끝에 네르프 다트 로더의 작동이 받아들일 만한 수준이 되었습니다.
100% 완벽하진 않습니다. 여전히 가끔 걸리지만, 이 정도면 충분하다고 봅니다.
이제 전자 장치, 즉 탱크에 장착된 커스텀 PCB와 터렛을 연결하는 단계로 넘어갑니다.
회로도
네르프 미니건 터렛과 RC 탱크의 전자 회로를 살펴보고 작동 원리를 설명하겠습니다. 두뇌는 ATmega2560 마이크로컨트롤러 기반 보드 또는 아두이노 메가 보드입니다.
자재 명세서
필요한 부품은 아래 링크에서 구매할 수 있습니다:
| 부품 | 수량 | 구매 링크 |
| 12000RPM 12V DC 모터 RS360 | 4 | Amazon | AliExpress | Temu |
| 300RPM 12V DC 모터 – JGA25-370 | 1 | Amazon | AliExpress | Temu |
| 60RPM 12V DC 모터 – JGA25-370 | 1 | Amazon | AliExpress | Temu |
| 30RPM 12V DC 모터 – JGA25-370 | 1 | Amazon | AliExpress | Temu |
| L298N DC 모터 드라이버 | 1 | Amazon | AliExpress | Temu |
| NEMA17 30mm 스테퍼 모터 | 2 | Amazon | AliExpress | Temu |
| A4988 스테퍼 드라이버 | 2 | Amazon | AliExpress | Temu |
| MOSFET TIP122 | 2 | Amazon | AliExpress | Temu |
| 다이오드 1N4007 | 2 | Amazon | AliExpress | Temu |
| 터미널 블록 커넥터 | 2 | Amazon | AliExpress | Temu |
| 전선 ~20AWG | ~3m | Amazon | AliExpress | Temu |
| 저항 – 1k x2 | | Amazon | AliExpress | Temu |
| 커패시터 – ~63uF x2 | | Amazon | AliExpress | Temu |
공개: 위 링크는 제휴 링크입니다. 아마존 어소시에이트로서 자격 있는 구매로부터 수익을 얻습니다.
RC 탱크용 BOM은 RC 탱크 글을 참고하세요.
플라이휠용 DC 모터 4개는 단일 MOSFET으로 PWM 신호로 제어합니다. 배럴 모터용으로 또 다른 MOSFET을 씁니다. 이 두 모터는 회전 방향을 바꿀 필요가 없어 PWM으로 속도만 제어하면 됩니다. 반면 롤러와 푸셔 모터에는 H-브리지가 내장된 전용 DC 모터 드라이버를 사용해 회전 방향을 바꿀 수 있게 했습니다. 다트가 걸렸을 때 롤러와 푸셔를 역회전시켜 빼내기 위함인데, 이 기능이 실제로 작동합니다.
팬과 틸트 메커니즘의 NEMA17 스테퍼 모터 2개는 A4988 스테퍼 드라이버 2개로 구동합니다.
커스텀 PCB
이전 영상에서 만든 커스텀 PCB를 아두이노 메가 보드에서 분리해 추가 부품들을 납땜했습니다.
이전 영상에서 PCB를 설계할 때 미리 MOSFET과 A4988 스테퍼 드라이버 장착 자리를 마련해두었습니다.
이 PCB의 거버 파일은 PCBWay 프로젝트 공유 커뮤니티에서 찾아 다운로드할 수 있으며, 거기서 바로 주문도 가능합니다.
네, PCBWay에서 주문했습니다. PCBWay는 훌륭한 PCB 제조 및 조립 서비스를 제공해 강력 추천합니다.
회로도대로 모든 것을 연결하고 PCB를 아두이노 메가 보드에 다시 장착합니다.
롤러와 푸셔 모터 구동용으로 더 효율적인 DRV8871 DC 모터 드라이버 대신 구형이고 비효율적인 L298N을 썼습니다. DRV8871로는 모터가 제대로 작동하지 않았고, PWM 신호로 속도 제어가 안 됐습니다. 모터 타입이 DRV8871과 맞지 않았던 것 같습니다. L298N으로는 PWM 제어가 잘 작동했습니다.
탱크 전원으로는 기존에 3S 리포 배터리를 썼는데, 이제는 4S 리포 배터리가 더 적절하다고 봅니다.
3S 배터리는 셀 전압이 공칭값(3.7V)으로 떨어지면 총 출력이 11.1V로 12V 미만이 되어 모터 출력이 떨어집니다. 4S 배터리는 공칭 총 출력이 14.8V로 12V보다 훨씬 높지만, 벅 컨버터로 출력을 12V로 고정하면 됩니다.
그러면 배터리가 완충(16.8V)됐든 방전(14V)됐든 항상 고정된 12V를 공급받을 수 있습니다. 다만 회로에 연결하기 전에 벅 컨버터 출력을 원하는 전압으로 미리 설정해야 합니다.
이제 아두이노 메가 보드를 프로그래밍해 터렛에 생명을 불어넣을 차례입니다. 아두이노 코드를 간단히 훑어보고, 자세한 내용은 웹사이트 글에서 확인하세요.
네르프 미니건 터렛 및 RC 탱크 프로그래밍
코드와 3D 파일은 Cults3D에서 다운로드할 수 있습니다.
IBusBM 라이브러리를 사용해 RC 송신기에서 들어오는 데이터를 읽습니다.
// RC 송신기에서 들어오는 데이터 읽기
IBus.loop();
ch0 = IBus.readChannel(0); // ch0 - 좌우
ch1 = IBus.readChannel(1); // ch1 - 전진/후진
ch2 = IBus.readChannel(2); // ch2 - 틸트
ch3 = IBus.readChannel(3); // ch3 - 팬
ch4 = IBus.readChannel(4); // ch4 - 발사 파워
ch5 = IBus.readChannel(5); // ch5 - 발사 속도
ch6 = IBus.readChannel(6); // ch6 - 기어 변속
ch7 = IBus.readChannel(7); // ch7 - 언스턱(역회전)
ch8 = IBus.readChannel(8); // ch8 - 조명
ch9 = IBus.readChannel(9); // ch9 - 발사
인기 있는 Flysky FS-i6 송신기의 10개 채널을 모두 사용합니다. 공식적으로는 6채널 송신기지만 4개 채널을 추가로 활성화할 수 있습니다.
들어오는 데이터를 용도에 맞게 적절한 값으로 변환합니다.
// 스테퍼 팬 제어
if (ch3 >= 1000 && ch3 < 1485) {
panVal = map(ch3, 1000, 1485, -400, 0);
} else if (ch3 > 1515 && ch3 <= 2000) {
panVal = map(ch3, 1515, 2000, 0, 400);
} else {
panVal = 0;
}
stepperPan.setSpeed(panVal);
stepperPan.run();
예를 들어 왼쪽 조이스틱 채널 3의 입력 데이터를 0~400 값으로 변환해 AccelStepper 라이브러리의 setSpeed 함수에 넣어 적절한 속도로 스테퍼 모터를 구동합니다.
DC 모터 제어를 위해서는 입력 데이터를 0~255 값으로 변환해 analogWrite() 함수로 PWM 구동합니다.
if (ch9 == 2000) {
firingPower = map(ch4, 1000, 2000, 0, 255);
analogWrite(M4_Flywheels, firingPower);
firingRate = map(ch5, 1000, 2000, 0, 255);
barrelsSpeed = firingRate;
if (barrelsSpeed > 120) { barrelsSpeed = 120; }
analogWrite(M3_Barrels, barrelsSpeed);
digitalWrite(M6_MagRoller_IN1, LOW);
digitalWrite(M6_MagRoller_IN2, HIGH);
analogWrite(M6_MagRoller_enB, firingRate);
digitalWrite(M5_Feeder_IN1, LOW);
digitalWrite(M5_Feeder_IN2, HIGH);
analogWrite(M5_Feeder_enA, firingRate);
}
코드 이해를 돕기 위해 주석과 설명을 달아뒀으니 코드 자체를 참고하세요.
네르프 미니건 터렛 테스트
코드 업로드 후 로봇 플랫폼과 RC 송신기 전원을 켜 테스트합니다. 송신기 디스플레이에 리포 배터리 전압, 수신기 및 송신기 전압이 표시됩니다. 오른쪽 조이스틱으로 탱크 이동을 제어합니다. 조명 제어는 왼쪽 3방향 로커 스위치에 할당해 두 가지 조명 모드 중 선택할 수 있게 했습니다.
왼쪽 조이스틱으로 터렛의 팬과 틸트 시스템을 제어합니다. 맨 오른쪽 조이스틱으로 네르프 다트 발사를 활성화합니다. 오른쪽 포텐쇼미터로 발사 속도, 왼쪽 포텐쇼미터로 발사 파워(플라이휠 RPM)를 제어합니다. 멋진 점은 이 모든 기능이 동시에 작동한다는 것입니다. 탱크가 주행하면서 팬/틸트하고 조명을 켠 채로 네르프 다트를 발사할 수 있습니다.
솔직히 말하면 이 프로젝트는 정말 험난한 여정이었습니다. 설계와 제작 과정에서 수많은 문제에 부딪혔고, 그런 과정을 모두 보여드려 이런 프로젝트를 만드는 데 무엇이 필요한지 보여드리고자 했습니다.
이 튜토리얼을 즐겁게 보셨고 새로운 것을 배우셨기를 바랍니다.