今更ですがちょうど家の車にドライブレコーダーが無かったので、いい機会なのでラズパイで作ってみる事にしました。
まあ安いやつならお店で数千円で購入できる時代ですのでわざわざ作る必要もあれなんですけど(多分ラズパイで作る方が高い。。)、でも、やっぱり自作する事に意義があるんですよね!!
で、作成するにあたって下記サイト(ガジェライブ!様)を参考にさせていただいた訳ですが、ほぼ同じ内容(汗)です。(-_-;)すごい分かりやすかった。
Raspberry Pi Zeroで簡易ドライブレコーダーを自作する
だったらここで書く意味ないだろう、となりますが、一部自分の扱いやすいように変更をかけていますので、その辺を備忘録としてまとめておこうかと思います。
目次
初めに
必要なもの
・Raspberry Pi ZERO W
・Raspberry Piカメラ
・ケース
・モバイルバッテリー
・スマホ(テザリングと操作用)
仕様について
ざくっと、
1.ラズパイの電源を投入すると自動で動画撮影(H.264音声無し)を開始させる
2.ラズパイはWIFIでスマホで立てたアクセスポイントに自動接続させる
3.スマホからVNCやSSHなどでラズパイを操作できるようにさせる
こんな感じのものを作ります。
撮影した動画はスマホからSMBでファイル共有できるようにします。
プログラム
自動録画のシェルススクリプト
H.264をサポートしているカメラモジュールを使用すれば、専用の動画撮影コマンドraspividを実行することで簡単にH.264動画を撮影することが可能です。
まず、自動実行させたいスクリプトを/optに作成します。
1 |
sudo nano /opt/test.sh |
1 2 3 4 |
#!/bin/sh raspivid -o /home/pi/`date '+%Y%m%d-%H%M'`.h264 \ -rot 270 -w 1280 -h 720 -t 0 -fps 30 -b 2000000 |
raspivid -o が動画撮影のコマンドで、続いて保存先を指定し、ファイル名は日付で拡張子はh.264としています。これ以降がは各種設定になります。
-rotはカメラの角度、-wと-hで解像度、-tで撮影時間、-fpsでフレームレート、-bでビットレートを指定。-t 0で時間を指定しなければずっと録画し続けることが可能です。
作成したらスクリプトに実行権限を与えておきます。
1 |
sudo chmod 0755 /opt/test.sh |
電源投入時に上記スクリプトを自動で起動する設定
上記スクリプトをサービスとしてsystemdに登録するため、ユニットファイルを作成します。
1 |
sudo nano /etc/systemd/system/test.service |
1 2 3 4 5 6 7 8 9 10 |
[Unit] Description = test [Service] ExecStart = /opt/test.sh Restart = always Type = simple [Install] WantedBy = multi-user.target |
Descriptionはユニットファイルの説明らしく、これは自由に記述して問題ないみたい。
ExecStartに登録したいスクリプトを記述します。
Restartはalwaysを設定しておくことで、プロセスが不意に終了しても再起動させることが可能です。
Typeはプロセスの起動タイプを設定するオプションです。simpleがデフォルトで、メインプロセスとして登録します。
サービスを有効化
ユニットファイルを有効化する
ユニットを定義できたら、サービスを有効化するために下記のコマンドを実行します。
1 |
sudo systemctl enable test.service |
正常に有効化されていれば、下記のコマンドを入力するとバックグラウンドでサービスが実行されます。
1 |
sudo systemctl start test.service |
これで次回より電源投入時、自動的に動画撮影のスクリプトが実効されます。
動画の確認
ラズパイを再起動後、/home/pi/ 配下に日付.h264の動画ファイルが生成されているので、VLCメディアプレーヤー等で再生してみます。撮影されていればOKです。
車に設置
WIFIはあらかじめスマホのテザリングに接続しにいくよう設定しておく
ここまで出来れば、あとは車の好きな場所に設置して、電源を入れれば動画撮影が自動で始まりますが、電源OFFはモニターに接続していないと基本出来ません。
また、動画が取れているか等の確認も出来ません。これを可能にするために、ラズパイはあらかじめテザリングしているスマホに接続しにいくよう設定しておきます。
電源投入後、スマホのAPに接続すれば、スマホからSSHやVNC等でラズパイにアクセスし、操作する事が可能になります。
撮影した動画の再生
h.264は、ラズパイのVLCメディアプレーヤーで再生はできますが、ZERO Wの性能が低いので画質が粗いです。
再生させたい場合はスマホにSMB等でデータを移動させて、h.264対応のメディアプレーヤーでスマホ、もしくはPCで再生するとキレイに映ります。(MP4に変換すれば既存のメディアプレーヤーで再生可能)
今回、ハイビジョンのフレームレート30で撮影していますが、少なくとも32GBで十数時間は録画できる容量はあるので、遠出する際にも連続撮影は可能だと思います。(ただしいずれ容量を圧迫するのでいらなくなったデータは都度消去が必要)
ドライブした時の映像はこんな感じです。↓