今回はRapiroをRaspberry Piでさらにカスタマイズしていきます!
Rapiroの拡張というよりは、機能拡張したRaspberry PiをRapiroに載せる感じです。
今回の参考サイトは以下になります↓
[Raspberry Pi搭載系]
RAPIRO に Raspberry Pi を搭載する | アンドロイドな日々
RAPIRO: The Humanoid Robot Kit for your Raspberry Pi by Shota Ishiwatari — Kickstarter
[Bluetooth&PS3コントローラで遠隔操作系]
RapiroをPS3のDUALSHOCK3で動かしてみる | Makuake(マクアケ)NOTE クラウドファンディングブログ
シリコンハウスへようこそ:RAPIRO製作日誌 ~無線化への道~ Raspberry pi 搭載編 続章 bluetooth設定
工作と小物のがらくた部屋: Raspberry Pi で Dualshock3 (Bluetooth接続ゲームコントローラ)
[カメラモジュール系]
How to install / use the Raspberry Pi Camera | The Pi Hut
Raspberry Pi メモ (23) - カメラモジュールの使い方
無線LAN対応
Webに接続できるようにしないと、外部から遠隔操作したりWebサービスとつないだりできないので、まずは無線LANに対応させます。
Raspberry PiにUSBの無線LANのドングルを繋いで色々と設定すればOKです。
詳細忘れちゃったので、「RaspberryPi LAN」とかで調べてもらえばハマること無く設定出来ると思いますw
Raspberry Piからのシリアル通信&Rapiro操作
Raspberry PiとRapiroは6極ケーブルを使って接続します。あとは単純にシリアル通信すればOKでPythonだとpyserialを使って通信可能です。
pip経由でインストールするとこんな感じ
$ sudo apt-get install python-pip
$ sudo pip install pyserial
コードはこんな感じでOK
import serial
ser = serial.Serial('/dev/ttyAMA0', 57600, timeout = 10)
ser.write("#M1"); # 前進
Raspberry Piに既にssh経由でログインできるようにしている場合は
sudo pythonから上記コードを実行して遠隔操作が出来るようになります。
ただし、このままだとシリアル接続をしてしばらく経つと、”input/output error”と表示されて
シリアル通信が出来なくなります。
これを防ぐにはRaspberry Pi側のシリアルコンソールを止める必要があるらしく
以下のコマンドで対応できます。詳細はこちらを参照してください。
$ sudo wget https://raw.githubusercontent.com/lurch/rpi-serial-console/master/rpi-serial-console \
> -O /usr/bin/rpi serial-console && \
> sudo chmod +x /usr/bin/rpi-serial-console sudo rpi-serial-console disable
$ reboot
Bluetooth対応
Bluetoothに対応するとPS3のコントローラで接続できたりiBeaconを検知できたり発信できたり遠隔操作の幅が広がります。
BluetoothのアダプタはBSHSBD04BKを使いました。
PS3のコントローラでRapiroを操作する設定に関しては以下の記事通りにやればOK。
シリコンハウスへようこそ:RAPIRO製作日誌 ~無線化への道~ Raspberry pi 搭載編 続章 bluetooth設定
工作と小物のがらくた部屋: Raspberry Pi で Dualshock3 (Bluetooth接続ゲームコントローラ)
BluetoothアダプタとPS3のペアリングをするために
一時的にお互いをUSBで接続する必要があり、PS3コントローラを接続するポート
無線LANのポート、Bluetoothのポートの3つが必要になるので
Raspberry Piに搭載されているUSBポートでは足りなくなります
USBハブ(電力不足を防ぐためにセルフパワータイプが良い)を使ってポートを増やすか
Raspberry Piの有線LANを使うようにして無線LANのアダプタを使わないようにするか
いずれかの方法を取る必要があります。
カメラモジュール
専用のカメラモジュールをRaspberry PIに取り付けて、rapiro視点で静画/動画を撮影できます。設定に関してはこちらのサイトが詳しいです。
raspberry側はraspi-configコマンドを実行してcameraをenableにすればOK。
あとはraspistillコマンドで静画を撮れます。
Rapiroに取り付けるときは天地が逆になるので
$ raspistill -o test.jpg -rot 180
とすれば正しく静画を撮ることが出来ます。
動画も取ることができるので、ちょっとした監視ロボも作れちゃいます。
その他
Rapiroに搭載する場合はRaspberry PiはArduinoから電力を供給してもらうことになります。よってカスタマイズすればするほど、Raspberry Pi自体の電力も下がってくるので
電力低下によりRaspberry Pi自体がうまく動かなくなることもあるらしいです。
USB経由のカスタマイズであればセルフパワータイプのUSBハブを使って電力をカバーするとか
無線LANは有線LAN+無線LANコンバータにして消費電力を減らす等の工夫が必要です。
据え置き型ロボであれば有線LANでも良いですね。
無線LAN、Bluetooth、カメラモジュール搭載のRapiroはこんな感じ↓
USB部分が後頭部から飛び出します↑
額部分にカメラが埋め込まれます↓