산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

이 튜토리얼에서는 화성 퍼시비어런스 로버 복제품을 만드는 방법을 보여드리겠습니다. 현재 화성을 탐사 중인 실제 로버에서 영감을 받아, 이 기술을 사랑하는 모든 사람, 학생, 메이커, 메카트로닉스 또는 로봇 공학 애호가 등이 이 영상의 지침을 쉽게 따라 자신만의 화성 로버를 만들 수 있도록 설계했습니다.

아래 영상을 시청하거나 작성된 튜토리얼을 읽어보세요.

개요

이 로버의 주요 특징들을 살펴보겠습니다. 로커-보기 서스펜션을 사용해 고르지 않은 지형에서도 부드럽게 주행하고, 바퀴 지름의 최대 2배 크기인 바위 같은 장애물을 넘을 수 있으며, 항상 여섯 바퀴가 지면과 접촉하게 유지합니다. 각 바퀴는 독립적인 DC 모터로 전진 또는 후진을 구동합니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

네 개의 코너 바퀴에는 개별 조향 서보 모터가 있습니다. 로버를 효율적으로 조향하고 커브 주행 시 타이어 미끄러짐을 방지하기 위해 아커만 조향 기하학을 구현합니다. 이 기하학으로 회전 반경에 따라 각 바퀴의 속도와 각도를 계산할 수 있습니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

즉, 회전 시 안쪽 조향 바퀴는 바깥쪽 바퀴보다 더 큰 각도를 가집니다. 동시에 안쪽 바퀴는 바깥쪽 바퀴보다 느린 속도를 가집니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

로버 제어를 위해 저렴한 상용 RC 송신기를 사용해 로버에 명령을 보냅니다. 로버에는 적절한 RC 수신기가 있어 명령을 받아 아두이노 보드로 전달합니다. 네, 이 화성 로버의 두뇌는 실제로 아두이노 메가 보드이며, 모든 것을 쉽게 연결하기 위해 아두이노 메가 보드 위에 단순히 장착할 수 있는 커스텀 PCB를 제작했습니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

로버에는 카메라 유닛에 FPV 카메라가 장착되어 있습니다. 스테퍼 모터와 서보 모터로 제어되며, 실시간 영상을 스마트폰으로 수신합니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

여기서 많은 부품들이 실제로는 기능적이지 않거나 실제 로버의 외관을 맞추기 위해 존재하는 것임을 말씀드리고 싶습니다. 또한 로봇 팔은 빠져 있지만, 향후 영상에서 팔을 만들고 더 많은 기능을 추가할 계획입니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

어쨌든 이제 로버 설계부터 전자 부품 연결, 아두이노 보드 프로그래밍까지 제작 과정을 안내해드리겠습니다.

DIY 화성 로버 3D 모델

이 화성 로버를 3D EXPERIENCE Solidworks로 설계했는데, 이가 이 영상의 후원사입니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

3DEXPERIENCE Solidworks는 3DEXPERIENCE 플랫폼을 통해 클라우드 기능을 갖춘 Solidworks 버전입니다. 여기서 모든 것이 클라우드를 통해 작동하므로 귀하나 팀의 누구나 언제 어디서나 데이터나 모델에 접근할 수 있습니다. 3DEXPERIENCE 플랫폼에는 많은 유용한 생산성 및 데이터 관리 앱도 포함되어 있습니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

예를 들어, Project Planning 앱은 작업 구성, 마감일 설정, 진행 상황 추적에 좋은 방법입니다. 3D Markup 앱으로는 노트북, 태블릿, 심지어 스마트폰 같은 어떤 기기에서든 모델을 보고 탐색하고 메모할 수 있습니다.

브라우저 내에서 실행되는 별도의 클라우드 기반 3D 모델러인 SOLIDWORKS xDesign도 있습니다. Solidworks와 함께 사용하거나 단독으로 사용할 수 있으며 언제 어디서나 어떤 기기에서든 모델링하기에 좋습니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

