Category (Click)
개발보드 덕질하기

[AiMate] 6. 하드웨어 역설계 및 부품 선정

 차완기 - @8/20/2023, 4:33:00 PM
team-androino AiMate 프로젝트
AiMate 프로젝트는 한국방송통신대학교 대구경부지역대학 컴퓨터과학과 androino 동아리에서 진행중인 2023년 스터디 및 메이킹 프로젝트입니다.
이 프로젝트에서 프로그래밍을 처음 접하는 팀원들을 대상으로 펌웨어 개발(아두이노 프로그래밍) 멘토 역할을 수행하고 있으며, 하드웨어 설계를 담당하고 있습니다. 아래 포스팅을 통해 프로젝트를 진행하며 겪은 여러 시행착오 과정을 소개합니다.
프로젝트가 한번 엎어지는 바람에 2~4편은 실제 결과물에 반영되지 않았습니다
지난 포스팅에서 프로젝트의 방향을 다시 정했으니, 다음은 로봇의 개조를 위한 세부 내용을 정할 차례입니다.
로봇의 개조 방향을 구체적으로 계획해 보았습니다.

로봇 외형 분석

로봇을 처음 봤을 때 들었던 생각은 “생각보다 공간이 넉넉한데?”였습니다.
그도 그럴 것이 기존에 설계하던 로봇은 3D프린팅 될 것을 고려해 벽 두께가 4~5mm로 두꺼운 반면, G봇은 사출 성형되어 1~2mm 정도로 벽 두께가 얇은 편이었습니다.
이러한 이유로 유사한 외형 크기를 가지지만 내부 공간이 여유로웠던 것이죠.
Arduino UNO R3 Datasheet
거기에 로봇의 제어부는 아두이노 UNO 폼팩터의 마운팅 홀로 고정되어 기존의 제어부를 덜어내고 직접 설계한 제어 모듈을 넣기에도 쉬워 보였습니다.

역설계

부품을 선정할 때 가장 중요하게 고려해야 할 것은 당연하게도 간섭입니다.
공간적인 제약 안에서 최대한의 성능을 뽑아낼 수 있는 부품을 선정해야 하는데요, 이를 쉽게 하고 추후 PCB 설계 과정에서 써먹기 위해 G봇을 역설계하기로 했습니다.
로봇에서 주로 수정을 가하는 부위인 머리(?)를 역설계하였습니다.
크게 중요하지 않은 세부 내용은 생략하였습니다.

부품 선정

역설계를 한 부품을 통해 확인할 내용은 아래와 같습니다.
SBC 간섭 확인 및 선정
제어회로 아웃라인 작업
18650 배터리 3S 구성 시 간섭 확인

SBC

앞선 기획 과정에서 제어 회로에는 SBC+MCU 조합을 사용한다고 하였습니다. 이전에는 선택지가 없어 SBC의 선정이 단순했는데, 이번에는 공간이 넓다 보니 SBC의 선정에 여러 옵션이 생기게 되었습니다.
프로젝트의 재기획 전에 선정했던 SBC는 Raspberry Pi Zero 2 W였습니다. Zero W보다는 월등히 높은 성능을 자랑하지만, 라즈베리파이의 대표 시리즈인 4 B와 비교하기에는 조금 아쉬운 성능이긴 했습니다.
하지만 공간이 조금 더 넉넉해진 지금은 말이 다르죠. 성능이 높은 SBC를 집어넣기로 했습니다.
RPi 4 B는 안타깝게도 들어가지 않지만,
RPi 4 B의 모듈화 버전인 CM4(Compute Module 4)는 충분히 들어갈 수 있어 보였습니다.
이거 각이죠
주변에서는 진작에 CM4를 지지고 볶고 하던데, 이참에 저도 CM4를 활용해봐야겠습니다.
조금 더 구체화하자면 SBC는 뒤집어 PCB의 뒤 레이어에 배치하고 위 레이어에는 위의 표시와 같이 부품을 배치하면 좋을 것 같습니다.
<아두이노 G봇 (조립형)> 판매 페이지 중 일부 - 링크
그럼, 이제 쿨링이 문제가 되는데요, G봇의 확장성이 여기서 도움이 되었습니다.
로봇의 상단에는 속이 비어있는 원통형 구조물이 있어 G봇에서는 이를 모자를 씌우는 목적으로 활용하고 있습니다. 그런데, 이 공간이 꽤 넓고 높이도 충분해 이 부분에 쿨링팬을 집어넣고 모자를 씌우면 깔끔하게 처리될 것 같았습니다.
바람이 통할 구멍을 뚫기 위해 약간의 드릴링 작업이 필요하겠네요.
모델링으로 설명하자면 대략 위와 같습니다.

PCB

메인 회로를 위한 아웃라인을 작업해 EAGLE로 넘겼습니다. 이건 나중에 PCB 아트웍을 진행할 때 활용할 예정입니다.

Battery

다음은 하부를 활용할 차례입니다. “배터리를 3S로 구성하게 되면 배터리 홀더 하나가 로봇의 빈 공간에 들어가야 하는데, 이와 관련해 과연 간섭이 없을지”가 주된 내용입니다.
이렇게 쌓아 올리니 제어 회로와 24mm의 공간이 남습니다. 배터리를 실제로 연결하면 조금 튀어나오니 15~20mm의 여유 공간이 남는다고 보면 될 것 같습니다.
추가적으로 확인해야 할 부분은 로봇 양옆의 팔과의 간섭인데요, 설계하기 귀찮기도 하고 실측한 결과 대충 가능할 것 같아 배터리 구성은 이대로 확정하기로 했습니다.

사양 정리

위 과정을 통해 얻어낸, 로봇의 개조 방향은 아래와 같습니다.
제어 회로: MCU(RPi CM4) + SBC(RP2040)
SBC: Raspberry Pi Compute Module 4
HDMI x1
USB x2
Camera(CSI)
MCU: RP2040
Servo (PWM, 5 V) x8
HC-SR04+(3.3 V) x1
8x8 도트메트릭스(SPI) x1
Type-C USB (DFU)
기타
전원부: Buck(5 V, 4 A) x2
18650 3S 구성 (배터리 홀더 2구 + 1구)
SBC 쿨러 (5 V, 4040)
seeed ReSpeaker 2-Mics Pi Hat