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

[AiMate] 5. 다시 처음으로, 프로젝트 재기획

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

진행 방향 변경

2편인 [AiMate] 2. 하드웨어 설계-1 : 두뇌 풀가동에서 “눈에 보이는 실물이 없으면 흥미가 급격하게 떨어진다”고 하였는데요, 그 내용이 실제로 일어나게 되었습니다. 지난 몇주 간 PCB 설계와 주문, 그리고 조립까지는 빠르게 진행되었지만, 그 뒤로 프로젝트에 할애할 시간이 부족해 외형을 위한 3D 설계 진도가 많이 느려지게 되었습니다.
외형 설계에 너무 많은 시간을 투자하고 있다는 생각이 들어 프로젝트의 진행 방향을 변경하기로 하였습니다.
바로 외형을 직접 만드는 것이 아닌, 구매해 활용하는 것입니다.

사서 써먹자!

현재 동아리 구성원의 대다수는 로봇, 그중에서도 다관절 로봇은 더더욱 처음 접해보는 상태였습니다.
그러다 보니 OttoBot의 동작 방식이나 서보모터의 제어 방법 등 로봇에 대한 이해도가 떨어지는 편이었는데요, 이를 한 번에 해결할 수 있도록 교육 자료가 있는 로봇을 구매하면 어떨까 하는 의견이 있었습니다.
마침 동아리 구성원 중 교육 분야에 밝은 분이 계셔, 이러한 목적에 정말 잘 맞는 몇몇 로봇을 실제로 볼 수 있었습니다.
그중 가장 적합해 보인 로봇이 바로 G봇입니다.

프로젝트 적합성 체크

G봇을 AiMate 프로젝트에 채택하게 된 이유는 이러합니다.
교육 자료 존재
스터디 성향을 띄고 있는 동아리이다 보니 프로젝트의 진행과는 별개로 동아리 구성원의 실력 향상이 우선시 되어야 했습니다. G봇의 여러 교육 자료가 동아리 구성원의 실력 향상에 도움이 될 것으로 기대하였습니다.
이후에 언급하겠지만 빌드된 정적 라이브러리를 제공한다거나 LDO의 출력으로 서보모터 전원을 공급하는 등 뭔가뭔가... 한 느낌이 들지만... 그래도 이 정도면 준수해 보입니다.
Otto Bot 베이스
G봇은 Otto DIY 프로젝트의 오픈소스 하드웨어를 기준으로 설계된 로봇입니다. 국 내외에 로봇 동작에 대한 여러 자료가 존재하기 때문에 모션을 작성할 때 큰 도움이 되지 않을까 싶습니다.
높은 확장 가능성
사출 성형된 프레임을 사용해 기능 추가를 위해 수정을 가할 때 구멍을 뚫거나 덧붙이기 좋아 보였습니다. 이 부분은 추후 하드웨어 개조 편에서 자세히 설명하겠습니다.

로봇 스펙

로봇을 구매해 조립하며 로봇의 주요 사양을 체크해 보았습니다.
제어부
개발보드: Arduino NANO + 확장보드
MCU: ATmega328
내장 모듈(센서, 액추에이터 등)
서보모터: TowerPro SG92R x8
정격전압: 4.8~6 V
소비전류: 10~100~300~650 mA (idle, typ, stall)
초음파 센서: HC-SR04
도트 매트릭스: MAX7219 내장 8x8 SPI, Addressable
부저: 패시브 부저
전원부
배터리: 18650 2S(5.6~8.4 V), 2600 mAh
5 V 전원 컨버터: 개발보드 온보드 AMS1117 유사 LDO, 5V 800 mA 예상
BATTERYLDO(???)MCU, Actuators, Sensors, etc..
서보모터는 확장보드의 3핀 커넥터에 연결되는데, 이 3핀 커넥터의 VCC는 MCU와 공유하는 5V 라인입니다. 5V 전원은 배터리 전원에서 LDO를 통해 가져오는데요, 서보모터의 5.2A 피크 전류를 LDO가 버텨줄지 의문입니다.
무리한 동작을 할 때마다 개발 보드의 LDO가 점점 죽어가겠지만..하드웨어를 바꿔치기할 예정이기 때문에 당장은 문제가 없을 것 같네요.

변경 필요 내용 정리

프로젝트의 목적인 “반려 로봇”을 만족하기 위해서는 음성 입출력, 인공지능 기능이 추가되어야 합니다. 추가적으로 카메라를 활용한 몇몇 기능을 추가하기 위해서는 내부 제어 장치의 성능이 높아야 하는데요, 이를 위해 로봇 내부에 라즈베리파이 같은 SBC를 넣기로 했었습니다.
제어 회로: MCU(RPi) + SBC(Arduino Supported)
G봇은 MCU, 그중에서도 ATmega328을 사용해 이러한 목적에는 적합하지 않았습니다. 따라서 기존의 제어 회로 부분을 떼어내고 직접 설계한 제어 회로를 넣기로 하였습니다.
이때 직접 설계할 제어 회로는 대부분의 로봇에서의 국룰인 SBC+MCU로 구성하며, SBC로는 Linux 학습을 위해 Raspberry Pi를, MCU는 아두이노 프로그래밍 공부를 위해 아두이노 프레임워크에서 지원하는 MCU로 선정할 예정입니다.
배터리: 18650 3S
위와 같이 구성하게 되면 많은 전력을 소비하는 주요 부품은 아래와 같아집니다.
SBC: 1 A 내외, 2 A 공급 권장
Servo: 2~3 A 예상, 4 A 이상 공급 권장
최악의 시나리오로 생각하면 약 4 A 정도의 전류를 지속적으로 소비하게 되는데, 18650 2S 배터리로는 전원을 감당하기 어려워 보였습니다. 따라서 배터리의 셀 수를 하나 올리기로 했습니다.
전원 회로: Buck 컨버터 x2
5V, 4A 출력이 가능한 2개의 강압 컨버터를 각각 서보모터와 나머지 부품(SBC, MCU, 기타 모듈)에 물려주기로 했습니다. 이전에 로봇을 설계할 때 전원을 묶었더니 SBC가 액추에이터의 동작에 영향을 받는 문제가 있어 이렇게 계획해 보았습니다.

마무리

여기까지 다시 처음으로 돌아간 AiMate 프로젝트의 하드웨어 개발 기획을 정리해 보았습니다.
다음 포스팅에서는 하드웨어 선정을 위해 진행한 과정을 정리해보겠습니다