BLE Bot 9000: 블루투스 지원 아두이노 로봇 키트
부품 및 소모품
| 부품 | 수량 |
| 아두이노 101 | 1 |
| Adafruit 모터/스테퍼/서보 실드 v2.3 키트 | 1 |
| SparkFun 멀티 섀시 4WD 키트 (기본형) | 1 |
| Adafruit 6x AA 배터리 홀더 (5.5mm/2.1mm 플러그) | 1 |
| 5x AA 배터리 홀더 (로봇 키트 포함) | 1 |
| 컴포넌트 팩 (스탠드오프, 나사, 와이어, 벨크로 등) | 1 |
| AA 배터리 | 11개 |
필요 도구
앱 및 온라인 서비스
- 아두이노 IDE
- Johnny-Five (Node.js 로봇 플랫폼)
- Arduino Firmata
프로젝트 소개
아두이노 101의 내장 BLE 칩을 이용해 노트북에서 4륜 로봇을 제어합니다. 컴퓨터가 제어를 맡으면 컴퓨터 비전, 자율 주행, PID 제어 등 프로세서 집약적 기능을 구현할 수 있습니다.
주의사항
- 아두이노 손상 방지: 모터 실드의 VIN 점퍼를 반드시 제거하세요. (전원 섹션 참조)
- 일부 키트에는 6x AA 배터리 홀더와 배럴 잭이 누락되어 있을 수 있습니다.
- 탱크 키트 변형은 전원 문제(5x AA로 트랙 구동 부족)가 있습니다.
하드웨어 조립
- 아두이노 101 장착: 컴포넌트 키트의 스탠드오프로 상단 플레이트에 고정 후 섀시에 결합. 스탠드오프 없으면 절연 후 부착.
- 모터 실드 조립: 헤더 핀 납땜 필요. 암 헤더(컴포넌트 키트) 또는 수 헤더(실드 동봉) 사용. Adafruit 납땜 가이드 참조. 블루투스 로고 옆 6핀 그리드 암 헤더는 마지막에 납땜.
- 실드 장착: 납땜된 헤더로 아두이노 101 위에 결합.
- 모터 배선: 점퍼 와이어로 모터를 실드의 출력 단자 블록에 연결. 황색선=양극(다이어그램), 적색선=양극(실제 모터). 녹색선=음극(다이어그램), 흑색선=음극(실제 모터).
- VIN 점퍼 제거 확인 후 5x AA 배터리 팩을 실드 전원 입력 단자에 연결 (극성 주의).
- 6x AA 배터리 팩: 배럴 잭에 납땜 (적색→센터 핀). 벨크로로 로봇 후면에 부착 후 아두이노 101에 연결.
소프트웨어 개요
- Firmata 서버 (아두이노): 컴퓨터가 아두이노 핀에 접근해 모터 실드 제어. 양방향 통신으로 센서 데이터 수신 가능.
- Firmata 클라이언트 (컴퓨터): Node.js 기반 Johnny-Five 사용. Firmata, Adafruit 모터 실드 설정 포함.
- BLE 통신:
ble-serial 라이브러리로 BLE 시리얼 연결.
- 키보드 입력:
keypress 라이브러리로 키 입력 읽기.
아두이노 스케치 업로드
- 아두이노 IDE 설치 및 'Intel Curie Boards' 패키지 추가 (보드 매니저).
- 아두이노 101 연결, 보드/포트 선택.
- Adafruit Motor Shield v2 라이브러리 설치 (라이브러리 매니저).
- 모터 테스트용 스케치(a101_motortest)로 먼저 확인. 업로드 즉시 바퀴가 회전하므로 주의!
- 파일 → 예제 → Firmata → StandardFirmataBLE 업로드. 성공 시 "Sketch starting in 5 seconds." 메시지 출력.
파이썬 2.7.13 설치
bluetooth-hci-socket 컴파일에 필요. python.org에서 다운로드.
펌타타 클라이언트 실행 (Node.js)
- Node.js 설치 (nodejs.org).
- 프로젝트 폴더 생성 후 관리자 권한 명령 프롬프트에서:
npm install --global --production windows-build-tools # Windows 10만
npm install johnny-five keypress ble-serial bluetooth-hci-socket
- 제어 코드 다운로드하여
control.js 폴더에 배치.
로봇 제어 실행
두 배터리 팩 모두 연결 후 프로젝트 폴더에서:
node control.js
성공 시 Connected [object Object] 메시지 출력. 키보드 W(전진), S(후진), A(좌회전), D(우회전)로 제어.
블링크(Blynk) 버전 대안
Node.js/Firmata가 불안정하면 Blynk 라이브러리 사용. 모바일 앱으로 제어 가능.
- Blynk 라이브러리 설치 (아두이노 라이브러리 매니저, v0.4.7).
- 스케치 업로드.
- 블링크 앱에서 인터페이스 구성.
알려진 문제
- 누락 부품: 6x AA 홀더/배럴 잭, 탱크 키트는 모터 2개만 포함.
- 탱크 키트 전원 부족: 밴드 제거 또는 2S 리포 배터리(7.4V) 사용, 인텔 USB 배터리 뱅크로 101 전원 공급.
- BLE 호환성: 블루투스 4.0+, 윈도우 8.1+ 필요. 드라이버/하드웨어 차이로 문제 발생 가능. 스마트폰이 더 호환성 좋음.
- 아두이노 101 BLE는 전원 불안정 시 불안정. 5V 2A 이상 USB 전원 권장.
- 나사 호환성: 컴포넌트 키트 나사 헤드가 101에 너무 큼. 로봇 키트 은색 나사로 교체 또는 벨크로 사용.
- Firmata 라이브러리 2.5.3 이상 필요 (이하 버전은 Firmata BLE 스케치 미포함).
코드
회로도
섀시 조립 PDF 매뉴얼 참조