산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

아두이노 우노 기반 DIY 얼굴 추적 카메라: 파이썬 OpenCV 연동

프로젝트 개요

3D 프린팅한 머리 모형에 얼굴 추적 기능을 부여하여, 방 안을 움직이는 사람을 카메라가 계속 응시하도록 만든 인터랙티브 아트 프로젝트입니다. 아두이노 우노가 2축 서보(팬/틸트)를 제어하고, PC에서 실행되는 파이썬 스크립트(OpenCV)가 웹캠 영상에서 얼굴을 검출하여 아두이노로 시리얼 명령을 전송하는 분산 아키텍처입니다.

시스템 아키텍처

┌─────────────┐     USB/Serial      ┌──────────────┐
│  Python PC  │ ◄─────────────────► │  Arduino UNO │
│  (OpenCV)   │     │  (Servo x2)  │
└─────────────┘                     └──────────────┘
       │                                    │
       ▼                                    ▼
  웹캠 영상                            팬/틸트 서보
  얼굴 검출                                │
  좌표 계산                                ▼
  시리얼 전송                          3색 상태 LED

하드웨어 구성

부품 수량 비고
Arduino UNO 1 서보 제어, LED 표시
웹캠 (USB) 1 PC 연결, 720p 이상 권장
MG-90S 서보 모터 2 팬(좌우), 틸트(상하)
9V 1A 어댑터 + 7805 레귤레이터 1세트 서보 전원용 (아두이노 5V 핀 직결 금지)
3색 LED (적/녹/황) 각 1 220Ω 저항 직렬, 상태 표시용
3D 프린트 파트 1세트 Thingiverse/작가 사이트에서 다운로드
고무줄, 종이클립, 나사 등 - 기계적 조립용

필수 도구

아두이노 펌웨어

통신 프로토콜

시리얼 115200 bps, 패킷 포맷: <pan각도,tilt각도,LED상태>

LED 상태 코드

코드 색상 의미
0 빨강 얼굴 미검출
1 녹색 얼굴 검출됨 + 중앙 정렬
2 노랑 얼굴 검출됨 + 중앙 벗어남
3 흰색(전체 ON) 시작 시퀀스/테스트

핵심 코드 구조

#include <Servo.h>

Servo panServo, tiltServo;
const byte buffSize = 40;
char inputBuffer[buffSize];
// ... 파싱 로직 (strtok + atof/atoi)

void loop() {
  getDataFromPC();   // 시리얼 수신 및 파싱
  replyToPC();       // 현재 서보 각도 에코백
  moveServo();       // 서보 구동
  setLED();          // LED 상태 업데이트
}

파이썬 얼굴 검출 소프트웨어

요구 사항

주요 기능

소스 코드 저장소

GitHub: LittleFrenchKev/face_tracking_camera

작가 웹사이트: littlefrenchkev.com

조립 가이드 요약

  1. 3D 프린트 파트 출력 (팬/틸트 브래킷, 카메라 마운트, 베이스)
  2. 서보 혼(horn) 장착 및 기어박스 윤활
  3. 웹캠 분해 후 PCB만 추출하여 마운트에 고정 (고무줄 활용)
  4. 서보 배선: 팬→핀 8, 틸트→핀 9, 전원 별도 5V 레귤레이터로부터
  5. LED 배선: 적색→핀 2, 황색→핀 3, 녹색→핀 4 (220Ω 저항 필수)
  6. 아두이노 펌웨어 업로드 → 파이썬 스크립트 실행 → COM 포트 선택 → Connect

응용 확장 아이디어

문제 해결 팁

  1. 서보 떨림: 전원 부족 → 별도 5V 2A 이상 어댑터 + 7805 또는 UBEC 사용
  2. 얼굴 검출 실패: 조명 확보, Haar Cascade XML 경로 확인, DNN 모델로 교체
  3. 시리얼 통신 끊김: 보드레이트 일치 확인, 시리얼 모니터 동시 열림 여부 체크
  4. 역방향 동작: 파이썬 설정에서 invert_pan, invert_tilt 토글

제조공정

  1. 라즈베리 파이 실시간 팬/틸트 얼굴 추적 – 실전 가이드
  2. 커스텀 4×4 틱택토 방문카드 PCB – 설계, 제작, 코드 가이드
  3. 스마트 홈 연동을 위한 다중 위치 온도 센서 시스템
  4. 862D+ 납땜 인두 컨트롤러 DIY: 정밀함과 신뢰성
  5. MotionSense: 아두이노와 ESP8266으로 만드는 스마트 침입 감지 시스템
  6. 3D 프린터 화재 예방: 스마트 센서 안전 시스템
  7. 아두이노, Yaler, IFTTT로 웹 연동 IoT 게이지 만들기
  8. 아두이노 기반 척력 자기 부상: 간단 회로 & DIY 가이드
  9. 정밀 핸들링을 위한 고급 원격 제어 그리퍼 로봇
  10. CoroFence 열화상 감지기: Panasonic Grid-EYE & PIR 센서 IoT 연동