NoIRが発売されました。赤外線カメラは使ったことがないので興味があり、早速注文してみました。今回、その映像をmjpg-streamerで配信し、androidで見てみることにします。Pi用カメラでも全く同様に成り立ちます。Piのカメラモジュールのバージョン2が発売になりました。こちらでも本ページのプログラムは動作するのですが、NOOBS1.9.0までのRaspbianでは映像の向きが上下逆転してしまいます。次のRaspbianが出るまで待つことをお勧めします。rpi-update」でカーネルを最新にすれば正常動作することをお知らせしておきます。新しい方法ここから解説するのは、下記のサイトで紹介されている方法です。解像度640x480、30fpsで高画質で動作するのでおすすめの方法です。カメラを有効にしておいてください。下記の要領で、カメラモジュール対応のmjpg-streamerをインストールします。/opt/mjpg-streamerインストールが完了したら、下記の内容をユーザーpiのホームディレクトリ/home/piにstart_steam.shという名前で保存します。このスクリプトでは解像度640x480、フレームレート15fpsでmjpg-streamerを起動します。started"fi次に、このスクリプトを/etc/rc.localに記述することで、自動起動します。そのために、エディタで/etc/rc.localを編集するのですが、その際、管理者モードでないと保存できませんので注意してください。viで編集する場合は下記のようにsudoをつけて起動します。0」という行が最後に記されているのですが、その手前に下記のように1行追記します。Piを再起動すると、mjpg-streamerが自動で起動します。映像が配信されていることがわかります。このポート番号は、上のスクリプトstart_stream.shの内部で決定されています。この映像をandroidで受け取るには、手前味噌ですが簡単MJPEGビューアを使うと簡単です。このアプリのソースはこちらにあります。アプリを起動したら、メニューから「設定」を選択し、下図のように、解像度を640x480に、「ポート番号」を9000に(キーボードで記述)、コマンドを「?action=stream」に設定してください。Piのカメラから配信された映像がandroid上に表示されます。この映像は暗い部屋で人形にテレビのリモコンの赤外線を当てて撮影しました。以上で目的は達成です。Piとカメラモジュールの組み合わせをキャタピラ式模型に搭載し、iPadなどのタブレットのウェブブラウザから映像を見ながら操作する、という演習を取り入れています。下記の内容紹介動画のおよそ1:38からその様子が示されています。Piと用いたWifiドングルの相性の問題と考えています。参考にGW-450Dを用いるとこの「映像の詰まり」は解消されるのですが、kernelの再構築が必要なので、書籍では紹介できませんでした。以下に記すのは古い内容なので読み飛ばして頂いて構いません。古い方法ここから先は、このエントリを執筆した2013年11月当時の古い方法です。今この方法を用いる必要性はないのですが、記録として残しておきます。カメラを有効にしておいてください。次に、OSを最新にします。upgradeさらに、ファームウェアを最新にします。call」というエラーがでます。filesystems」の際にmmcblk0に関するエラーが出て起動しなくなる場合があります。その場合、こちらに関連情報がありますが、SDカードを変更すれば状況が改善する場合があります。2)に変更したところ、問題が解決しました。PiのカメラをVideo4Linuxで用いるために、こちらを参考にVideo4Linuxを有効にします。./lrkey.asc次に、/etc/apt/sources.listの末尾に下記の行を加えます。mainそして、以下を実行します。mjpg-streamerのインストールこちらを参考に、mjpg-streamerをインストールします。インストールに必要なライブラリやヘッダなどをインストールします。imagemagickヘッダにリンクを貼ります。/usr/include/linux/videodev.h次に、mjpg-streamerの最新のソースをダウンロードするため、subversionをインストールします。subversionそしてmjpg-streamerのソースをダウンロードします。mjpg-streamerそして、以下のようにmakeします。mjpg-streamermakeエラーが出ずにビルドが完了すれば次に進みます。mjpg-streamerの起動mjpg-streamerをビルドしたディレクトリで作業します。Video4Linuxを有効にします(このコマンドはどのディレクトリでもOK)。uv4lを実行します。この例は解像度320x240、フレームレート10fpsです。10そして、mjpg-streamerを起動します。解像度320x240、フレームレート10fpsを指定しています。./www"色々試してみたところ、フレームレートを大きくすると不安定になるようで、mjpg-streamerが落ちます。私の環境では解像度320x240、フレームレート10fpsでは安定して動きますので、どこまでいけるか色々試してみてください。映像が配信されていることがわかります。この映像をandroidで受け取るには、手前味噌ですが簡単MJPEGビューアを使うと簡単です。このアプリのソースはこちらにあります。アプリを起動したら、メニューから「設定」を選択し、下図のように、解像度を320x240に、ポート番号を8080に設定します。Piのカメラから配信された映像がandroid上に表示されます。この映像は暗い部屋で人形にテレビのリモコンの赤外線を当てて撮影しました。Piが起動するときにmjpg-streamerが自動で起動するようにしておきましょう。mjpg-streamerのディレクトリが/home/pi/mjpg-streamerであるという前提で話を進めます。~/mjpg-streamerこのディレクトリに、start-mjpg-streamer.shというファイルを作成し、下記の内容を記述します。エディタはviでもnanoでも、お好みのもので構いません。./www"次に、このスクリプトを/etc/rc.localに記述することで、自動起動します。そのために、エディタで/etc/rc.localを編集するのですが、その際、管理者モードでないと保存できませんので注意してください。viで編集する場合は下記のようにsudoをつけて起動します。0」という行が最後に記されているのですが、その手前に下記のように1行追記します。Piを再起動してみてください。mjpg-streamerが自動で起動しているはずです。Piではじめる機械学習」を執筆しました。17:12RaspberryPi&カメラモジュールを買って、いろんなHPをみながら映像をWEBから見れず諦めていたのですが、貴殿のHPの通りやったら一発でWEBからカメラ映像を見ることが出来ました。ありがとうございました大変、厚かましいのですがLinux素人に教えていただけないでしょうか?mjpg-streamerをras-pi電源接続したら、自動で起動する最適なやり方を教えていただきたく、思いコメント投稿いたしました。ご多忙と思いますが、もしお時間ありましたら、ぜひこのブログに掲載をお願い申し上げます。16:26自動起動する方法を追記してみました。1:36初めまして、FlyingYachtと申します。以前からこちらのブログを大いに参考にさせて頂いています。wifiとmjpg-streamerを組み合わせて使わせていただいています。先日いろいろいじっていたところ、フレームレートが向上できた?ので、その方法をご報告いたします(既にご存知だったらすいません導入は貴殿の方法のままで、start_stream.shのみを改編しました。30"に変更しました。http://seesaawiki.jp/yattemiyo/d/Raspberry%20Pi3%A4%C7%A5%AB%A5%E1%A5%E9%A5%E2%A5%B8%A5%E5%A1%BC%A5%EB%A4%F2OpenCV%A4%C7%BB%C8%A4%A6こちらのブログにあるように、motionをインストールする必要があるかもしれません。私の環境では720Pで15fpsから30fps~まで向上しました。わずかですが、この記事を参考にさせて頂いたお礼になれば、という気持ちです。22:34お知らせ頂きありがとうございます。motionは必要なく、「bcm2835-v4l2」についてはstart_stream.shに記すのではなく、/etc/modulesというファイルにbcm2835-v4l2という行を追加するのが良いのではないかと思いました。確かに大サイズ、高フレームレートの映像が取得できますね。