Pi(Model3+)を使って、決まった時間ごとに撮影を行い画像ファイルを保存する機能を持った定点観測カメラの制作手順をご紹介します。Pi(ラズベリーパイ)を使うと、簡単なプログラムで定点観測カメラを作ることができます。Pi(Model3+)を使って、決まった時間ごとに撮影を行い画像ファイルを保存する機能を持った定点観測カメラの制作手順をご紹介します。Piで作成できる定点観測カメラの仕組みまず下記処理を行うシェルスクリプト(OSに対して命令をするコマンドの集まり)を作成します。PiのOS(Raspbian)上にある「crontab」コマンドを使用して、1分ごと(時間は任意に設定可能)に上記のシェルスクリプトを実行するように設定します。これで、定期的に写真を撮影して保存する定点観測カメラの機能が実現できます。Piを接続するための設定は以前の記事で紹介しているので、そちらを参考にしてください。Piが用意できたら、定点観測カメラのベースとなる撮影部分の作成に入っていきます。カメラモジュールで撮影をして保存する定点観測カメラを作成するために、カメラで撮影するための設定を行う「camera.sh」ファイルを作成します。「ターミナル」を起動して、下記のコマンドを実行してください。camera.sh「camera.sh」ファイルを作成するvimエディターが起動したら、下記の内容を書いて保存します。image.jpgcamera.sh」ファイルに写真を撮影するコードを記載ファイルを保存できたら、下記のコマンドを入力して実行します。無事コマンドが成功すると、「/home/pi」内に画像が保存されます。撮影した画像の名前を設定する保存する画像ファイルのファイル名を時間に変更して保存します。camera.shを下記のように書き換えます。${fn}.jpg撮影して保存した画像にファイル名を指定するコード保存する際に撮影した画像のファイル名がそのとき撮影した時間に名前変更に設定しています。USBメモリに画像を保存する今回は撮影した画像は、USBメモリに保存するようにするために新しく設定をする必要があります。USBメモリが読み込めたら、「ターミナル」を起動して、下記のコマンドを実行します。デスクトップ「デスクトップ」に移動するデスクトップに移動したら、USBメモリを認識して読み込みや書き込みをするために「mount」コマンドで設定が必要になります下記のコマンドを実行してください。usb1「usb1」ディレクトリーを作成する続いて、下記のコマンドを実行してください。PiがUSBメモリをマウント(≒認識)することができ、読み込みや書き込みができるようになりました。新しくマウントしたUSBメモリのフォルダーのパス名を指定するために「camera.sh」ファイルを編集します。下記のコードに書き換えてください。最初にも記載したcronで設定を行うのですが、そもそもcronというのは。スクリプトや実行ファイルを定期的に実行してくれる仕組みです。起動時に毎回実行したいときや、今回の様に指定した時間にスクリプトを実行するときに使います。cronで設定をします。「ターミナル」上で、下記のコマンドを実行してください。-ecronの設定ファイルを開くためのコマンド実行した際に、下図の画面が出力されると思いますが、次に行う設定の手順に設定ファイルに追記する部分があるのですが、どのエディターを使って設定ファイルを編集するか選択する画面になります。今まで、vimエディターを使ってファイルの編集などは行ってきましたが、nanoエディターが簡単に扱えて推奨になっているため2を選択してnanoエディターでファイル編集します。ここで「2」入力してnanoエディターを選ぶ設定ファイルが開いたら、一番下までスクロールをして設定を書き込みます。cronの書き込みのやり方はいくつかルールがありまして、そのルールに沿って指定します。順番で実行するタイミングや時間を指定します。分は「0~59」の値で、時は「0〜23」の値で、日は「1〜31」の値で、月は「1〜12」ので曜日はそれぞれ「1→月、2→火、3→水、4→木、5→金、6→土、7→日」の数字で表します。何も指定をしない場合は、数字の代わりに「*」を入力をします。例として毎時5分おきに今回作成した「camera.sh」ファイルを実行したい場合は下記の指定をします。/home/pi/camera.sh毎日10時に今回作成した「camera.sh」ファイルを実行したい場合は下記の指定をします。/home/pi/camera.sh毎週月曜日10時に今回作成した「camera.sh」ファイルを実行したい場合は下記の指定をします。/home/pi/camera.shでは、今回は1分おきに今回作成した「camera.sh」ファイルを実行したいと思います。n分おきやn時おき、n日おき、n月おきで指定したい場合は、「*/n」とすることでn◯おきを設定することができます。今回の場合1分おきに今回作成した「camera.sh」ファイルを実行するのは下記の指定をします。最初は慣れるまで大変ですが、ルールにしたがって組み合わせて指定することを知っておけば設定できます。動作させるタイミングを設定できたら、設定ファイルを保存して閉じてください。cronが動作しないときこの地点で定期的に動作しない場合に考えられることは、「camera.sh」ファイルの記載が間違っていることや、cronの設定ファイルでの記載ミスなど様々な理由が考えられます。cronの動作を確認するために、下記のコマンドを実行して確認します。statuscronの現状の動作確認するためのコマンド正常に動作をしている場合は、以下のように”Active:active(running)“と表示されます。「active(running)」の表示が出力されたら、動作実行中を表す動作が止まっているときの表示は下図のように“Active:inactive(dead)”となります。「inactive(dead)」の表示が出力されたら、動作不能を表す動作が止まっている場合は、cronをスタートさせることでcronが定期的に動きます。下記のコマンドを実行してください。startcronを起動させるコマンドログを確認してみるプログラムの動作の記録のことを「ログ」と呼びますが、cronがどんな動きをしているのかログを見ることができます。ログを見るためには設定を行う必要があります。「ターミナル」上で下記のコマンドを実行してください。/etc/rsyslog.conf「rsyslog.conf」ファイルを開く下図の部分のコメントアウト(先頭の”#”記号)を削除します。先頭“#”を消して、上記の設定にする削除したら、「rsyslog.conf」ファイルを保存してエディターを閉じます。エディターを閉じたら、下記のコマンドを実行してrsyslogを再起動します。restartcronを再起動させるコマンド次にログをどこまで、表示するかの指定をします。下記のコマンドを実行してエディターを開きます。/etc/default/cronvimエディターで開く下記の場所を修正します。EXTRA_OPTS=””の部分を下記にのように編集します。編集が完了したら、ファイルを保存して閉じてcronを再起動します。restartcronを再起動するここまで設定することができたら、ログファイルを確認することができます。下記のコマンドを入力して実行します。/var/log/cron.logログが一覧で表示されるコマンドもしここでcronは動いているが、ファイルが読み込まれていない場合などは、「caamera.sh」の実行権限を変更する必要があります。下記のコマンドで実行権限を変更することができます。Piを再起動したりして試してみてください。定点観測カメラとして動かしてみるターミナル画面に戻ると、cronの設定ファイルを読み込み定期的にカメラが起動します。1分おきにカメラが起動したら、正常に動作していることを示します。Piを起動してみます。正常にcronの動作ができていたら、何もコマンドや、動作をしないでも自動的にカメラが立ち上がり写真撮影をしてくれます。Piが電源の供給できている間は自動的に実行してくれます。途中で、中断したい場合などは以下のコマンドを実行することで、システムを停止することができます。Piで作ってみました。Piで人物検出をした時に撮影を開始する防犯カメラのベースにこの仕組みを応用したり、アイデア次第で様々な利用が可能です。[IAMAS]に入学。インタラクティブ作品を作る傍ら、多数のメディアアート作品の実装を手がける。コミュニティ形成等も行っている。Reserved.記事をシェア。