어쨌든 여러분 많은 분들에게 가장 흥미로운 소식은 올해 하반기부터 메이커 버전 3DEXPERIENCE Solidworks를 연간 $99에 구매할 수 있다는 점입니다. 이런 교육 콘텐츠를 후원해준 Solidworks에 큰 감사를 드립니다.

SOLIDWORKS와 3DEXPERIENCE 플랫폼이 귀하에게 맞는지 알고 싶다면 아래 링크를 확인하세요.

무료 3DEXPERIENCE 체험 (특별 링크): www.solidworks.com/HTMTryNow

3DEXPERIENCE SOLIDWORKS 더 알아보기: www.solidworks.com/HTMLearnMore

3DEXPERIENCE SOLIDWORKS for Makers: www.solidworks.com/htm

자, 모델로 돌아가 로버를 어떻게 설계했는지 설명하겠습니다. 제 목표는 이 로버가 실제 화성 퍼시비어런스 로버와 최대한 가깝게 보이게 만드는 것이었습니다. 공식 NASA 웹사이트에 화성 퍼시비어런스 로버의 3D 모델이 있어 다운로드해 Blender에서 열었습니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

로버의 정면, 상단, 측면 뷰 사진 세 장을 찍어 Solidworks로 가져왔습니다. 바퀴 크기를 지름 130mm로 정했으므로 이 치수에 맞게 사진들을 스케일링했습니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

여기서 너비, 길이, 높이, 바퀴 간 거리, 로커-보기 서스펜션 치수 등 모든 주요 치수를 추출했습니다.

이제 이 치수들과 사용할 DC 모터와 서보에 따라, 로버 부품들을 쉽게 3D 프린팅하고 조립할 수 있도록 설계하면서 외관을 원본에 최대한 가깝게 유지하려 했습니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

로커-보기 서스펜션에는 20mm 원형 알루미늄 프로파일을, 베이스 프레임에는 20mm T-슬롯 알루미늄 프로파일을 사용했습니다.

Thangs에서 이 3D 모델을 찾고 다운로드하거나 브라우저에서 탐색할 수 있습니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

3D 프린팅에 필요한 STL 파일들은 여기 있습니다:

화성 로버 복제품 부품 3D 프린팅

부품 3D 프린팅에는 구형 Creality CR-10과 신형 CR-10 V3 3D 프린터를 사용했습니다. 바퀴를 유연한 소재로 프린팅하려면 CR-10 V3 같은 다이렉트 익스트루더 프린터가 꼭 필요합니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

이 두 3D 프린터 모두 비교적 저렴하면서 훌륭한 프린팅 품질을 제공합니다. 관심 있으시면 아래 링크에서 확인해보세요:

참고: 초보자와 메이커를 위한 최고의 가성비 오실로스코프 [2021 업데이트]

부품을 3D 프린팅할 때 슬라이싱 소프트웨어의 Horizontal Expansion 기능을 사용하는 것이 중요합니다. -0.1mm 값을 사용했습니다. 이 기능은 프린팅 시 필라멘트 팽창을 보상합니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

사용하지 않으면, 예를 들어 부품에 지름 20mm 구멍이 있는데 실제 3D 프린팅된 부품의 구멍은 약 19.8mm가 되어 조립할 수 없게 됩니다.

어쨌든 여기 모든 3D 프린팅된 부품들입니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

솔직히 프린팅 양이 좀 엄청난데, 로버의 독특한 외관을 얻는 유일한 방법입니다. 다만, 이 로버의 기능적 부품만 프린팅하도록 선택하면 프린팅 시간을 절반으로 줄일 수 있습니다.

DIY 화성 로버 부품 목록

이 DIY 화성 로버 조립에 필요한 구성품 목록입니다. 전자 부품 목록은 아래 회로도 섹션에서 확인할 수 있습니다.

다양한 길이의 M4, M5, M6 볼트도 필요합니다. 아래 완성된 볼트와 너트 목록을 확인하세요.

볼트와 너트는 지역 철물점에서도 구할 수 있습니다.

로버 조립하기

