브리지 실드(Bridge Shield)로 스마트 로봇 만들기 - 라즈베리 파이 & 아두이노 통합
브리지 실드는 학생, 해커, 연구자를 위한 오픈소스 개발 보드입니다. 라즈베리 파이나 아두이노 우노와 결합하면 DIY 로보틱스와 홈 오토메이션 프로젝트의 폭이 넓어집니다.
현재 킥스타터에서 프로젝트 지원 중 - 후원이나 링크 공유로 동참 부탁드립니다.
브리지 실드 킥스타터 링크
주요 특징 (2세대)
- 10-DOF IMU (관성 측정 장치)
- 온도 센서
- 듀얼 브리지 모터 드라이버 (채널당 1A)
- 8채널 I²C 서보 드라이버
- 코인셀 백업 내장 실시간 시계(RTC)
- 양방향 5V↔3.3V 레벨 시프터
- SPI, I²C, UART 레벨 시프팅 (아두이노 우노 ↔ 라즈베리 파이)
- 아두이노 부트로더 탑재 ATtiny85 마이크로컨트롤러
- ESP8266 Wi-Fi, HC-05 블루투스, IR 리모컨, USB-투-UART 헤더
- 단일 12V 입력으로 파이, 아두이노 구동 및 3A 5V/3A, 3.3V/1A 레귤레이터 내장
- LED 상태 표시 내장 듀얼 셀 리튬이온 충전기
- I²C 제어 가변 강도 LED
모든 부품은 표준 아두이노 우노 및 라즈베리 파이 실드 스택에 맞게 기계적으로 설계되었습니다.
지금까지 구현된 프로젝트
- 인터넷 제어 로봇
- 플러그인 가전제품용 홈 오토메이션 컨트롤러
- IP 카메라
- 배터리 백업 모바일 라즈베리 파이 플랫폼
할 수 있는 것들
- 자율 또는 셀프 밸런싱 로봇
- DIY 드론 (책임감 있게 사용 - 프라이버시 고지 사항 적용)
- I²C 센서와 온보드 모터 드라이버(서보, DC, 스테퍼)로 스마트 홈 오토메이션
첫 프로토타입 완성 후 테스트 중. 2세대는 더 강력한 기능 탑재 예정. 웹사이트와 유튜브 영상 참고.
시작하기: 인터넷 제어 로봇
1단계: 라즈베리 파이 설정
준비물:
- 브리지 실드 (또는 L293D 보드)
- SD 카드와 전원 공급 장치 갖춘 라즈베리 파이
- USB 또는 파이 카메라 모듈
- 로봇 섀시, 모터 클램프, 너트/볼트, 주변기기
- 2× DC 모터 (BO 모터)
- 2셀 리튬이온 배터리 (1,000-2,000 mAh)
- 아두이노 우노 (선택)
- ESP8266 Wi-Fi 모듈 (선택)
- 1.3" OLED 디스플레이 (선택)
웹 서버와 PHP를 파이에 설치로 시작. 이 인스트럭터블 참고 후 실행:
$ sudo apt-get update
$ sudo apt-get install apache2 php5 libapache2-mod-php5
브라우저에서 https://your-pi-IP 접속해 확인. 선택적으로 FTP 서버 설치:
$ sudo apt-get install vsftpd
$ sudo nano /etc/vsftpd.conf
다음 수정:
anonymous_enable=YES → anonymous_enable=NO
local_enable=YES, write_enable=YES 주석 해제
- 맨 끝에
force_dot_files=YES 추가
서비스 재시작: $ sudo service vsftpd restart
2단계: MPEG-Streamer 설치
MPEG-Streamer로 카메라 피드 인터넷 스트리밍. 의존성 설치:
$ sudo apt-get install libjpeg8-dev imagemagick
클론, 빌드, 실행:
$ cd ~
$ mkdir tmp
$ cd tmp
$ svn co https://svn.code.sf.net/p/mjpg-streamer/code/mjpg… mjpg-streamer
$ cd mjpg-streamer/mjpg-streamer
$ make
$ cd /home/pi/code/mjpg-streamer
$ ./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so -p 8080 -w ./www"
https://pi-IP:8080 또는 https://pi-IP:8080/?action=stream에서 스트림 확인.
3단계: PHP & 파이썬과 GPIO 인터페이싱
WiringPi 설치(공식 사이트 참고). 다음 파일을 /var/www/server/에 배치:
- control.html
- control.php
- control.py
control.html 편집해 스트림 연결:
$ sudo nano /var/www/server/control.html
img src를 다음으로 교체:
img src="https://pi-IP:8080/?action=stream"
https://pi-IP/server/control.html 접속. 버튼으로 PHP 스크립트 통해 GPIO 핀 토글.
4단계: 하드웨어 연결 (파이 & 브리지 실드)
브리지 실드 모터 드라이버로 파이 GPIO에서 직접 모터 구동. 핀 매핑 예시:
- GPIO 4 → 드라이버 핀 2
- GPIO 17 → 드라이버 핀 7
- GPIO 22 → 드라이버 핀 15
- GPIO 23 → 드라이버 핀 10
실드와 파이를 섀시에 장착, 리튬이온 배터리 부착, 지정 슬롯에 Wi-Fi 동글 고정.
5단계: 선택 사항 - ESP8266 & 아두이노 우노 홈 오토메이션
가전제품 Wi-Fi 제어용으로 control.py에 ESP8266 IP와 포트 업데이트:
$ sudo nano /var/www/server/control.py
설정:
TCP_IP = "esp-ip"
TCP_PORT = esp-port
아두이노 스케치 업로드 및 Adafruit OLED 라이브러리 설치. 공유기(예: 넷기어) 포트 포워딩으로 ESP8266 포트 노출. 포트 포워딩 가이드 참조.
더 자세한 내용은 Robot Using Raspberry Pi & Bridge Shield 페이지 방문.