UVC カメラで定時記録#
ラズパイ、ubuntu、v4l2、fswevcam、を使ってUVCカメラで1分おきに静止画保存###
・カメラ:The Imaging Source 社製 DFK24UP031
・カメラアプリ:fswebcam
・UVCドライバー:v4L2
・OS:Ubuntu
・HW:RasuberyPi
fswebcam はコマンドで一フレーム静止画を保存できる。動画を保存することはできない。
1)UVCカメラドライバ(v4l2)のインストール##
USBインタフェースを持ったカメラ(UVC)稼働させるため、UVCカメラのドライバであるv4l2 をインストールする
$sudo apt-get libv4l-dev
→ 管理者権限(root)であれば、sudoは不要、sudoはコマンド単位で管理者権限を使えるコマンド
2)カメラアプリ(fswebcam)のインストール##
静止画をキャプチャーするため、カメラアプリとして、fswevcamをインストールする。
$sudo apt-get install fswebcam
→ 管理者権限(root)であれば、sudoは不要
3)撮影処理を作成(シェルで作成)##
処理内容:画像のキャプチャーを行うコマンド(fswebcam)を使って画像をキャプチャーし、現在時刻の名前を持ったファイルとして保管する。
例)5/2 10:15 撮影、保管 pic.0502_10:15.jpg
flag_capture という名前のファイルが存在(サイズ不問:user pi に見えることは必要)していたら稼働する
エディターで下記内容のファイル(fswebcam.sh)を作成する。
DATE=`date "+%m%d_%H:%M"`
echo $DATE
if [ -e ./flag_capture ] ;then
fswebcam ./pic.$DATE.jpg
fi
→シェルに実行権を付与(所有者であっても実行権がないと実行できない)
$chmod +x fswebcam.sh
4)処理のスケジューリングを行う(crontabを使用)##
crontab を使って起動時刻と処理を登録する。
crontab を編集する。
$crontab -e
エディターが立ち上がるので、次のように入力する。
0-59 * * * * ./fswebcam.sh >/dev/null 2>&1
crontab を確認する。
$crontab -l
0-59 * * * * ./fswebcam.sh >/dev/null 2>&1
# 日中 毎時15分
15 9-17 * * * ./fswebcam.sh >/dev/null 2>&1
# 夜間 15分おき
0,15,30,45 18-08 * * * ./fswebcam.sh >/dev/null 2>&1
# 平日日中 20分おき
0,20,40 9-17 * * 1-5 ./fswebcam.sh >/dev/null 2>&1
分 時 日 月 曜日 コマンド
(曜日は 0 が日曜日)
1分おきにフレームを保存するようにスケジューリングした。##
flag_captureという(ファイル名のファイル)の存在を稼働の必要条件とした。
このファイルがあれば稼働する、なければ稼働しない。
他アプリと連携するときに、他アプリがflug_captureを作成するようにすると順序制御、タイミング制御が可能となる。
保存するファイルは、下記ファイル名。##
pic.MMDD_HH:MM.jpeg
サンプルファイル##
5/14 11:45 に撮影して保存した画像
pic.0514_11:45.jpeg
5/14 11:46 に撮影して保存した画像
pic.0514_11:46.jpeg
5/14 11:47 に撮影して保存した画像
pic.0514_11:47.jpeg
5/14 11:48 に撮影して保存した画像
pic.0514_11:48.jpeg