아두이노 IDE, Python 3 (pySerial, OpenCV, pyttsx3, speech_recognition, tkinter, wikipedia 등)
프로젝트 개요
MIA-1은 3D 프린터 없이 PVC 시트와 핫글루, 나사만으로 손으로 제작한 고급 휴머노이드 로봇입니다. 완전 오픈소스로 코드와 상세 제작 가이드를 무료 제공합니다.
주요 기능
음성 인식 및 합성으로 대화 가능
왼쪽 눈 카메라로 얼굴 인식 및 사진 촬영
모션 감지 및 사진 캡처
터치스크린 LCD GUI로 제어
이미지 표시 및 다운로드 표시
오른손 레이저 포인터로 타겟팅
말하면서 손 제스처 동작
자립 보행 및 인사(절) 동작
총 13 자유도 (DOF)
1단계: 바디 및 모터 레이아웃
바디는 PVC 시트를 커터 칼로 재단하여 핫글루와 나사로 조립. 여성형 바디 형상으로 설계. 서보 커넥터는 얇은 PVC 시트로 제작. 머리는 풍선에 종이 마세(종이+물) 기법으로 8겹 적층 후 스프레이 도색. 무게 중심이 잘 맞아 자립 보행 가능. 가슴 부분에 LCD 장착.
2단계: 회로도
모터 레이아웃에 맞춰 회로도 작성. 그라운드 공통 연결 필수. 아두이노는 USB로 컴퓨터에서 전원 공급. 레이저 다이오드는 아두이노 핀 13(내장 LED 핀)에서 전원 공급. 모든 모터와 배선은 바디 후면에 배치.
3단계: 코드 구조
아두이노 메가 (모터 제어): 750줄 이상의 서보 제어 코드. 기본 대기 자세(default position) 정의 후 시리얼 명령 수신 시 해당 동작 실행.
/* 기본 대기 자세 */
waist.write(4);
left1.write(120);
rFinger.write(0);
servo1.write(55);
clawOpen();
rightStandBy(); leftStandBy();
headTilt.write(134); headPan.write(90);
파이썬 메인 브레인 (노트북/라즈베리파이): 고수준 로직 처리
# 시리얼 연결
mia = serial.Serial("COM28", 9600)
# 필수 라이브러리
import pyttsx3, speech_recognition, tkinter, cv2, wikipedia, PIL, serial, time, random
# 카메라 (웹캠일 경우 인덱스 1일 수 있음)
cap = cv2.VideoCapture(1)
# 명령 전송 예시
mia.write(b'p') # 고개 끄덕임 명령
count_down(3)
respond("Smile please", 100) # 음성 출력