CSI接続のカメラを購入したので、とりあえず自宅LAN内でストリーミング配信して、
ブラウザから見れるようにしたいと思います。
ここでの手順は、ラズパイ3B+、ラズパイ4Bで確認しています。
1.カメラデバイスについて
カメラデバイスを購入するときに、解像度と赤外線に対応しているかどうかだけを優先しました。
今回使用するカメラはこれです。
スペックは、こんな感じです。
・接続は、CSI(Camera Serial Interface)
・解像度は、5MP OV5647
・静止画は、最大 2592 x 1944ピクセル
・動画は、1080P(1920x1080)の30fps、720P(1280x720)の60fps、640x480の30/60fps
・赤外線カメラ内蔵
このカメラは、真っ暗になると自動的に赤外線カメラになるのですが、
赤外線ライトが付属していなものを買ったために、まだその画像を見ることができていません。
ちょっと失敗しました。
もし赤外線カメラの使用も考えているなら赤外線ライトが付いているものが良いです。
値段もそれほど変わりません。
私のように個別に買おうとすると割高になります。
2.カメラインターフェースの設定
ラズパイでカメラを使用するにはデスクトップ画面の左上にあるラズパイマークを押して、
「設定」ー>「Raspberry Piの設定」を選択します。
次にRaspberry Piの設定ウィンドウのインターフェースタブを選択し、カメラを有効にします。
以上で、設定は完了です。
3.ラズパイとカメラの接続
ラズパイ上にCAMERAと記載されているCSIソケットにカメラデバイスを接続します。
付け方は、ソケットの上部を少し上に押し上げます。
そしてこの画像の向きで、ケーブルの金属部分が右側になるようにして、
ケーブルを少し押し込み、ソケットの上部を下に押して固定します。
4.MJPG-streamerのインストール手順
ストリーミングアプリとして「MJPG-streamer」をインストールします。
最初に、このアプリを取得、ビルドに必要なモジュールを先にインストールします。
$ sudo apt install -y subversion libjpeg-dev imagemagick
subversionは、MJPG-streamerのソースコードを取得するために必要で、
libjpeg、imagemagickはビルドする時に必要になります。
次に、MJPEG-streamerのソースコードを取得します。
$ sudo co https://svn.code.sf.net/p/mjpg-streamer/code/mjpg-streamer mjpg-streamer
mjpg-streamerフォルダに移動してビルドします。
$ cd mjpg-streamer
$ make
ここで、自環境に/dev/video0のデバイスファイルが存在しているかどうか確認してみてください。
存在していない場合は、mjpg-streamer実行時にエラーになりますので、次項を行う必要があります。
もし存在している場合は、次項は飛ばして「6.ストリーミングの動作確認」からで大丈夫です。
5.デバイスファイル /dev/video0の作成
/dev/video0のデバイスファイルは、今までにカメラやビデオ関連のデバイスを、
使用したことがなければ存在していないはずです。
これを作成するには、/etc/modulesファイルに「bcm2835-v4l2」を追加します。
編集は、下記のようにルート権限で行います。
$ sudo vi /etc/modules
追加完了後、一度ラズパイを再起動します。
そして、/dev/video0のデバイスファイルがあることを確認します。
6.ストリーミングの動作確認
動作確認は、ターミナル上から下記を実行します。
$ ./mjpg_streamer -i "./input_uvc.so -f 90 -r 640x480 -d /dev/video0 -y" -o "./output_http.so -w ./www"
実行後ブラウザから「http://(IPアドレス):8080
」にアクセスします。
そして、左側にあるメニューから「Stream」を選択します。
今回は、とりあえずブラウザからストリーミングで閲覧できれば良いので、細かい設定は特にしていません。
上図のように、ブラウザで閲覧することができますので、
自宅LANにwifi接続しているスマートフォンであれば、自宅のどこからでも閲覧することができます。
また、mjpg-streamerフォルダには、start.shというスクリプトがあり、
何も考えずに実行して動作確認してみると、
斜め線が入りモザイク動画のような何か動いているのが分かるだけで、何も見えませんでした。
最低限必要な設定は、使用しているカメラの解像度とフレームレートを合わせることです。
ちなみに、mjpg-streamerの止め方は、起動したターミナル内で「ctrl+c」で終了することができます。
7.最後に
初めてカメラのストリーミング画像を見た時ぼやけており、
どうやってビントを合わせるのかわかりませんでした。
少し迷いましたが、カメラの先端を回すことでピントを合わせることができました。
今回は、自宅LAN内でカメラのストリーミングの閲覧ができましたので、
次は、自宅外から閲覧できるようにしてみようと思います。
<関連・おすすめ記事>
ラズパイ用のタッチパネル付きモバイルディスプレイのおすすめランキング - 水瓶座列車
Raspberry Pi (ラズパイ)で役に立つ書籍のおすすめランキングベスト5 - 水瓶座列車
Bluetoothでマルチペアリング(複数台接続)できるマウスのおすすめランキングベスト5 - 水瓶座列車
Bluetoothでマルチペアリング(複数台接続)できるキーボードのおすすめランキングベスト5 - 水瓶座列車
仮眠可能なほぼフルフラットになるデスクチェアのおすすめランキングベスト5 - 水瓶座列車