robo8080のブログ

ロボット製作や電子工作など。

PlayStation Vitaで操縦するRasberry Pi搭載ロボットを作ってみた。

2013年06月09日 | Raspberry Pi

1年ほど前に”mbed + Wi-Fiカメラ”で、”PS Vitaで操縦するロボット”を作った。

PS Vitaで操縦するロボットを作ってみた。 

今回はRaspberry Piの勉強のために、”Raspberry Pi + USBカメラ”で同じものを作ってみることにした。

 

 

Raspberry Piには、VNCサーバを入れ、無線LAN経由で操作できるようにしてあるので、キーボード、マウス、ディスプレイは接続していない。 

ロボットの車体は前回のものを流用することにした。

PS Vita側のソフトも前回のものをベースにする。

(PS Vitaのアプリを作るのにはPSMパブリッシャー・ライセンスが必要だが、現在は期間限定で無料)

新しく作る必要があるのは、

 ・Raspberry PiでRCサーボモータの制御

 ・PS VitaとRaspberry Pi間のTCP通信

 ・Raspberry PiからUSBカメラ映像のmjpegストリーミング配信

 ・PS Vitaでmjpegストリーミング映像表示(前回は静止画を連続して読みだして表示していた)

になる。

 

【1】Raspberry PiでRCサーボモータを制御 

ここを参考にさせてもらった。簡単だった。

Raspberry Pi OpenCV Pan & Tilt Face Tracker

・Raspberry PiでRCサーボを動かすドライバー ServoBlaster

動作確認はコマンドラインから

 echo 0=120 > /dev/servoblaster

  

 

【2】PS VitaとRaspberry Pi間のTCP通信

ここの、”TCPとシリアルポート間で通信を行うプログラム”を参考にさせてもらった。

まず、TCPとシリアルポート間の通信は問題なく動いた。 

次は、PS VitaからRaspberry PiにつないだRCサーボをTCP経由で動かしてみる。

シリアルポート”/dev/ttyAMA0”の代わりに、サーボ制御の”/dev/servoblaster”を使う用に改造した。

(ただし、コマンドを書き込んだ後、flush()する必要がある。)

これで、PS VitaからTCP経由でRaspberry PiにつないだRCサーボを動かせるようになった。

PS VitaからTCP接続して”0=120”と送信すれば、Raspberry PiのRCサーボが動く。

 

 

PS Vita側のプログラムは以前作ったものを改造した。

とりあえず、PS VitaにはWi-FiカメラAi-Ballの画像を表示している。

 

動画はこちら。 

PS Vita + Raspberry Pi + RC Servo + Ai-Ballの実験

 

 

製作中のRaspberry Pi搭載ロボットは、基本的にはこれに走行用回転サーボを追加しただけ。 

 

 

【3】Raspberry PiからUSBカメラ映像のmjpegストリーミング

ここを参考にさせてもらった。

起動時に”failed to start”になるが、一応動いているようだ。

Raspberry Pi から Android へ Web Cam 映像ストリーミング

 

【4】PS Vitaでmjpegストリーミング映像表示 

ここを参考にさせてもらった。ただし、遅れが大きいので改良の余地あり。 

DCamViewer for Playstation Vita

 

 

改良して遅れはほとんど気にならない程度になった。これならロボットに搭載できそうだ。

改良点 : このように修正して通信効率を上げた。

// val = socket.Receive(readBuffer,data_ptr,512,SocketFlags.None);
   val = socket.Receive(readBuffer,data_ptr,readBuffer.Length - data_ptr,SocketFlags.None);   

動画はこちら。

Raspberry Pi から PS Vita へ Web Cam Motion Jpeg streaming

 

 

【5】ロボット側の回路

ロボット側の回路はシンプル。PWM RCサーボを4個つなぐだけ。

カメラのパンチルト用2個と車輪用の360°回転タイプ2個。

ここを参考にさせてもらった。(RCサーボの電源はRaspberry Piからとらずに、別の電源を付けている)

Raspberry Pi OpenCV Pan & Tilt Face Tracker

360°回転タイプのサーボ、私は買ったが、普通のRCサーボを改造して作ることもできるようだ。

参考 : 連続回転サーボの作り方: 花岡ちゃんに花束を 

   

電源は、Rasberry Pi用のモバイルバッテリーとRCサーボ用のエネループ4本。

  

 

【6】完成 

これが完成したPlayStation Vitaで操縦するRasberry Pi搭載ロボット。

搭載したUSBカメラのストリーミング映像をPS Vitaに表示できる。

ちなみに、USBカメラを使わずWi-FiカメラAi-Ballからのmjpegストリーミング映像でも表示できる。

 

動画はこちら。 

PlayStation Vitaで操縦するRasberry Pi搭載ロボット。

 

 

【7】その後 

ロボットが実験中に机から転落して大破してしまった!((((;゜Д゜)))

 

 

でも...主要なバーツは両面テープで固定していただけなので、3分後には全面復旧。(­^^)/

 

-以上― 


関連する記事

Raspberry Piを使ってみた。

Raspberry Pi に USB Camera をつないでいろいろやってみた。

PS Vitaで操縦するロボットを作ってみた。

参考リンク

AndroidでWifiカメラからのMJPEGストリームを表示する

 

 


最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。