자, 이제 로버 조립을 시작할 수 있습니다. 먼저 알루미늄 프로파일들을 준비해야 합니다. 금속 손톱으로 크기에 맞게 잘랐습니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

베이스용 T-슬롯 프로파일 10개와 로커-보기 서스펜션용 원형 프로파일 8개가 다음 치수로 필요합니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

T-슬롯 프로파일 프레임 조립에는 적절한 T-슬롯 코너 브라켓과 볼트, 너트를 사용합니다. 상단과 하단 프레임이 준비되면 양쪽에 로커 조인트 3D 프린팅 부품을 끼우고, 앞뒤에 3D 프린팅 브라켓들을 넣어 베이스를 완성합니다. 고정을 위해 M3 볼트와 T-슬롯 너트가 필요합니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

로커 조인트에는 M5 볼트와 너트를 사용했습니다. 앞쪽 프로파일에서 로커 조인트까지의 거리는 134mm여야 합니다.

로커-보기 서스펜션 조립

다음으로, 로커-보기 서스펜션의 메인 베어링들을 제자리에 끼웁니다. 그런 다음 베이스로 M8 볼트로 고정될 로커 조인트 샤프트가 있습니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

샤프트에는 M8 너트를 끼울 수 있는 슬롯이 있어 베이스로 고정하는 데 사용됩니다. 샤프트 구멍은 7.5mm로 볼트와 샤프트 사이에 타이트한 연결을 만듭니다. 이렇게 하면 볼트 자체가 로버 무게의 일부를 지탱하므로 3D 프린팅된 샤프트를 실제로 보강합니다. 이는 전체 로버 무게가 로커 샤프트로 지탱되므로 전체 조립에서 가장 스트레스를 많이 받는 부분입니다. 부품을 어떻게 프린팅하느냐가 강도에 매우 중요합니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

처음에는 서포트 재료가 필요 없는 쉬운 방향으로 이 샤프트를 프린팅했지만 프린팅이 실패했습니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

이 방식에서는 주 응력 방향이 레이어 방향과 같아 강하지 않지만, 부품을 옆으로 눕혀 프린팅하면 응력 방향이 벽면 윤곽에 작용해 훨씬 강해지고 실패하지 않습니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

어쨌든 이제 휠 조인트와 모터 마운트와 함께 로커-보기 서스펜션 조립을 계속하고, 나중에 이 서브 어셈블리를 로커 샤프트에 부착하겠습니다.

20mm 원형 프로파일이 들어가는 부품 구멍들은 타이트한 핏으로 치수화되어 있어, 경우에 따라 줄이나 샌드페이퍼로 다듬어 맞춰야 합니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

이제 이 부품들을 제대로 조립하기 위해 원형 프로파일들에 정확한 위치에 구멍을 뚫어야 합니다. 이를 위해 먼저 프로파일에 직선을 표시합니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

다음으로, 표시된 선이 부품 구멍을 통과하도록 프로파일을 3D 프린팅된 부품에 끼웁니다. 그런 다음 부품 양쪽에서 프로파일에 뚫어야 할 위치를 표시할 수 있습니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

프로파일 반대쪽에서도 같은 절차를 반복합니다.

2.5mm 드릴로 구멍을 뚫고, M3 볼트로 프로파일에 나사산을 만들었습니다. 이 나사산으로 부품들을 조입니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

알루미늄 프로파일이 볼트보다 부드러워 볼트 자체로 나사산을 만들기 쉽습니다. 이 구멍 뚫기 방법을 따르는 것은 마지막에 모든 부품들이 서로 상대적으로 올바르게 위치하도록 하기 위해 매우 중요합니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

보기 조인트에도 두 개의 베어링과 M8 볼트를 사용합니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

로커-보기 서스펜션 배열이 완료되면 조향 휠 조인트 조립으로 이어갑니다. 조향 휠 조인트 부품은 두 부분이 볼트로 결합된 구조입니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

실제 조인트(서보 마운트 부품과 DC 모터 마운트 부품 사이 연결)에는 두 개의 베어링과 M6 볼트를 사용합니다.

