Introduction: 猟犬ポインターのロボットを作る

本サイトに投稿した「Pointer Robot With Raspberry Pi and Arduino」の日本語版です(現状は骨子のみですが...)。

【動画 1】概要

:

英語版(*) の方をChromeやFirefox等のブラウザで開いてGoogle翻訳すると、実用上ほぼ問題ない日本語で読むことができます。今後、こちらの日本語版の方も完成に向けて進めて行く予定ですが、お急ぎの方は英語版の方をご覧ください。

なお、英語版は「マウクロ-コントローラ・コンテスト」にエントリーしてます。気に入っていただけたら、記事最後の「Vote Now!」をクリックして投票頂けると幸いです。

(*) 英語版はこちら (This is shared in English.)

:

Step 1: ラズベリーパイとArduinoを補完活用する

誤解を恐れず言うと、Raspberry Piはマイクロ・コントローラーというより小型パソコン。

苦手な作業もある。

例えばPWMを使ったサーボの制御は面倒だし、音声処理を並列して行う場合は更に困難。

Arduinoとの補完的な利用で自由度が広がる

  • ラズベリーパイ:画像や音声のリアルタイム処理のように多くのリソースを要する作業
  • Arduino:ラズベリーパイの作業結果を受けて周辺機器を制御

:

Step 2: ラズベリーパイをセットアップする

工作の再現性を確保するために、OS(Raspbian)のクリーン・インストールから作業を開始する

:

Step 3: カメラとマイクを準備する

安価で十分な性能を持つロジクール製のマイク付きのUSBカメラ「C270」を使う。

:

Step 4: OpenCVをインストールしてカラー・トラッキングを試す

まず画像解析ソフトの「OpenCV」をラズベリーパイにインストールする。

後述の音声解析ソフトのインストールに比べるとずっと簡単。

【動画 2】カラー・トラッキング

:

サンプル・ファイルを2つダウンロードする。

  • 単純なプレビュー画面
  • カラー・トラックキング機能付き

それぞれ実行する。

:

Step 5: 小型サーボでUSBカメラの2軸雲台を作る

安価な小型サーボ「SG90」を2つ使って2軸のカメラ雲台を作る。

特別なフレームは使わず、付属のサーボ・ホーンとカメラを下記の材料で基盤に接続。

  • 両面テープ(もしくは接着剤)
  • 輪ゴム
  • 結束バンド(もしくは針金)

:

Step 6: Arduinoで2軸雲台を制御する

添付の配線図を見て配線を行う。

Arduinoのサンプル・スケッチをダウンロードして、Arduino NANO(もしくは安価な互換品)にアップロードする。

動作のテストを行う。

:

Step 7: 言語解析ソフト「Julius」をインストールする

日本語の言語解析ソフトJuliusをラズベリーパイにインストールする。

作業手順は講談社の「実例で学ぶRaspberry Pi電子工作」(金丸隆志 著)の補足解説サイトに準じる。

:

Step 8: Raspberry Piの音声入力を設定する

ホーム・ディレクトリの「.bashrc」を編集する。

音声設定ファイルをダウンロードしてホーム・ディレクトリにコピーする。

コピーしたファイルの名称を「.asoundrc」に変更する。

「Alsamixer」でサウンドカードの設定を確認、変更する。

:

Step 9: 辞書ファイルをダウンロードして試してみる

ポインター・ロボット制御用の辞書ファイルをダウンロードして内容を確認する。

Juliusの聞き取り設定ファイルを書き換えて、ダウンロードした辞書ファイルを参照するよう修正する。

聞き取りを試してみる。

【動画 3】Juliusによる音声認識の試行

:

Step 10: 配線を完成する

ロボットの胴体基盤にモータ、ギアボックス、車輪を取り付けて配線を完成させる。

ラズベリーパイのVNC(リモート・デスクトップ機能)を有効化して不要なケーブルを外す。

:

Step 11: ロボットを起動する

新たなサンプル・ファイルを2つダウンロードしてホーム・ディレクトリに移す。

ロボットを起動して、音声制御に従うように準備する。

:

Step 12: ロボットを音声で制御する

ロボットを音声指示で制御する。

【動画 4】音声指示でロボットを動かす

:

Step 13: ロボットを猟犬ポインターにする

自動追尾用のプログラムを追加実行する。

音声指示 ⇔ 自動追尾のシームレスな実行を確認する。

【動画 5】音声指示で獲物を自動追尾させる

:

Step 14: 応用を考える

応用

  • カメラを本来の横向き(ランドスケープ)に取り付ける
  • ターゲットを音声指示で切り替える
  • ロボットをポインター犬から愛玩犬に変更する
  • ロボットをいたずら好きな猫に変更する
  • ロボットに顔を付ける
  • 機材を学研のミニビーストに移植する

【動画 6】改善と発展

:

Step 15: 部品リスト

材料

  • ラズベリーパイ 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ケーブル:ラズベリーパイのセットアップ用
  • オレンジ色のボール:ターゲット