Raspberry Pi 2でロボット製作(ロボット組み立て・アプリ編)

f:id:karaage:20150613105456j:plain:w640

ロボット製作

 面倒くさくて色々あって間が空いてしまいました。Raspberry Piでつくるロボットです。初めての方は、まず以下から読むか、見なかったことにしておいてください。

karaage.hatenadiary.jp

karaage.hatenadiary.jp

ロボット動画

 PV的な動画です。こんな感じのものができました。

ロボットハード製作・組み立て

 基本的には、以下の本を参照ください。

 後は、以下の写真をみながらなんとなく作ってください。一部は自分のオリジナルな箇所があるので、その点を中心に説明します。

f:id:karaage:20150510193917j:plain:w640

f:id:karaage:20150510194713j:plain:w640

f:id:karaage:20150510193702j:plain:w640

f:id:karaage:20150510193729j:plain:w640

 全部見たい方は続きを読むをクリック


f:id:karaage:20150510193640j:plain:w640

f:id:karaage:20150510193608j:plain:w640

f:id:karaage:20150510193506j:plain:w640

f:id:karaage:20150510192156j:plain:w640

f:id:karaage:20150510191643j:plain:w640

f:id:karaage:20150510185913j:plain:w640

f:id:karaage:20150510193946j:plain:w640

f:id:karaage:20150510194337j:plain:w640

ハード製作・組み立て注意点

 注意点のメモ

ポート割り付け

 以下のような感じ

f:id:karaage:20150831223009j:plain:w640

モータドライバ

 TA7291A 推奨回路通りにつくりましょう。配線以外は4pinと8pinに10kΩの抵抗を繋ぐだけ

ポケット・ミク基板

f:id:karaage:20150429124934j:plain:w640

 まずはポケット・ミクを分解しましょう。キーボードを外してしまうと、回路がオープンになり正しく動作しなくなるので10kΩくらいの抵抗で終端してやる必要があります。写真の通り抵抗を半田付けしましょう。

サーボモータ配線

 配線は、以下のとおり。説明書も何もないですが、そういうものらしいです。

黒:GND
赤:Vcc(+電源)
オレンジ:信号

 電源は、Raspberry Pi2の5Vからとってもよいのですが、モータの定格が4.8Vで若干オーバなのと、モータだから電源分けた方がよいかなと思い、念のため電池からとりました。多分Raspberry Pi2の5Vからとっても全然大丈夫と思います。
 単3電池4つ直列だと電圧オーバなので、電池ボックスの3つ直列した箇所から半田付けで配線を引き出して接続しました。

f:id:karaage:20150510193826j:plain:w640
 こんな感じね

ロボットアプリインストール

 アプリをインストールしましょう。

WebIOPi停止

 まずは「Raspberry Pi 2でロボット製作(環境設定編)」で自動起動しているWebIOPiを、以下のコマンドで一旦停止してやりましょう。

$ sudo /etc/init.d/webiopi stop

 ただ、なぜかこれでちゃんと停止してくれないことが多いです(自分は一度も停止したことない)。以下コマンドでちゃんと停止したか確認しましょう。

$ ps aux | grep webiopi

 WebIOPiのプロセスっぽいものが走っていたら、以下のようにkillコマンドで直接プロセスを殺してやりましょう。プロセスIDはps auxコマンドで出てくる一番最初の数字です。

$ sudo kill -9 プロセスID

アプリダウンロード

 gitというバージョン管理ソフトでアプリをダウンロードします。

$ cd /usr/share/webiopi/htdocs
$ git clone https://github.com/karaage0703/m2_robot.git m2

 WebIOPiの設定を変更して、ダウンロードしたアプリを起動するようにします。

$ sudo vi /etc/webiopi/config

 以下の行を変更します。

変更前

#myscript = /home/pi/webiopi/examples/scripts/macros/script.py


変更後

myscript = /usr/share/webiopi/htdocs/m2/script.py

 プログラムの中身が見たい方は以下参照ください

WebIOPi再起動

$ sudo /etc/init.d/webiopi start

ロボット操作方法

 ロボットが起動した状態で、PCやスマホのブラウザでアクセスしましょう。まずはロボットを起動させてIPアドレスを確認しましょう。

ロボットへのアクセス

$ ifconfig

 以下は192.168.0.100のときの例です。

 ブラウザでロボットのIPアドレス入力してアクセス

http://192.168.0.100:8000/m2/

 認証画面がでてくるので、WebIOPiのユーザー名、パスワードを入力すればロボットにアクセスできます。

ホスト名でアクセス

 IPアドレス毎回調べるの面倒くさい、ダサいですね。Avahiを使うとホスト名でもアクセスできます。まずは以下でAvahiインストール

$ sudo apt-get update
$ sudo apt-get install avahi-daemon

 これでRaspberry Piのホスト名が例えばrobot だったら以下のアドレスでアクセスできます。

http://robot.local:8000/m2

 Macなら基本的にはそのままアクセスできます。WindowsだとiTunesを入れないとダメかもしれません。理由は大人の事情ってやつです。

ロボット操作画面

 操作方法は以下の通りです。

f:id:karaage:20150830222232j:plain:w480

 矢印で移動する他、現在実装されているアクションは以下です。

hello: ロボットが挨拶
shutter: 写真をとる
sing: 歌を歌う

まとめ

 ようやくロボット完成しました。ほんとは色々機能追加したりしたいところですが、なかなか新しい発想とモチベーションが湧かず停滞しています。やっぱり自律走行かな。いずれにせよ、次はもっとヤバい感じのロボット作ろうと思います。形にはなったのでこのシリーズはこれで一区切り。

参考サイト

 似たようなロボットの製作記事。丁寧なのでこのブログよりこっち見た方がよいと思います。

関連記事