エンジニア『まつ』 の戦いの記録

エンジニア『まつ』 の戦いの記録を発信する。

Raspberry Pi 3 で WiFiラジコン(5) 〜 Webカメラ + 完成 + デモ

今回で完成です。(Webカメラをつけてデモ走行します)

最終的な完成形

完成形は以下のイメージです。

  • Raspberry Pi 上で Node.js の Express を利用してサーバーを作成します。
  • iPhone から WiFi を通じて、ブラウザから 上記の サーバーに接続します。
  • iPhone のブラウザには Express を利用したページが表示されており、前進・左旋回・右旋回・後進 のボタンがあります。
  • Express サーバ は iPhone から来た要求を受けて GPIO を通じてモーターの制御を行います。

またチャレンジ目標としては

  • USBカメラを Raspberry Pi に搭載して、iPhone からUSBカメラを通じた映像を確認しながら操作可能とします。

システム構成

前回のシステム構成に対して Webカメラ部分を追加しました
f:id:matu-developer:20161016160946p:plain

  • iPhone から WiFi を通じて、ブラウザに操作用のページを作成します。サーバー側は Node.js の Express を利用して画面を作成します。
  • GPIOの制御は PIGPIO という Raspberry Pi の GPIO 制御用ライブラリを利用します。
  • GPIOを制御することで、モータードライバ (TA7291P) を通して、モーターの回転を制御します。
  • Logicool C270 を接続して、MJPG-streamer を利用して リアルタイムに ブラウザ上に表示するようにします。

MJPG-streamer

MJPG-streamer を利用すると、Webカメラの映像をリアルタイムに MJPG-streamer が用意したURLで公開することが可能です。
MJPG-streamer を起動している Raspberry Pi からの直接配信になります。

http://(raspberry pi の ホスト名).local:8080/

でアクアスすると MJPG-streamer のデモ画面になるのですが、以下のURLだとカメラ映像のみのページとなります。

http://(raspberry pi の ホスト名).:8080/stream_simple.html

利用方法

今回開発したプログラムを GitHub に公開していますので、そちらの README.md をみてセットアップおよび起動を行います。

https://github.com/ma-tu/rc-control

完成

組み立て完成図

f:id:matu-developer:20161016162113j:plain

iPhoneのブラウザ上の表示

f:id:matu-developer:20161016161917p:plain

デモ走行

www.youtube.com

あとがき

Raspberry Pi でラジコンなんとか完成し、子供にお披露目したところとても喜んでいました。
ただのラジコンとしてはお金と手間がかかっていますが。
ただ Raspberry Pi まだまだ色々できそうで面白いです。