볼트 헤드 쪽(상단)에는 서보 혼을 부착하는데, 이 3D 프린팅된 커플러와 M3 볼트들을 사용합니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

커플러에는 서보 모션이 볼트로 전달되는 육각 슬롯이 있습니다. 하단에서는 조인트의 다른 부분을 나사로 조입니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

M6 너트로 이 연결을 고정합니다. 이로써 조향 휠 조인트가 완성되지만, 나중에 하단에 또 다른 M6 너트를 추가해 다른 너트와 조여야 한다는 것을 깨달았습니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

이렇게 해야 하는 이유는 서보로부터의 모션이 너트 자체를 통해 DC 모터 마운트 부품으로 전달되는데, 다른 너트로 조이지 않으면 전체 조인트가 풀려버리기 때문입니다.

다른 쪽 코너 조인트도 같은 절차로 진행합니다. 이 어셈블리를 평평한 표면에 놓았을 때 세 모터 마운트 모두 평평하게 놓이거나 서로 평행하면 모든 것이 제대로 연결된 것입니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

물론 다른 쪽도 같은 절차로 진행합니다. 다만 일부 부품이 똑같아 보이지만 실제로는 동일한 부품이 아니라 미러링된 부품임을 알 수 있습니다.

다음으로, 이 서브 어셈블리들을 베이스 프레임(차체)의 로커 조인트 샤프트에 끼웁니다. 그 전에 샤프트에 나사산 황동 인서트를 끼워야 합니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

인두로 쉽게 끼워 넣을 수 있어 서스펜션 서브 어셈블리 고정을 위한 좋고 신뢰할 수 있는 나사산 구멍을 얻습니다. 이를 위해 네 개의 M4 볼트가 필요합니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

양쪽에 설치하면 차체가 자유롭게 떨어지거나 회전하는 것을 볼 수 있습니다. 로커-보기 서스펜션이 제대로 작동하려면 빠져 있는 것이 있는데, 그게 바로 디퍼렌셜입니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

디퍼렌셜로 두 로커가 서로 연결되고 로버 차체와도 연결됩니다. 이 구성으로 한 쪽이 회전하면 다른 쪽이 반대 방향으로 회전해 대략 동일한 바퀴 접지를 제공합니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

차체는 두 로커의 평균 피치 각도를 가집니다.

디퍼렌셜 조립에 필요한 모든 부품들입니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

디퍼렌셜 바가 꽤 길어서 작은 3D 프린터에서도 프린팅할 수 있도록 세 조각으로 나누어 볼트로 결합했습니다. 디퍼렌셜 바는 차체 중앙에서 두 베어링과 M8 볼트로 만든 조인트로 피벗합니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

디퍼렌셜과 로커 연결을 위해 로드 엔드 볼 조인트가 필요합니다. M8 로드 엔드 볼 조인트와 50mm 길이의 M8 나사봉을 사용합니다. 나사봉이 한쪽에 M8 너트가 있는 3D 프린팅 부품으로 들어가고, 다른 쪽은 로드 엔드 볼 조인트로 들어갑니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

여기서 3D 프린팅된 디퍼렌셜 링크와 로드 엔드 사이의 거리를 약 20mm로 조정해 차체가 수평을 유지하도록 해야 합니다. 디퍼렌셜 링크와 로커 레버 연결에는 두 베어링과 M5 볼트를 사용합니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

다른 쪽도 같은 절차로 반복하면 로커-보기 서스펜션이 완성됩니다. 한 쪽이 올라가면 다른 쪽이 내려가고 그 반대도 마찬가지입니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

이렇게 모든 바퀴가 항상 지면과 접촉하게 됩니다. 차체는 다리 움직임의 절반만 움직이거나, 차체는 두 로커의 평균 피치 각도를 가집니다.

참고: 아두이노 로봇 팔과 메카넘 휠 플랫폼 자동 작동

화성 로버 모터 조립

자, 이제 DC 모터 설치를 진행할 수 있습니다. 사용하는 모터는 지름 37mm, 12V 작동, 50RPM 출력의 기어박스를 가집니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

