今回はRaspberry PiにUSBのWebカメラを接続して、カメラの映像に何か動きがあったら写真を撮影する「監視カメラ」を作成してみました。この動作を実現させるためにmotionという定番のソフトウェアを使用しています。
motionについては私よりも詳しい方がすでにいろいろと紹介されていますので「いまさら」感はあるのですが、前々から自分でもやってみたかったので、今回実際に自分でやった内容を備忘録として残しておきます。
使ったもの
- Raspberry Pi 3 モデルB

- Webカメラ(ロジクール C922n)

motionのインストール
まずmotionをインストールします。Raspberry Piのコマンドプロンプトで以下のコマンドを実行します。
|
1 2 3 |
sudo apt-get update sudo apt-get upgrade sudo apt-get install motion |
これだけです。とても簡単ですね。
motionの設定
motionの設定ファイルは /etc/motion/motion.conf になります。これをnanoなどのエディタで開き、必要なところを書き換えていきます。
nanoで設定ファイルを開くには以下のようにします。
|
1 |
sudo nano /etc/motion/motion.conf |
設定できるパラメータが非常に多いですが、今回は書き換えたところだけを説明します。上側がデフォルト、下が書き換え後です。
|
1 2 3 |
deamon off daemon on |
デーモン(バックグラウンドで動作するサービス)として使用する場合はonにします。
|
1 2 3 |
norm 0 norm 1 |
映像信号の方式。日本ではNTSCであるため1を選択します。
|
1 2 3 |
width 640 width 1280 |
画像の横幅です。ハイビジョン(HD)の解像度(1280×720)に変更しています。
|
1 2 3 |
height 480 height 720 |
画像の高さです。同上。
|
1 2 3 |
framerate 15 framerate 2 |
1秒間にキャプチャする画像の最大フレーム数です。今回は静止画を記録するので1秒に2枚の撮影にしています。動画として撮影したい場合はもっと数値を大きくする必要があります(その分、CPUの負荷が高くなるので注意してください)。
|
1 2 3 |
threshold 1500 threshold 3000 |
動作を検出するピクセル数です。低くするほど敏感に検知することになりますが、光のちょっとした変化でも「動き」と検知してしまいます。実際の環境でテストしながら、望ましい値に決めることになります。
|
1 2 3 |
event_gap 60 event_gap 5 |
短時間の間に複数の動きを検知した場合、独立したファイルとして記録する単位を示します。例えば5を設定すると、動く~止まる~動くと検知しても、5秒以内なら1つのファイルとして記録されます。
|
1 2 3 |
target_dir /var/lib/motion target_dir /var/motion |
ファイルの記録先のフォルダ(ディレクトリ)です。なるべく浅いフォルダのほうが使いやすいので変更しています。
|
1 2 3 |
movie_output on movie_output off |
検知した動きを動画ファイルとして保存するかどうか。今回、動画は記録しないのでoffにします。
|
1 2 3 |
picture_output off picture_output on |
検知した動きを静止画ファイルとして保存するかどうか。今回、静止画として記録するのでonにします。
つぎにサービス(デーモン)として動かすためにファイル/etc/default/motionを作成し、内容を以下のようにします。
|
1 |
start_motion_daemon=yes |
保存ディレクトリの用意
画像を保存するディレクトリを作成します。
|
1 |
sudo mkdir /var/motion |
作成したディレクトリのパーミッションを変更します。
|
1 |
sudo chmod 755 /var/motion |
motionの起動
以下のコマンドで実行されるらしいのですが、
|
1 |
sudo service motion start |
なぜか私の環境ではうまくいきませんでした。仕方がないので以下のコマンドで直接起動させました。-n オプションは非デーモンモードでの起動です。
|
1 |
sudo motion -n |
カメラの映像に動きがあったときに写真が自動的に記録されています。

さいごに
監視カメラが安価に販売されているのにわざわざ自分で監視カメラを作るメリットは、自分の好みに合わせてパラメータを細かく調整したり、他のプログラムと組み合わせて使えるという自由度の高さだと思います。今後、撮影した画像を自動的にメール送信する仕組みを作りたいと思います。
- 投稿タグ
- マイコン・電子工作