ラズパイでは「crontab」というコマンドを使って、定期的にソフトウェアを動かせる仕組みがあります。これを使ってみましょう。
まずはraspistillを実行するためのシェルスクリプトを作ります。「nano rpicamera.sh」と入力して、ラズパイで使えるテキストエディタ「nano」を起動したら、以下のような内容を入力してください。
#!/bin/bash DATE=$(date +"%Y-%m-%d_%H%M") raspistill -o /home/pi/rpicamera/$DATE.jpg
このスクリプトは、raspistillを使って「年月日時分」のファイル名を与えて記録させるものです。それを「『rpicamera』というディレクトリに保存せよ」と記述しています。このスクリプトが実行できるようにパーミッションを変え、ディレクトリの作成を行いましょう。
$ mkdir rpicamera $ chmod +x rpicamera.sh
このスクリプトでちゃんとファイルが保存できるかテストしてください。
$ ./rpicamera.sh
いかがでしょうか。ディレクトリ「rpicamera」に「2019-xx-xx_xxxx.jpg」というファイルが保存できましたか? カメラが正しく接続できていなかったり、パーミッションが実行形式でなかったりするとエラーが出ますので、もう一度チェックしましょう。
次に、定期的にこのスクリプトを動かすことで写真の定点撮影を行えるようにします。コマンドラインから以下のコマンドを入力します。
$ crontab -e
crontabのエディター画面が表示されます。最初に表示する場合は、使うテキストエディタの指定を求められるかもしれません。nanoを指定しましょう。
crontabには以下のように記述します。
*/10 * * * * /home/pi/rpicamera.sh
ここでちょっとcrontabについて解説しておくと、最後に指定したコマンドを「分、時、日、月、曜日で実行する」という役割があります。例えば「毎週金曜日の正午に『/home/pi/rpicamera.sh』を実行させたい」という場合は以下のようになります。
00 12 * * 5 /home/pi/rpicamera.sh
それぞれのパラメーターですが、分(0〜29)、時(0〜23)、日(1〜31)、月(1〜12)となっていて、曜日は日、月、火、水、木、金、土にそれぞれ0、1、2、3、4、5、6が割り当てられています。このほかに「ステップ値(/)」と「値リストセパレーター(,)」「値の範囲(-)」「任意の値(*)」を設定できます。例えば以下の通りです。
0 0,6 * * * 0時0分と6時0分 0 9-17 * * * 9時から17時までの毎0分 0 */6 * * * 0時から6時間おきの毎0分 0 9-17/2 * * * 9時から17時の間に2時間おきの毎0分
そこで最初に戻って記述を見てみましょう。
*/10 * * * * /home/pi/rpicamera.sh
これは「10分ごとにrpicamera.shを起動して撮影する」ということになります。crontabについての“お約束”を理解すれば、いろいろと設定できますね。これを参考にして「指定した時間だけ撮影する」など、自分好みの設定を試してみるのも楽しいでしょう。
次回は、動くものを検知したときに撮影が始まる「motion」というアプリを使って、撮影を行う方法について解説します。
Copyright © ITmedia, Inc. All Rights Reserved.
Special
PR