나중에 50RPM이 이 로버에는 좀 빠르다는 것을 깨닫고, 20 또는 10 RPM 버전을 선택하는 것을 추천합니다.

바퀴를 모터에 부착하기 위해 샤프트 커플러들을 만들었습니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

여기에 커플러를 샤프트에 고정하기 위한 M3 나사산 인서트와 바퀴를 커플러에 고정하기 위한 M4 너트를 설치해야 합니다. 너트 삽입 시 접착제도 좀 발라 단단히 고정되게 하거나 나사산 인서트를 대신 사용하세요.

다음으로 바퀴를 부착합니다. 바퀴는 두 부분으로 구성됩니다. 하나는 유연한 필라멘트로 프린팅한 바퀴(반드시 그럴 필요는 없음)이고, 다른 하나는 일반 PLA로 프린팅한 림입니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

림에는 바퀴에 끼워지는 슬롯이 있어 모터 동력이 바퀴로 전달됩니다. 슬롯에 본드 몇 방울을 떨어뜨려 더 단단히 고정할 수 있습니다. 마지막으로 4개의 M4 볼트로 바퀴를 샤프트 커플러 또는 DC 모터에 부착합니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

자, 이제 조향 서보 모터들을 설치할 수 있습니다. 25kgcm 토크, 4.8~6.8V 작동 전압의 고토크 디지털 서보를 사용합니다. 서보를 제자리에 고정하기 위해 서보 마운트 3D 프린팅 부품의 M3 나사산 인서트로 들어가는 네 개의 M3 볼트를 사용합니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

카메라 유닛 조립

다음으로 카메라 유닛을 조립할 수 있습니다. 카메라 팬용으로 NEMA 17 스테퍼 모터를 사용하기로 했지만, 여기서 다른 유형 모터를 사용해도 됩니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

모터 모션은 M5 나사봉으로 상단 섹션에 전달되는데, 3D 프린팅된 샤프트 커플러로 모터에 연결되고, 다른 쪽에서는 베어링과 두 개의 너트로 나사봉을 이동 엘리먼트에 고정합니다. 카메라 틸트용으로는 조향 휠에 사용한 것과 같은 서보를 사용합니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

카메라 유닛의 많은 부품들은 실제 로버의 외관을 맞추기 위해 존재하는 비기능적 부품들입니다. 이 부품들을 조립하려면 다양한 M3 볼트와 나사산 인서트가 필요합니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

하지만 실제 FPV 카메라도 여기 설치하겠습니다. 카메라 유닛 하우징에 장착할 수 있는 커스텀 홀더를 만들었습니다. 카메라는 상단에서 쉽게 접근할 수 있으며 스냅핏 커버로 닫습니다. 카메라 유닛의 최종 모습입니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

이 전체 카메라 서브 어셈블리를 차체 앞쪽 오른쪽 모서리에 장착했습니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

이 시점에서 나머지 3D 프린팅 부품들(실제로는 기능적이지 않고 실제 로버 외관 맞추기용)을 계속 조립하거나, 전자 부품을 연결해 로버를 작동시킬 수 있습니다. 저는 모든 3D 프린팅 부품을 먼저 조립하고 전자 작업을 하기로 했습니다.

나머지 로버 조립

방금 말했듯 다음 부품들은 로버 외관 맞추기용이라 자세히 어떻게 조립하는지 설명하지 않겠습니다. 3D 모델에서 모든 것이 어떻게 연결되어야 하는지 볼 수 있습니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

이 부품들을 설계할 때 디테일에 신경 써서 모든 것이 좋아 보이도록 많은 노력을 들였습니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

이 부품들도 꽤 크고 3D 프린팅하는 데 시간이 좀 걸립니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

이것들을 어떻게 설치했는지 빠르게 보여드리겠습니다.

로버 중간에 있는 마지막 두 상단 패널들은 로버에 스냅핏으로 들어가도록 설계되었습니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

이것들은 실제로 전자 부품이 이 영역에 위치하므로 쉽게 탈착할 수 있는 후드 역할을 합니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

