2017年1月23日月曜日

ラズパイで作るドラレコ完成編

ドラレコ、完成しました

どうもお久しぶりです。
前回はこういう部品がいるかもね、こんな感じで作りたいねっていう感じで終わりましたね。
今回は完成した全体図とどうやって実装したかを適当にご紹介したいと思います。

まず前回のおさらい

意気揚々と3Dプリンターでカメラケースを作っていましたね。
コレ、使いませんでした。
コレ、使いませんでした!。
一体何やってんだろう自分。。。データ作って印刷してテストするのに結構な時間かけちゃったよ。。。
そうして私はModMyPiからラズパイzero用のケース広角レンズを輸入しました。
お気づきでしょうがラズパイzero用のケースということはzeroがないと使えないということですよね。
買いましたよ、ラズパイzero。
Raspberry Pi Zeroは通常のラズパイよりも小さくてver1.3だと純正のカメラモジュールも使える!
ラズパイ3よりも小さいなら理想的じゃないか、ということでね、ポチりました。
Raspberry Pi Zero - Version 1.3
ラズパイZeroは現在日本では技適の問題で取扱がなく、外国のサイトからしか購入できません。
私はAdafruitからラズパイZeroとLipoバッテリーをゴニョゴニョできるPowerBoost 1000 Chargerを買いました。
このPower(長い)は外部電源口と電源出力口とバッテリ接続口があり、外部電源から出力口とバッテリに電力を供給できる優れものなんです。そして外部電源が切れると自動的にLipoバッテリーを5Vまで昇圧して使えるようにしてくれます。つまり簡易UPSです。コレがすっごいんですよねぇ。。。

という事で以上のパーツで楽してドラレコを作ろうという魂胆です。

ドラレコ制作編

まずは完成したブツをペタリ。
 後ろから撮影したもの↑

正面から↑

車に取り付け↑

適当に取り付けしたのでケーブルがだら~ん、ゴツゴツとした感じになってしまいました。

では制作過程をば。

1, Zeroにワイヤーをはんだ付けしてケースに収める。んでカメラも付ける。
ラズパイZeroにはピンヘッダーがついていないので必要に応じてワイヤーを付ける必要があります。
こんな感じ

2, PowerBoost 1000 ChargerにつけるLipoバッテリーの準備
日本だとアブナイ二次電池は資格がいるのか何だったかは忘れましたが、
ある容量より上の物は一般の市場に出回っていないようです。それは困った。

という事でNXT Mindstormのバッテリーパックを2つ分解して
取り出しました。(危ないのでやめてくださいねすっとぼけ

NXTのバッテリーは7.4Vという記述でしたがセルを2つくっつけているだけですのでそのまま使おうと思った所、
2つの内1つのセルは保護回路やらたくさん乗っていてめんどくさかったのでニッパでパッチンしてきれいなセルだけを2つ適当に並列に繋いで3.7V11.1Whにしました。
多分並列なら大丈夫でしょ。。。
パワブ君にも保護回路はあるし。。。

これでエンジンがオフになってもシャットダウンできる電力は確保できますね。
あとパーキング録画もできますね。まぁめんどくさかったのでやりませんでしたが。

3, プログラムも作りますよ
肝心のプログラムは残念ながら全てはお見せ出来ないのでかいつまんでお教えします。

まず仕様として、
  • 保存先の自動設定(USBメモリーがあるならば本体に保存しない)
  • 10分ごとに録画する(エンジンが切れるまでループする)
  • エンジンが切れるとシャットダウンする
  • 保存先に古いファイルが有るならば削除して空き容量を増やす
を満たすものをとりあえず作ります。

一つ目は簡単でos.path.ismount()を使う
if os.path.ismount(directory):
    path=foobar
二つ目も簡単
while True:
    camera.start_recording(path+fileName+'.h264')
    camera.wait_recording(time)
    camera.stop_recording()
三つ目はちょっと面倒callbackを使う
GPIO.add_event_detect(pin,GPIO.Both)
GPIO.add_event_callback(pin,shutdown_method)
四つ目はまぁまぁ
subprocess.Popen("sudo find foorbar")
とりあえずこんなもんでしょう。
プログラムは真似せず自分で作ってみてください、結構簡単ですよ。

さてさて以上でドラレコ制作が終了しました。
しかしまだ改良出来る部分があるので細々とアプデしていきたいと思います。
次はGPSもつけようかなぁ。