Raspberry Pi 2で遊ぶ:Pi NoIR実験

この記事は「Raspberry Pi記事まとめ」に集約しています。

RPi公式の赤外線カメラモジュール「Pi NoIR」とmjpg-streamerを使ってちゃんと動くか実験です。

カメラモジュールの有効化

USBではなくリボンケーブルをつかうので、カメラモジュールを有効化する必要があります。

$ sudo raspi-config
  1. 6 Enable Camera
  2. Enable
  3. 再起動

これだけ。

mjpg-streamerで動作確認

コマンドでraspistillなんたらを打てば写真が撮れるのですが、現時点X以外見る術がないのでmjpg-streamerを使います。

参考サイト

必要パッケージのインストール

$ sudo apt-get install libjpeg62-turbo-dev git subversion imagemagick cmake

参考サイトにはlibjpeg62-devとあったのですが、そのまま入れようとしたら「libjpeg9-dev libjpeg8-dev libjpeg62-turbo-devのどれかを選んでね」と言われたのでturboを選びました。

mjpeg-streamerのダウンロードとコンパイル

$ git clone https://github.com/jacksonliam/mjpg-streamer.git mjpg-streamer
$ cd mjpg-streamer/mjpg-streamer-experimental/
$ make clean all

make installすると以下の場所にファイルが配置されます。が、今回はインストールしません。

  • 実行ファイル:/usr/local/bin
  • プラグイン?:/usr/local/lib
  • Web用ファイル:/usr/local/www

ちゃんと映るか確認

$ ./mjpg_streamer -o "./output_http.so -w ./www -p 8080" -i "./input_raspicam.so -fps 30 -x 320 -y 240"

ブラウザから「http://RPiのIPアドレス:8080」で見ることができます。
うまくいけばセピアな世界が見えるはず。
終了は「control+c」で。

ちゃんと動いてるようです。あとは夜間での写りがどうかですね。f値低そうなので赤外線ランプ必須でしょうけど。


mjpeg-streamerのオプションについて

mjpg-streamerにはさまざまなオプションがあります。

今回使用したmjpg-streamerは従来のものではなく、RPiカメラに対応した改造版?になりますので、inputが「input_uvc」から「input_raspicam」に変わっています。もちろん、input_uvcも残ってるので従来のUVCカメラも使えます。
ただ、この改造版は従来の物と比べ不安定な感じがします。コントロールを開くと落ちる、ストリームで表示し続けると落ちる(Staticで一時的に見るなら問題ない)ので、あくまでraspicam用にした方がいいかもしれません。

記述例

raspicamを使う場合

$ ./mjpg_streamer -i "./input_raspicam.so" -o "./output_http.so -w ./www"

USBカメラを使う場合

$ ./mjpg_streamer -i "./input_uvc.so -d /dev/video0 -r 640x480" -o "./output_http.so -w ./www"

以下はそれぞれのオプションを掲載しておきます。

mjpg-streamer

ヘルプ

$ ./mjpg_streamer --help

オプション

  • -i / –input:インプットプラグインの指定。
  • -o / –output:アウトプットプラグインの指定。
  • -h / –help:ヘルプの表示。他は指定せず単体で使うこと。
  • -v / –version:バージョン表示。
  • -b / –background:バックグラウンドで実行。終了はkillで。

input_raspicam.so

raspicam専用の入力設定。
input_raspicamは画像サイズ指定にQVGAとか-r 640×480とかは指定できないっぽい。

一部raspistillを流用するのもあるようなのでこれも。

ヘルプ

$ ./mjpg_streamer -i "./input_raspicam.so --help"

オプション

記述例:"./input_raspicam.so -fps 5 -w 640 -h 480 -quality 50"
  • -fps / –framerate:フレームレート。未指定だと5fps。
  • -w / –width:画像幅。未指定だと640px。
  • -h / –height:画像の高さ。未指定だと480px。
  • -quality:画像圧縮率。0〜100で指定。未指定だと85。
  • -usestills:raspistillを使って表示?
  • -preview:実行中直つなぎモニタに表示?

他にも、raspistillを使用したオプションが多数あります。

output_http.so

Web出力用の設定。Web表示用のテンプレートはただのXHTMLなので自由に編集ができます。

ヘルプ

$ ./mjpg_streamer -o "./output_http.so --help"

オプション

記述例:"./output_http.so -w ./www -p 8080 -c user:pass"
  • -w / –www:Web表示用テンプレートのパスを指定。
  • -p / –port:ポート番号を指定。
  • -c / –credentials:Basic認証ダイアログを表示。ユーザ名:パスワードで記述。
  • -n / –nocommands:カメラコントロール画面を表示しない?

input_uvc.so

USBウェブカメラ用の入力設定。いつのバージョンからかパンチルト機能はオプション扱いになりました。

ヘルプ

$ ./mjpg_streamer -i "./input_uvc.so --help"

オプション

記述例:"./input_uvc.so -d /dev/video0 -r 640x480 -l off"
  • -d / –device:カメラデバイスの指定。通常は/dev/video0。
  • -r / –resolution:画像の解像度。640×480の記述が可能なほか、VGAやSXGAといった記述も可能。
  • -f / –fps:フレームレート。ただしYUYVでのみ有効。
  • -m / –minimum_size:暗いところでのフレーム落ちを削減?
  • -e / –every_frame:番号の付かないフレームを削除?
  • -n / –no_dynctrl:ドライバの初期化にdynctrlを使わない。
  • -l / –led:カメラ本体のLED点灯方法を指定。on,off,blink,auto。
  • -t / –tvnorm:放送方式の指定?

Raspberry Pi 2で遊ぶ:Pi NoIR実験” への1件のフィードバック

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中