실시간 영상 스트리밍 가능한 파이 구동 로봇 제작 및 제어하기
왜 sPiRobot인가?
많은 프로젝트에서 전통적으로 아두이노를 썼지만, 이 빌드에서는 라즈베리 파이가 두뇌 역할을 합니다. 그래서 프로젝트명을 sPiRobot이라 지었습니다.
하드웨어 체크리스트
- 1 × 라즈베리 파이 (USB 웹캠과 Wi-Fi 지원 모델)
- 1 × USB 웹캠 (예: 로지텍 C920)
- 1 × USB Wi-Fi 동글 (USB-2.0, 802.11b/g/n)
- 1 × 4GB 마이크로SD 카드 (고속 UHS-I)
- 1 × 마이크로-USB 또는 USB-C 전원 케이블 (최소 2A)
- 1 × 9V 배터리 (원격 작동용)
- 1 × H-브리지 / L293D 모터 드라이버
- 1 × HDMI/AV 모니터 (초기 설정용)
- 1 × USB 키보드 + 마우스 (초기 설정용)
1단계: 라즈베리 파이 준비
- 최신 라즈베리 파이 OS(구 라즈비안)를 마이크로SD 카드에 플래싱. 공식 가이드: 라즈베리 파이 OS 설치.
- SD 카드 삽입, HDMI 모니터, 키보드, 마우스, Wi-Fi 동글 연결. USB 케이블(또는 신뢰할 수 있는 전원)로 파이 전원 투입.
- 데스크톱 로드되면 터미널 열기.
2단계: 필수 패키지 설치
시스템 업데이트와 영상 스트리밍, 웹 서빙, 이미지 처리 필요 라이브러리 설치:
$ sudo apt-get update
$ sudo apt-get install libv4l-dev libjpeg8-dev subversion imagemagick libapache2-mod-php5 php5 apache2 git
3단계: 웹캠 스트리머 설정
MJPG-Streamer로 웹캠 피드를 HTTP로 푸시.
$ svn co https://svn.code.sf.net/p/mjpg-streamer/code/ MJPG-streamer
$ cd MJPG-streamer/mjpg-streamer
$ sudo make USE_LIBV4L2=true
다음 파일들이 디렉토리에 생성됐는지 확인:
- mjpg_streamer (실행파일)
- input_uvc.so
- output_http.so
4단계: 프로젝트 코드 가져오기
sPiRobot 저장소 클론:
$ git clone https://github.com/sohil4932/sPiRobot
sPiRobot 폴더 생성되며 모든 서버 사이드 스크립트 포함.
5단계: 서버 파일 배포
아파치 도큐먼트 루트로 필요 파일 복사:
$ cd sPiRobot
$ sudo cp backward.sh control.html forward.sh help_steuerkreuz.png index.html init.sh left.sh right.sh spirobot.php shutdown.sh stop.sh /var/www/
웹 서버가 GPIO 핀 제어 가능하도록 www-data에 슈퍼유저 권한 부여:
$ echo "www-data ALL=(ALL) NOPASSWD: ALL" | sudo tee -a /etc/sudoers
6단계: 파이 Wi-Fi 연결 및 IP 확인
라즈비안에 사전 설치된 Wi-Fi-Config로 라우터 연결 후:
$ ifconfig
wlan0 아래 inet addr가 파이의 로컬 IP 주소 - 원격 제어용으로 메모.
마무리
파이 전원 켜고 웹캠 스트리밍 서버 실행, 웹 인터페이스 배포 완료. 이제 동일 네트워크 상 아무 기기에서(또는 포트 포워딩으로 원격 접속) 로봇 제어와 카메라 피드 확인 가능.
자세한 워크스루와 트러블슈팅 팁은 원문 튜토리얼이나 GitHub README 참조.