ラズパイでタイムラプス撮影やってみた その2
前回の続きです。
plant-raspberrypi3.hatenablog.com
5. タイムラプス撮影
ラズパイへのリモート接続、ファイル共有ができるようになったので、いよいよタイムラプス撮影にチャレンジ。
ハクサイのタネが都合よくおうちにあったので、発芽の様子を撮影。
ラズパイ純正のカメラモジュールはピント合わせの機能がないのですが、おためしということであまり気にしないでそのままやってみました。
撮影、ファイル保存、日付入りのファイル名に変更、の3つのコードを1セットにしたシェルスクリプトを書いてみました。ファイルは共有用のフォルダに保存していきます。シェルスクリプトは"image-capture.sh"というファイル名で保存。
#!/bin/sh
cd /共有フォルダの絶対パス
sudo raspistill -w 600 -h 600 -o image.jpg
sudo mv image.jpg `date -r image.jpg +%Y%m%d_%H%M%S_image.jpg`
ファイル名はファイル保存時に一緒にやってもいいかも。
最終的には"20170812_190007_image.jpg"といった名前の画像ファイルができます。
このシェルスクリプトを一時間おきに実行するようcronで設定します。
$ crontab -e
viエディタが開きます。viエディタでの操作にもやっと慣れてきました。
はじめに入力したコード
0**** /フォルダ名/image-capture.sh
がエラーで抜け出せず焦ってしまいましたが、よくよく見てみると時間の設定のところをスペースで区切る必要があることに気づき
0 * * * * /フォルダ名/image-capture.sh
に直すとうまくいきました。
cronの設定は以下のページも参照。
その後、ラズパイを起動しっぱなしで約2日ほど撮影。
ののち、パイプとawkというものを使ってファイル名を一括で連番に変更。
このへんはまだちゃんと理解できていないのでコピペで、ファイル名のみ変更。
$ sudo ls 2*.jpg | awk '{printf "mv %s %0.5d.jpg\n",$0,NR}' | sh
ここでエラーが出てしまって、中々進めず。
30分ほど格闘したのち、なんとか解決。原因はまたしてもsudo問題でした。変更後のコードは以下の通り。
$ sudo ls 2*.jpg | awk '{printf "sudo mv %s %0.5d.jpg\n",$0,NR}' | sh
ラズパイさんはスーパーユーザーでないと変更がきかないようになってるんですかねぇ。設定変更ってどうしたらいいんだろう。
その後、連番にしたファイルをImagemagickの機能で動画に変換しました。
Imagemagickはapt-getでインストール済み。
$ sudo avconv -r 12 -i %05d.jpg -r 12 -vcodec libx264 hakusai.mp4
ここはすんなりいってよかった( ´∀`)
できた動画が以下。
ピントは全くあっていない上、最後の方はアクシデントで部屋の電気が消えてしまったので暗いですが、植物たちが活発?に動いていて生命の躍動を感じる!?
とりあえず、タイムラプスで撮れるようになったので、これらを再利用してガンガン撮っていこうと思います(`・ω・´)
カメラのピント問題の対策をなんとか考えないと。