전자 부품 홀더는 두 개의 3D 프린팅된 부품을 볼트로 결합한 것으로 차체 하단 프레임에 들어갑니다.

전자 부품

자, 이제 전자 부품으로 넘어가겠습니다. 먼저 각 모터에 필요한 와이어 길이를 측정했습니다. 모터 커넥터가 제대로 없어 와이어들을 모터에 직접 납땜했습니다. 열수축 튜브로 커넥터들을 절연했습니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

몇 개의 케이블 타이로 와이어들을 정리하고 깔끔하게 유지할 수 있습니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

서보 모터들은 서보 연장 와이어를 사용해 전자 부품 칸까지 선을 연장할 수 있습니다. 전자 부품 마운트 부품에는 와이어들을 로버 중앙으로 통과시킬 수 있는 슬롯들이 있습니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

전체적으로 와이어들이 보이는 부품들 뒤로 지나가 꽤 깔끔하게 나온 것 같습니다.

참고: SCARA 로봇 | 직접 아두이노 기반 로봇 만들기

DIY 화성 로버 회로도

이제 이 로버의 회로도를 보고 모든 것을 어떻게 연결해야 하는지 살펴보겠습니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

이 프로젝트에 필요한 구성품은 아래 링크에서 구할 수 있습니다:

여섯 개의 DC 모터 구동을 위해 PWM 제어와 최대 3.6A 피크 전류를 지원하는 여섯 개의 DRV8871 DC 모터 드라이버를 사용합니다. DC 모터 작동 전압은 12V, 정격 전류 1A, 스톨 전류 3A입니다. 로버 전원에는 약 12V를 제공하는 3S 리포 배터리를 사용합니다.

반면 서보들은 4.8~6.8V가 필요하므로 12V를 6V로 변환해주는 DC-DC 컨버터가 필요합니다. 컨버터는 약 8A 전류를 처리할 수 있어야 합니다. 사용하는 서보들이 꽤 강력해 스톨 전류가 약 2A 정도이기 때문입니다. 카메라 유닛 스테퍼 모터 구동에는 A4988 또는 DRV8825 스테퍼 드라이버를 사용할 수 있습니다. 두 개의 저항으로 간단한 전압 분배기를 만들어 배터리 전압을 모니터링할 수 있습니다.

RC 수신기는 벅 컨버터에서 나오는 6V로 전원 공급되고, FPV 카메라와 비디오 송신기는 배터리에서 나오는 12V로 전원 공급됩니다.

커스텀 PCB

전자 부품들을 정리하기 위해 이 DIY 화성 로버용 커스텀 PCB를 설계했습니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

이 PCB는 실제로 아두이노 메가 실드 역할을 해 아두이노 메가 보드 위에 직접 연결할 수 있습니다. 모터 드라이버들 외에도 3.3V 전압 레귤레이터와 전용 NRF24L01 연결(이 모듈로 로버를 제어하고 싶을 경우), DHT22 센서, 나침반, I2C, 시리얼 통신, 12V, 5V, 3.3V, GND 연결들을 포함했습니다. 사실 이 PCB를 로버 기능 업그레이드에 대비해 미래지향적으로 설계했습니다.

PCB를 PCBWay에서 주문했습니다. 여기서 간단히 거버 파일을 업로드하고 PCB 속성들을 선택한 후 합리적인 가격에 주문할 수 있습니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

기본 속성들은 변경하지 않았고 아두이노 보드와 맞추기 위해 PCB 색상만 파란색으로 선택했습니다. 아래에서 거버 파일을 다운로드하거나, PCBWay 프로젝트 공유 커뮤니티를 통해 직접 PCB를 주문할 수도 있습니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

이 DIY 화성 로버 PCB의 거버 파일은 여기서 다운로드할 수 있습니다:

어쨌든 며칠 후 PCB가 도착했습니다. PCB 품질은 훌륭하고 모든 것이 설계와 정확히 일치합니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

