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

[AiMate] 2. 하드웨어 설계-1 : 두뇌 풀가동

 차완기 - @6/7/2023, 10:11:00 PM
team-androino AiMate 프로젝트
AiMate 프로젝트는 한국방송통신대학교 대구경부지역대학 컴퓨터과학과 androino 동아리에서 진행중인 2023년 스터디 및 메이킹 프로젝트입니다.
이 프로젝트에서 프로그래밍을 처음 접하는 팀원들을 대상으로 펌웨어 개발(아두이노 프로그래밍) 멘토 역할을 수행하고 있으며, 하드웨어 설계를 담당하고 있습니다. 아래 포스팅을 통해 프로젝트를 진행하며 겪은 여러 시행착오 과정을 소개합니다.
프로젝트가 한번 엎어지는 바람에 2~4편은 실제 결과물에 반영되지 않았습니다
아무리 프로젝트에 애정을 가지고 있다 하더라도 손으로 만져지는 진행사항이 없으면 결국 어느 순간 지치게 됩니다. 그렇게 되지 않기 위해 서둘러 하드웨어 설계를 시작해 보았습니다.

고려 사항

지난 포스팅에서 밝힌 바와 같이 시행착오를 줄이기 위해 ottodiy 프로젝트의 Otto 로봇을 참고하기로 하였습니다. 하지만 세부적인 내용은 Otto와 크게 다르기 때문에 많은 수정이 필요하거나 처음부터 설계를 해야 할 가능성이 있어 설계 시작에 앞서 Otto와 AiMate의 차이점을 정리해 보았습니다.

Otto

컨트롤러 구성: MCU
주 전원: AAx4 (1차전지)
주변장치: 초음파 거리센서
주 기능: 시퀀스 제어

AiMate

메인 회로: SBC + MCU
주 전원: 18650 3S (2차전지)
주변장치: 마이크, 스피커, 카메라, 버튼
주 기능: 시퀀스 및 원격 제어, AI 비서
라즈베리파이(SBC)와 하드웨어 제어를 위한 MCU, AA배터리보다 훨씬 큰 18650배터리, 수많은 센서들까지 수많은 부품이 사용되기 때문에 공간을 효율적으로 활용해야 했습니다.
크기를 늘리면 모터가 커져야 하고 그러면 배터리가 커져야 하는 딜레마를 해결하는것이 가장 어려웠습니다. 결국 설계를 진행하며 초기 계획과는 다르게 많은 부품을 변경해야 했습니다.

이슈-1 배터리

소형 로봇은 항상 배터리가 문제입니다.
성능을 높히면 전력소모가 늘어나 배터리를 키워야 하고, 늘어난 무게를 감당하기 위해 구동부를 키우면 전력이 또 부족해지고... 이러한 딜레마를 극복해야 했습니다.
Otto의 배터리 홀더
Otto는 AA 배터리 4개가 4구 배터리 홀더를 통해 연결됩니다. 반면 AiMate는 SBC의 높은 전력 소비를 감당하기 위해 18650 배터리 3개가 사용되는데요, 여기서부터 문제가 발생하였습니다.
중간의 2구 배터리 홀더를 기준으로 왼쪽 마이크로, 오른쪽 스탠다드 서보모터
당연하게도 크기가 맞지 않죠... 3구는 커녕 2구조차도 크기가 너무 커 Otto에서 하던 방식으로 배치를 하였더니 몸체의 크기가 과도하게 커지게 되었습니다. 만약 마이크로 서보모터를 사용한다면 동작 여부는 둘째치고 로봇의 비율이 깨져 보기가 싫어질 것 같았고, 스탠다드 서보모터로 변경한다면 더 이상 Otto의 설계를 따라갈 수 없어졌습니다.
딱 이 시점이 라이브러리를 가져오고 막 설계를 시작했을 때였는데요, 덕분에 시작부터 멘탈이 갈려나가게 되었습니다.
3구 배터리홀더를 2구+1구로 변경하고 이리저리 돌려보았지만 Otto의 몸체 크기인 67x67에는 도달할 수 없어 배터리를 변경해야 했습니다.

