もう一般的に認知されているタイムラプス映像はご存じですか? スマホでもできるので、かなり手軽になりました。
今回、小さなRaspberry Pi Zero W/WHにカメラモジュールを取り付けて、発芽の様子を撮影してみようと思います。
今回の環境
小さなアクリル製の水槽に、ジェックス ピュアソイル ブラック 2kgを敷いて水草の種(ハイグロSPタイガー)を蒔いています。ここはアクアリウムの話になってしまうので省きます。これからの季節なら朝顔でも良いでしょう。
カメラモジュール付きのRaspberry Pi Zero Wは公式の赤白ケースに入れて水槽に貼り付けています。

ここもRaspberry Pi 4Bでも3A+でも3B+でも良いですね。
OSはRaspberry Pi OS Liteにしました。もちろん、通常のRaspberry Pi OSでも構いません。HDMIを繋がなければ同じです。
非力なRaspberry Pi Zero Wなのと、SSH接続なので余計なGUIは必要ありませんからLiteです。
- Raspberry Pi Zero W本体
- カメラモジュールv2.1
- 専用公式ケース
- Raspberry Pi OS Lite
- raspistillコマンドで撮影
- ssh接続
- JPEGはmicroSDカード内に保存
- aviへの変換は母艦のmacOSで行う
Raspberry Pi OS側で動画へ変換も可能です。今回はRaspberry Pi Zero Wは非力なのと、長期間の撮影のため枚数が多いため、母艦へコピーさせてから実行します。
撮影条件
撮影は7日間(予定)を想定しているので、ファイルサイズを考慮して小さな画像にしました。
- 画像サイズ 800×600
- ファイルサイズ 400KB程度
- -roiで半分のキャプチャリソース
- 撮影間隔 10分毎に1枚
ピント合わせは手動
このカメラモジュールは、実はピント合わせが非常に難しいのです。超アナログで、それも微妙なんですよ。

正規品じゃないと付属していないと思われるピント合わせ用のスクリュー。
光の加減と色味

色味を合わせるのも難しかったです。
ただ、これは後で全て補正レタッチしてから動画にすることが可能ですから、ある程度にしておきます。(と、言っても2時間くらい納得いかなかった・・・)
一応、シャッタースピードのオプションで光量を調整しました。
また、灯りとしてはLEDを上から当て、少しだけレンズの方向にして、斜めに配置することである程度は綺麗に映りました。
これも機材があれば、色々と工夫できるところです。

今回はこんなテキトーな感じでトライしてみます。
-roiオプション
今回初めて-roiオプションを試用してみました。-roiでノーマル画像の真ん中を左上座標にしてるとちょうどデジタルズームさせたような画になります。
-roi 0.5,0.5,1.0,1.0


カメラは素人なのでよく分かりませんが、思ったような画面になったのでヨシとします。
「Set sensor region of interest」と公式にもあるので、センサーの使用域の設定みたいな意味ですね。これはお好みで。
撮影間隔—枚数と秒数とフレーム数
撮影する間隔は、10分に1枚にしてみました。
これは最終的な枚数(=ファイルサイズ)と1秒間のフレーム数、出来上がる動画の秒数から割り出せます。
実際には発芽であれば、それほど急激には変化はありませんから、撮影間隔はもっと伸ばせます。
事前に発芽させた水草は、1日でかなり伸びたこともあり、急な成長も考えて10分毎にしています。この辺は自由です。
枚数は144枚計算
この条件だと1時間で6枚、1日(24時間)で144枚です。今回設定した画質のJPEGが400KB程度だったので、1日57.6MBです。
これが7日間だとしても、403MBなら大したことありません。
枚数にして1008枚。滑らかな1秒間で30フレームなら、動画は33.6秒になります。
(デフォルトでは2.9MBくらいになるでしょう)
撮影コマンド
肝心の撮影するコマンドは、デフォルトのraspistill
です。
raspistill -rot 270 -hf -w 800 -h 600 -ss 66667 -sh 30 -drc high -roi 0.5,0.5,1.0,1.0 -o
色々試して、このオプションを選びました。
オプション | 内容 |
-rot 270 | 画像が縦向きだったので、グルッと270度回転(90、180、270) |
-hf | 鏡のように左右反転だったので水平方向に反転(縦は-vf) |
-ss 66667 | シャッター速度。これで1/8?(よく分かりません・・・) |
-sh 30 | シャープをかけました(デフォルトは0) |
-drc high | DRCをかけたら少しマシだったので最大で。 |
-roi 〜 | 前述のroiでセンサー領域の変更でズーム |
全部はイジれないのですけど、macOS上で表示したExif情報で確認しながら設定してみました。参考に載せておきます。

スクリプトファイルにする
コマンドだけではずっと撮り続けても、同じファイル名の上書きになってしまうため意味がありません。これをスクリプトで日時を付与して保存させておきます。
#!/bin/bash
DATE=$(date +"%Y-%m-%d_%H%M")
raspistill -rot 270 -hf -w 800 -h 600 -ss 66667 -sh 30 -drc high -roi 0.5,0.5,1.0,1.0 -o /home/pi/timelapse/$DATE.jpg
これに実行権を与えます。sudo chmod +x timelapse.sh
など。
で、実行させれば良いのです。テストのために一度スクリプトを動かしておきましょう。同階層にいるなら、./timelapse.sh
、または、sh ~/camera/timelapse.sh
など。
画像が出来ていれば成功です。
これを定期的に行いたいので、crontab に記載します。
crontab -e
# m h dom mon dow command
*/10 * * * * sudo sh /home/pi/timelapse/timelapse.sh
*/10
が10分毎という意味です。
とっても簡単
ラズパイの扱いに慣れれば特にそう思います。
初心者にも手数が少ないプロジェクトだと思いますから、ぜひトライしてください。
ザッとこんな感じ
- Raspberry Pi OSをmicroSDカードへ
- 初期設定のみ実行
- カメラモジュールを取り付けSPIを有効に
- raspistillコマンドで撮影
- スクリプトを3行 → 実行権付与
- crontabへ1行追加
- 画像が溜まったら動画ファイルへ変換(これは次回)
microSDカードに余裕があれば、もっと大きな画像ファイルでも良いでしょう。(あとで動画に変換するのに時間はかかります)
次回は、動画に変換します。
Raspberry Pi Zero Wでも3B+でもRaspberry Pi 4でも同じです。
この水草は事前に試してみたところ、3日目には種が緑色になり、翌日には僅かですが芽を出しました。今回、7日間の連続撮影をしてみようと思います。
・・・気になって途中確認したところ、1日目で芽が!めが!ME〜GAー♪

最終的には芝生のような緑になります。

カメラモジュールはv2.1がオススメです。Amazonだとオフィシャル品は手に入らないかも知れません。Raspberry Pi Zero Wはフラットリボンケーブルが通常と異なります。同梱されている商品を選びましょう。
※千円台は500万画素のv1.3、もしくは類似品です。v2.1は3,500円台になると思います。
続きはこちら

この記事のコメント(承認後に公開)