PCB 조립은 모든 것이 라벨링되어 있어 꽤 직관적입니다. PCB 하단의 아두이노 메가 연결용 핀 헤더 납땜으로 시작해 상단 면으로 계속했습니다. 모든 연결에 핀 헤더를 사용했는데, 뭔가 제대로 안 되면 변경할 수 있는 유연성을 주기 때문입니다. 3.3V 전압 레귤레이터와 일부 여유 아두이노 핀들은 지금 사용하지 않을 것이어서 납땜하지 않았습니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

PCB 조립을 마친 후 아두이노 보드를 전자 부품 마운트 부품에 두 볼트로 고정하고 PCB를 장착했습니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

그런 다음 각 모터를 해당 드라이버에 연결하고 PCB에 제자리에 꽂았습니다. 서보들은 적절한 서보 핀에, 스테퍼 드라이버에는 1/8 스테핑 해상도 선택용 점퍼 하나를 꽂았습니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

무선 통신에는 정말 저렴하고 잘 작동하는 FLYSKY RC 송신기와 수신기를 사용합니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

수신기를 아두이노에 연결하기 위해 서보 연장 케이블을 사용할 수 있습니다. VCC, GND, 신호 핀 세 선이 필요합니다. 수신기는 I-BUS와 시리얼 포트를 통해 아두이노와 통신합니다. 수신기에서 송신기로 데이터를 다시 보내고 싶다면(우리 경우 배터리 전압 모니터링용), 수신기의 센서 I-BUS를 다른 아두이노 시리얼 포트에도 연결해야 합니다.

벅 컨버터는 두 볼트로 고정하고, 리포 배터리 고정에는 두 고무 밴드를 사용해 충전을 위해 쉽게 배터리를 분리할 수 있게 했습니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

파워 스위치는 로버 뒤쪽 오른쪽 패널에 들어갑니다. 이 선들로 흐르는 전류가 로버 완전 작동 시 몇 암페어까지 올라갈 수 있어 20게이지 와이어를 사용했습니다. 이 와이어들로 연결을 두 번 확인하세요. 잘못 연결하면 불이 날 수 있습니다.

마지막으로 FPV 카메라를 12V 전원에 연결하고 비디오 신호 와이어를 비디오 송신기에 연결합니다(비디오 송신기도 12V 전원 필요). 이로써 전자 부품 작업이 완료되었습니다.

아두이노 기반 화성 퍼시비어런스 로버 복제품 직접 만들기 – 단계별 가이드

커버 패널들을 다시 제자리에 끼우면 DIY 화성 로버가 완성됩니다. 실제로 거의 다 끝났지만, 이제 이 기계에 생명을 불어넣어야 합니다. 즉, 아두이노를 프로그래밍해야 합니다.

DIY 화성 로버 프로그래밍 – 아두이노 코드

이 DIY 화성 로버 프로젝트의 아두이노 코드는 여기서 다운로드할 수 있습니다:

코드 개요

IBusBM 라이브러리를 사용해 RC 송신기에서 들어오는 데이터를 읽습니다.

// Reading the data comming from the RC Transmitter IBus.loop(); ch0 = IBus.readChannel(0); ch1 = IBus.readChannel(1); ch2 = IBus.readChannel(2); ch3 = IBus.readChannel(3); ch6 = IBus.readChannel(6);Code language: Arduino (arduino)

이 값들을 오른쪽 회전 반경 값, 왼쪽 회전 반경 값, 0~100% 로버 속도로 변환합니다.

// Convertign the incoming data // Steering right if (ch0 > 1515) { r = map(ch0, 1515, 2000, 1400, 600); // turining radius from 1400mm to 600mm } // Steering left else if (ch0 < 1485) { r = map(ch0, 1485, 1000, 1400, 600); // turining radius from 600mm to 1400mm } // Rover speed in % from 0 to 100 s = map(ch2, 1000, 2000, 0, 100); // rover speed from 0% to 100%Code language: Arduino (arduino)

회전 반경 "r" 값을 사용해 조향 바퀴 각도와 바퀴 속도를 계산합니다.

