아두이노 우노로 만드는 스마트 휴머노이드 로봇 '모피자'
부품 및 소모품
| 부품 | 수량 | 비고 |
| Arduino Pro Mini (5V 16MHz) | 1 | 아두이노 우노 등 어떤 보드든 가능 |
| 암/수 헤더 핀 | 적당량 | PCB 연결용 |
| 베로 보드 (만능 기판) | 1 | 회로 제작용 |
| SD 카드 TF 모듈 | 1 | 음성 재생용 |
| 마이크로 SD 카드 (≤2GB) | 1 | FAT16/32 포맷 |
| IR 근접 센서 | 3 | 눈 2개, 가슴 1개 |
| 서보 모터 (MG996R 또는 SG90) | 3 | 머리, 양손 |
| 골판지 등 바디 재료 | 적당량 | 직접 제작 |
앱 및 온라인 서비스
프로젝트 개요
이 로봇 '모피자(Mofiza)'는 보고, 말하고, 반응하는 휴머노이드입니다. 아두이노만으로 음성 재생과 서보 제어를 동시에 구현했습니다.
1단계: 부품 준비
위 부품표 참조. 아두이노 프로 미니를 써서 소형화했지만, 우노나 나노도 핀 수만 맞으면 가능합니다.
2단계: IR 센서 연결 및 바디 제작
골판지로 간단하게 바디를 만듭니다. IR 센서 3개를 리본 케이블로 납땜해 암 헤더로 연결, 양쪽 눈과 가슴에 장착.
- 가슴 센서 감지 시 → 환영 멘트 재생 + 왼손 악수 동작
- 눈 센서 감지 시 → "아악, 눈 만지지 마" 멘트 + 해당 쪽 서보 움직임
3단계: 회로 구성
베로 보드에 납땜으로 회로 구성. 단일 배터리로 전체 구동 가능. 서보 3개(머리, 양손), SD 모듈, IR 센서 3개, 스피커 연결.
회로도 이미지: https://ko.mfgrobots.com/UploadFiles_1549/202112/2021122811405222.png
4단계: 코드 (핵심 라이브러리 2개 필수)
- TMRpcm: SD 카드 오디오 재생 (GitHub) – Timer1 사용
- ServoTimer2: Timer2로 서보 제어해 TMRpcm과 충돌 방지 (가이드)
환영 인사 코드 예시:
#include <ServoTimer2.h>
#define SD_ChipSelectPin 10
#include <TMRpcm.h>
#include <SD.h>
TMRpcm tmrpcm;
ServoTimer2 matha; // 머리
ServoTimer2 lhand; // 왼손
ServoTimer2 rhand; // 오른손
int in1=6, in2=7, in3=8; // IR 센서 핀
void setup() {
matha.attach(2); lhand.attach(3); rhand.attach(4);
tmrpcm.speakerPin = 9;
Serial.begin(9600);
if (!SD.begin(SD_ChipSelectPin)) { Serial.println("SD FAIL"); return; }
}
void loop() {
if (!(digitalRead(in3))) { // 가슴 센서 LOW 감지
tmrpcm.play("welcome.wav");
lhand.write(2500); delay(2000); // 손 들기
lhand.write(1200); delay(9000); // 악수 자세 유지
} else {
lhand.write(300); rhand.write(1700); matha.write(1500); // 기본 자세
}
}
전체 코드는 GitHub에서 확인 가능 (mofiza.fullCode.v1.1).
5단계: 완성
전원 켜면 바로 작동. 핀 부족으로 걷기 기능은 미구현 (디지털 핀 3개 남음). 유튜브 채널 구독으로 응원 부탁드립니다.