BLE Bot 9000 - Arduino 101で作るBluetooth制御4WDロボットキット
必要な部品と材料
| Arduino 101(内蔵BLE搭載) | ×1 |
| Adafruit Motor/Stepper/Servo Shield v2.3キット | ×1 |
| SparkFun Multi-Chassis 4WDキット(ベーシック) | ×1 |
| Adafruit 6×AA電池ホルダー(5.5/2.1mmプラグ付き) | ×1 |
| 5×AA電池ホルダー(ロボットキット付属) | ×1 |
| コンポーネントパック(スタンドオフ、ネジ、配線、ベルクロ、単三電池等) | ×1 |
| 単三電池 | ×11本 |
必要な工具
- はんだごて
- はんだ
- プラスドライバー(SparkFunキット付属)
使用アプリとオンラインサービス
- Arduino IDE
- Johnny-Five(Node.jsロボティクスフレームワーク)
- Arduino Firmata
プロジェクト概要
重要な注意事項
更新情報(2016/12/5): 右側の「Known Issues」を必ず確認してください。キットのバリエーションによって既知の問題や欠品があります。
Arduinoを破損させないために: モーターシールドのVINジャンパーは必ず外してから作業を開始してください。詳細は「電源供給」を参照。
イントロダクション
Arduino 101の内蔵BLEチップを使用し、ラップトップから小型4WDロボットを制御します。制御をPC側に移すことで、コンピュータビジョン、自律走行、高度なフィードバック制御(PID)など、プロセッサー集約型の制御手法が可能になります。
ハードウェア組み立て
- シャーシ組み立て: 付属説明書に従って組み立て。Arduino 101はスタンドオフでトッププレートに取り付けてからシャーシに固定。
- モーターシールド組み立て: ヘッダーピンのはんだ付けが必要。女性ヘッダー付属の場合はそれを使用。Bluetoothロゴ横の6ピングリッド女性ヘッダーは最後に取り付け(Arduino 101に挿してからシールドを載せ、男性側を半田付け)。
- モーター配線: ジャンパーワイヤーでモーターをシールドの出力端子に接続。黄色=正極(実モーターは赤)、緑=負極(実モーターは黒)。
- VINジャンパー確認: 必ず外してください。
- 電源接続: 5本用AA電池ボックスをモーターシールドの電源端子に接続(極性注意)。
- Arduino用電源: 6本用AA電池ホルダーにバレルジャックを半田付け(赤=センター、黒=アウター)、Arduino 101の電源ジャックに接続。
- バッテリー固定: 6本用ホルダーをベルクロでロボット後部に固定。
ソフトウェア概要
制御システムは2つの主要部分で構成:
- Firmataサーバースケッチ(Arduino 101側): PCからArduinoピンにアクセス可能にし、モーターシールド経由でモーター制御。双方向通信対応でセンサーデータもPCに送信可能。
- Firmataクライアント(PC側): Johnny-Five(Node.jsベースのロボティクス/IoTプラットフォーム)のFirmataクライアントを使用。Adafruit Motor Shield設定も内蔵。
接続にはble-serial(Node.js BLEシリアルライブラリ)、キーボード入力にはkeypressを使用。
Arduinoスケッチの書き込み
- Arduino IDEをインストール
- Boards Managerで「Intel Curie Boards」をインストール
- Arduino 101をUSB接続、ボードとポートを選択
- ライブラリマネージャーで「Adafruit Motor Shield v2」をインストール
- テスト用スケッチ(a101_motortest)でモーター動作確認(書き込み直後からホイールが回転します!)
- File → Examples → Firmata → StandardFirmataBLE を書き込み
PC側環境構築
- Python 2.7.13をインストール(
bluetooth-hci-socketコンパイル用) - Node.jsをインストール
- プロジェクトフォルダ作成し、管理者権限でNode.jsコマンドプロンプトを開く
- Windows 10の場合:
npm install --global --production windows-build-tools - 必要パッケージインストール:
npm install johnny-five npm install keypress npm install ble-serial npm install bluetooth-hci-socket - 制御コードをGitHub(Firmata-BLE-Bot)から取得
実行方法
両バッテリーを接続し、プロジェクトフォルダで:
node control.js
接続成功時: 1476382259569 Connected [object Object]
操作キー: W 前進、S 後退、A 左旋回、D 右旋回
Blynk版(代替制御方法)
Node.js/Firmataがうまくいかない場合、Blynkライブラリでスマホから制御可能。
- BlynkライブラリをArduino Library Managerからインストール(v0.4.7時点)
- スケッチ(a101_blynk_base)を書き込み
- Blynkアプリでインターフェース作成
既知の問題
- 欠品: 6×AAホルダーとバレルジャック、タンクキットはモーター2個のみ
- タンクキットの電源問題: 付属電池ボックスでは駆動不足。バンド除去、2S LiPo(7.4V)使用、またはIntel USBバッテリーでArduino 101給電が対策
- Bluetooth/BLE問題: Bluetooth 4.0+、Windows 8.1+が必要。ドライバー/ハードウェア依存で動作しない場合あり。スマホの方が相性良好
- Arduino 101への給電不足: BLEが不安定になるため、5V 2A以上のUSB電源推奨
- ネジ互換性: コンポーネントキットのネジ頭が大きすぎる。ロボットキットの銀ネジと入れ替え、またはベルクロで固定
- ライブラリバージョン: Firmata 2.5.3以上必須(それ未満はStandardFirmataBLEなし)
ワークショップ用短縮リンク
- このチュートリアル: bit.ly/blebot1
- DCモーターテストスクリプト: bit.ly/blebot2
- Blynkスマホ制御: bit.ly/blebot3
コード
- タッチスクリーン制御版(Expressサーバー使用、上級者向け): https://github.com/monofuel/blebot9000
- ロボット制御コード: https://github.com/martinkronberg/Firmata-BLE-Bot
回路図
シャーシ組み立てPDF
製造プロセス
- 高度血糖測定キット:設計、歴史、血糖モニタリングの未来
- トイモデルキットの歴史、設計、未来:古代の起源から現代製造まで
- Raspberry Pi 3スターターキット セットアップガイド:組み立て、OSインストール、リモートアクセス
- Hologram Novaスターターキット:Raspberry Piセットアップとセンサー統合の包括的ガイド
- MonkMakes RRB2 キットで自作 Raspberry Pi ロボット – 詳細ガイド
- Intellisaurus:歩くスマート恐竜ロボットを組み立てよう
- 品質管理成功のためのISO 9000必須知識8選
- iCOMOXオープンソースプラットフォーム、インダストリー4.0の予知保全を推進
- ルネサス RE01評価キット、SOTB技術でエナジーハーベスティング IoTソリューションを実現
- Mini-CircuitsとVayyar、4Dミリ波イメージング開発キット「VTRIG-74」を発表
- RSL10 Mesh開発キット、超低消費電力BLEメッシュ ネットワークを強化