void calculateMotorsSpeed() { // if no steering, all wheels speed is the same - straight move if (ch0 > 1485 && ch0 < 1515) { speed1 = speed2 = speed3 = s; } // when steering, wheels speed depend on the turning radius value else { // Outer wheels, furthest wheels from turning point, have max speed // Due to the rover geometry, all three outer wheels should rotate almost with the same speed. They differe only 1% so we asume they are the same. speed1 = s; // Inner front and back wheels are closer to the turing point and have lower speeds compared to the outer speeds speed2 = s * sqrt(pow(d3, 2) + pow((r - d1), 2)) / (r + d4); // Inner middle wheel is closest to the turning point, has the lowest speed speed3 = s * (r - d4) / (r + d4); } // speed value from 0 to 100% to PWM value from 0 to 255 speed1PWM = map(round(speed1), 0, 100, 0, 255); speed2PWM = map(round(speed2), 0, 100, 0, 255); speed3PWM = map(round(speed3), 0, 100, 0, 255); } void calculateServoAngle() { // Calculate the angle for each servo for the input turning radius "r" thetaInnerFront = round((atan((d3 / (r + d1)))) * 180 / PI); thetaInnerBack = round((atan((d2 / (r + d1)))) * 180 / PI); thetaOuterFront = round((atan((d3 / (r - d1)))) * 180 / PI); thetaOuterBack = round((atan((d2 / (r - d1)))) * 180 / PI); }Code language: Arduino (arduino)

앞서 언급했듯 아커만 조향 기하학으로 이들을 계산합니다. 이 값들은 ServoEasing 라이브러리로 서보들을 제어하는 데 사용되며, 더 부드러운 서보 움직임을 제공합니다.

// Servo motors servoW1.startEaseTo(97 - thetaOuterFront); servoW3.startEaseTo(97 + thetaOuterBack); servoW4.startEaseTo(94 - thetaInnerFront); servoW6.startEaseTo(96 + thetaInnerBack);Code language: Arduino (arduino)

analogWrite() 함수로 DC 모터들을 제어합니다. 이 함수는 실제로 DC 모터 드라이버에 PWM 신호를 보냅니다.

// Motor Wheel 1 - Left Front analogWrite(motorW1_IN1, speed2PWM); // PWM value digitalWrite(motorW1_IN2, LOW); // ForwardCode language: Arduino (arduino)

전반적으로 코드는 로버 자체에 복잡한 기능이 없어 그리 복잡하지 않습니다. 하지만 향후 영상에서 GPS 내비게이션, 다양한 센서, 로봇 팔, 토양 채취 메커니즘 등 더 많은 기능을 이 로버에 추가할 계획입니다.

이 프로젝트를 즐기시고 새로운 것을 배우셨기를 바랍니다. 아래 댓글 섹션에 자유롭게 질문해주시고 제 아두이노 프로젝트 모음도 확인해보세요.


제조공정

  1. 윈도우 IoT 코어 라즈베리파이 2 로버: 초보자부터 고급까지 완전 가이드
  2. 아두이노 오디오 주파수 감지기 - 고감도 사운드 모듈로 최대 음량 피크 주파수 측정
  3. 아두이노 틱택토 게임 - MAX7219 LED 매트릭스와 골판지 케이스
  4. 아두이노와 노키아 5110 LCD로 만드는 DIY 전압계 - 단계별 가이드
  5. 스파크펀 7-세그먼트 디스플레이로 신뢰할 수 있는 아두이노 카운트다운 타이머 만들기
  6. 아두이노로 직접 만드는 RC 포르쉐 자동차: 단계별 가이드
  7. 아두이노 우노로 신뢰할 수 있는 스마트 에너지 모니터 만들기 – 단계별 가이드
  8. 아두이노로 만드는 휴대용 RFID 도어락 - 단계별 완벽 가이드
  9. 아두이노 나노와 TCS3200 센서로 물체 색상 감지하기
  10. DIY 아두이노 키 측정 장치 - 정확하고 만들기 쉬운 신장계