일반 리튬 폴리머 배터리

18650의 큰 크기가 문제라면 리튬폴리머 배터리를 찾아보면 되지 싶어 여러 제조사의 제품을 훓어보았습니다.
일반적인 리튬폴리머 배터리는 방전률이 1C 정도로 매우 낮아 라즈베리파이와 모터가 동시에 풀로드되는 상황을 고려해 3,000mAh 이상의 배터리를 찾아보았습니다.
→ 3,000mAh 이상의 배터리는 죄다 크기가 너무 커 포기하게 되었습니다.

RC용 리튬폴리머 배터리

직접 배터리 팩을 제작하는 것 보다는 RC용 배터리를 구매하는편이 편리하겠죠. 로보티즈의 바이올로이드 로봇 전용 배터리가 기억나 이 배터리도 고려해 보았습니다.
→ 배터리 용량이 1,000mAh로 부족해 2개를 병렬로 연결해야 했는데, 역시나 크기 문제로 포기하게 되었습니다.

18650 배터리팩

위의 두 방법 모두 이런 저런 이유로 시도하지 못하고 떠올린 방법이 바로 18650 배터리팩입니다. 제가 딱 원하던 구성인 3S1P에 방전전류도 5A로 무난했습니다. 이제 문제는 크기인데...
어…?
배터리를 비스듬히 눕혀 해결했습니다 ㅋㅋㅋ 사실 다른 방법을 찾기에는 너무 힘들었어요...

이슈-2 부품 배치

배터리를 눕혀 쌓인 업보가 바로 돌아왔습니다. 배터리를 비스듬하게 두었더니 몸체 내부의 공간이 둘로 분리되어 부품을 배치하기가 까다로워졌습니다.
하지만 이게 또 로봇 설계의 묘미이죠. 없는 공간을 최대한 활용해보기로 했습니다.
로봇의 하판을 X-Z축 방향으로 자르면 위와 같은 단면이 나오는데요, 표시한것과 같이 부품들을 분산해 배치해보았습니다.
제어회로를 위한 공간을 비워주고 제어회로의 설치를 쉽게 하기 위해 배터리와 제어회로를 분리하는 벽은 탈착식으로 하였습니다.
공간 이슈로 라즈베리파이를 기존 4B에서 제로 2 W로 변경하고 발열을 고려해 바닥에 붙였더니
제어회로를 둘 공간이 마련되었습니다. 오디오 모듈의 경우 라즈베리파이의 쉴드 형태이기 때문에 IDC케이블로 연결할 예정입니다. 라즈베리파이 아랫쪽으로 GPIO가 나와 핀배치가 뒤집어지기 때문에 롱타입 헤더소켓을 활용할 수는 없고, 메인 회로에서 GPIO를 뒤집어 핀헤더IDC케이블오디오 모듈 경로로 연결하기로 하였습니다.
라즈베리파이는 HDMI와 USB를 연결하게 되면 GPIO 소켓에서 빠질 수 있어보여 나사로 견고하게 결합되도록 하였습니다.

이슈-3 MCU 개발보드 선정

제어회로에 부착되는 개발보드로는 ATmega2560이 사용된 아두이노 메가 프로 미니 보드를 사용하려 했지만, 공간이 부족해 라즈베리파이 피코로 바꾸려 했습니다. 그러나 이조차도 공간이 부족해 제어회로에 라즈베리파이 피코를 직접 설계해 넣기로 했습니다.
회로 설계하는 미례의 제가 알아서 하겠죠…

마무리

이렇게 1차 하단 설계를 마무리하였습니다. 가장 까다로웠던 문제인 배터리 배치가 해결되었으니 나머지 설계는 순조롭게 진행되지 않을까 싶습니다.
PCB를 먼저 설계해 빠르게 발주를 넣어야 해 3D 설계는 잠시 놔두고 회로 설계를 다음으로 진행할 예정입니다.