猟犬ポインターのロボットを作る
![IMG_2948a2a_j.jpg](/proxy/?url=https://content.instructables.com/F0K/PIH5/JFMTC1J9/F0KPIH5JFMTC1J9.jpg&filename=IMG_2948a2a_j.jpg)
本サイトに投稿した「Pointer Robot With Raspberry Pi and Arduino」の日本語版です(現状は骨子のみですが...)。
【動画 1】概要
:
英語版(*) の方をChromeやFirefox等のブラウザで開いてGoogle翻訳すると、実用上ほぼ問題ない日本語で読むことができます。今後、こちらの日本語版の方も完成に向けて進めて行く予定ですが、お急ぎの方は英語版の方をご覧ください。
なお、英語版は「マウクロ-コントローラ・コンテスト」にエントリーしてます。気に入っていただけたら、記事最後の「Vote Now!」をクリックして投票頂けると幸いです。
(*) 英語版はこちら (This is shared in English.)
:
ラズベリーパイとArduinoを補完活用する
![IMG_2962t1.jpg](/proxy/?url=https://content.instructables.com/F57/WVUH/JFBMOJYY/F57WVUHJFBMOJYY.jpg&filename=IMG_2962t1.jpg)
誤解を恐れず言うと、Raspberry Piはマイクロ・コントローラーというより小型パソコン。
苦手な作業もある。
例えばPWMを使ったサーボの制御は面倒だし、音声処理を並列して行う場合は更に困難。
Arduinoとの補完的な利用で自由度が広がる
- ラズベリーパイ:画像や音声のリアルタイム処理のように多くのリソースを要する作業
- Arduino:ラズベリーパイの作業結果を受けて周辺機器を制御
:
ラズベリーパイをセットアップする
![IMG_3185_t2.jpg](/proxy/?url=https://content.instructables.com/FOZ/WNUF/JFSIYTVU/FOZWNUFJFSIYTVU.jpg&filename=IMG_3185_t2.jpg)
工作の再現性を確保するために、OS(Raspbian)のクリーン・インストールから作業を開始する
:
カメラとマイクを準備する
![IMG_3230_m.jpg](/proxy/?url=https://content.instructables.com/FJC/9DBS/JFMT6D6P/FJC9DBSJFMT6D6P.jpg&filename=IMG_3230_m.jpg)
安価で十分な性能を持つロジクール製のマイク付きのUSBカメラ「C270」を使う。
:
OpenCVをインストールしてカラー・トラッキングを試す
![colorTrack_sample.jpg](/proxy/?url=https://content.instructables.com/FPO/Z954/JFMT6DDQ/FPOZ954JFMT6DDQ.jpg&filename=colorTrack_sample.jpg)
まず画像解析ソフトの「OpenCV」をラズベリーパイにインストールする。
後述の音声解析ソフトのインストールに比べるとずっと簡単。
【動画 2】カラー・トラッキング
:
サンプル・ファイルを2つダウンロードする。
- 単純なプレビュー画面
- カラー・トラックキング機能付き
それぞれ実行する。
:
小型サーボでUSBカメラの2軸雲台を作る
![IMG_3187.JPG](/proxy/?url=https://content.instructables.com/FQD/V0M1/JFMT6D66/FQDV0M1JFMT6D66.jpg&filename=IMG_3187.JPG)
![IMG_3186.JPG](/proxy/?url=https://content.instructables.com/FG2/B77F/JFMT6D5C/FG2B77FJFMT6D5C.jpg&filename=IMG_3186.JPG)
![IMG_3197.JPG](/proxy/?url=https://content.instructables.com/FW3/OEH4/JFMT6D6M/FW3OEH4JFMT6D6M.jpg&filename=IMG_3197.JPG)
安価な小型サーボ「SG90」を2つ使って2軸のカメラ雲台を作る。
特別なフレームは使わず、付属のサーボ・ホーンとカメラを下記の材料で基盤に接続。
- 両面テープ(もしくは接着剤)
- 輪ゴム
- 結束バンド(もしくは針金)
:
Arduinoで2軸雲台を制御する
![pointerRobot_1b.jpg](/proxy/?url=https://content.instructables.com/FX4/GZVG/JF34G6PP/FX4GZVGJF34G6PP.jpg&filename=pointerRobot_1b.jpg)
添付の配線図を見て配線を行う。
Arduinoのサンプル・スケッチをダウンロードして、Arduino NANO(もしくは安価な互換品)にアップロードする。
動作のテストを行う。
:
言語解析ソフト「Julius」をインストールする
![IMG_3225_m.jpg](/proxy/?url=https://content.instructables.com/FNW/8ZK8/JFMT6GST/FNW8ZK8JFMT6GST.jpg&filename=IMG_3225_m.jpg)
日本語の言語解析ソフトJuliusをラズベリーパイにインストールする。
作業手順は講談社の「実例で学ぶRaspberry Pi電子工作」(金丸隆志 著)の補足解説サイトに準じる。
:
Raspberry Piの音声入力を設定する
![p2_t_m.jpg](/proxy/?url=https://content.instructables.com/F1G/PXFK/JFMT6HI9/F1GPXFKJFMT6HI9.jpg&filename=p2_t_m.jpg)
ホーム・ディレクトリの「.bashrc」を編集する。
音声設定ファイルをダウンロードしてホーム・ディレクトリにコピーする。
コピーしたファイルの名称を「.asoundrc」に変更する。
「Alsamixer」でサウンドカードの設定を確認、変更する。
:
Downloads
辞書ファイルをダウンロードして試してみる
![commands.jpg](/proxy/?url=https://content.instructables.com/FVE/U7UL/JFIITFB2/FVEU7ULJFIITFB2.jpg&filename=commands.jpg)
ポインター・ロボット制御用の辞書ファイルをダウンロードして内容を確認する。
Juliusの聞き取り設定ファイルを書き換えて、ダウンロードした辞書ファイルを参照するよう修正する。
聞き取りを試してみる。
【動画 3】Juliusによる音声認識の試行
:
Downloads
配線を完成する
![pointerRobot_2.jpg](/proxy/?url=https://content.instructables.com/FMR/IJNL/JFSIYTVV/FMRIJNLJFSIYTVV.jpg&filename=pointerRobot_2.jpg)
![L298Pinout_PR.jpg](/proxy/?url=https://content.instructables.com/FSC/LK26/JF34FB5R/FSCLK26JF34FB5R.jpg&filename=L298Pinout_PR.jpg)
![IMG_0157.JPG](/proxy/?url=https://content.instructables.com/F0L/X34R/J6MGFV6R/F0LX34RJ6MGFV6R.jpg&filename=IMG_0157.JPG)
ロボットの胴体基盤にモータ、ギアボックス、車輪を取り付けて配線を完成させる。
ラズベリーパイのVNC(リモート・デスクトップ機能)を有効化して不要なケーブルを外す。
:
ロボットを起動する
![p4_t.jpg](/proxy/?url=https://content.instructables.com/FNH/SBRG/JFMT7Y1T/FNHSBRGJFMT7Y1T.jpg&filename=p4_t.jpg)
新たなサンプル・ファイルを2つダウンロードしてホーム・ディレクトリに移す。
ロボットを起動して、音声制御に従うように準備する。
:
ロボットを音声で制御する
![pd_t_m.jpg](/proxy/?url=https://content.instructables.com/FCV/96Z8/JFMT7YHV/FCV96Z8JFMT7YHV.jpg&filename=pd_t_m.jpg)
ロボットを音声指示で制御する。
【動画 4】音声指示でロボットを動かす
:
ロボットを猟犬ポインターにする
![IMG_2949_m.jpg](/proxy/?url=https://content.instructables.com/FH2/RKW2/JFMT6D3J/FH2RKW2JFMT6D3J.jpg&filename=IMG_2949_m.jpg)
自動追尾用のプログラムを追加実行する。
音声指示 ⇔ 自動追尾のシームレスな実行を確認する。
【動画 5】音声指示で獲物を自動追尾させる
:
応用を考える
![IMG_3259_m4.jpg](/proxy/?url=https://content.instructables.com/FXX/9VEH/JFUAFDIW/FXX9VEHJFUAFDIW.jpg&filename=IMG_3259_m4.jpg)
応用
- カメラを本来の横向き(ランドスケープ)に取り付ける
- ターゲットを音声指示で切り替える
- ロボットをポインター犬から愛玩犬に変更する
- ロボットをいたずら好きな猫に変更する
- ロボットに顔を付ける
- 機材を学研のミニビーストに移植する
【動画 6】改善と発展
:
部品リスト
![IMG_3221_t_m3.jpg](/proxy/?url=https://content.instructables.com/FXW/0OJ0/JFMT6D6N/FXW0OJ0JFMT6D6N.jpg&filename=IMG_3221_t_m3.jpg)
材料
- ラズベリーパイ 3:Pi Zeroはうまく動作しない
- マイクロSDカード:16GB(8GBでは容量不足)
- Arduino:NANO(もしくは同等品)
- レベルコンバータ:Arduino 5VとPi 3.3Vを仲介
- マイク付きUSBカメラ:ここではLogitech C270を使用
- サーボモータ:SG90(2個)
- モータドライバ:L298N
- DCモータ:下記ギアボックスに2個付属(ノイズ抑制コンデンサの取付けが望ましい)
- ギアボックス:タミヤ製のダブルギアボックス(減速比は344.2:1)
- ホイール:タミヤ製のナロータイヤセット
- キャスタホイール:ロボットの後部に取り付ける3つ目の車輪
- プレート:ロボットの躯体(タミヤ製のユニバーサルプレート(大))
- バッテリ(1):DC5V(Pi 3とArduinoに十分な電流を供給)
- バッテリ(2):DC5V(2つのDCモーターと2つのサーボ用に電流を供給)
- ジャンパーケーブル
- ブレッドボード
- USBケーブル:電源用
- HDMIケーブル:ラズベリーパイのセットアップ用
- LANケーブル:ラズベリーパイのセットアップ用
- オレンジ色のボール:ターゲット