新しいものづくりがわかるメディア

RSS


それ、ラズパイでつくれるよ

それ、ラズパイでつくれるよ——写真を自動で撮影する

「Raspberry Pi」の活用例を紹介する連載企画「それ、ラズパイでつくれるよ」。
第2回のテーマは、カメラモジュールを用いた写真の自動撮影だ。

カメラモジュールの用意

まずはRaspberry Pi用のカメラモジュールを用意しよう。今回は手元にあったRaspberry PiカメラモジュールV1を使ったが、現行のRaspberry PiカメラモジュールV2でも基本的な操作方法は変わらない。
箱からモジュールを取り出したら、レンズについた保護シールを外し、ラズパイ本体のカメラコネクタにケーブルを接続する。コネクタの片側についたツマミを持ち上げ、空いた隙間にケーブルを差し込んだらツマミを押し込んで元の状態に戻しておこう。

接続が終わったらラズパイを立ち上げ、Raspberry Pi ConfigurationのInterfaceタブを開き、カメラモジュールを「Enabled」にしておく。Terminalから操作する場合は、raspi-config > 5 Interfacing options > P1 Camera の順番でアクセス可能だ。

撮影の基本「raspistill」

被写体に深い意味はありません。 被写体に深い意味はありません。

静止画を撮影するためのコマンドは「rapistill」だ。Terminalを開き、

raspistill -o [ファイル名]

で撮影してみよう。

かわいいパンダが撮れたが、上下が逆になってしまった。しかし心配はご無用。raspistillコマンドには向きや大きさ、さらには画質まで補正するオプションが大量に用意されている。

-w [数値] 画像幅の設定
-h [数値] 画像高さの設定
-vf 垂直に反転
-hf 水平に反転
-q [数値] 画像のクオリティ(0-100)
-o [ファイル名] ファイル名を指定して保存 ※ファイル名を付けないと保存されない
-t [数値] ミリ秒後に撮影する

 

上の画像は

raspistill h -1500 -ISO 400 -vf -hf -o [ファイル名]

で撮影したもの。ほかにもさまざまなオプションがあるので、自分好みの設定を見つけてみよう。

ファイル名に日時を反映する

続いて、ファイル名に撮影日時を反映させてみよう。ここでは、ファイル名作成と写真撮影のコマンドをまとめた命令文=シェルスクリプトを作成する。例として「/home/pi」に「camera.sh」という名前で以下のプログラムを作成して保存しておく。

#!/bin/bash
DATE=$(date +"%Y-%m-%d_%H%M") #日時を文字列にして変数「DATE」に反映
raspistill -vf -hf -o /home/pi/$DATE.jpg #変数「DATE」をファイル名にして写真撮影

完成したシェルスクリプトは

sh camera.sh

で実行することができる。

定期的に写真撮影する

最後に、指定した時間にこのシェルスクリプトを実行するようにしよう。cronという常駐プログラムを設定すると、ユーザーの指定に基づいてコマンドやスクリプトを自動実行してくれる。

crontab -e 

でcronの設定ファイルを開き、最下段に以下の1行を追加してみよう。

*/1 * * * * sudo sh /home/pi/camera.sh

 

すると、1分ごとにcamera.shを実行して画像が保存されるようになる。cronで指定できる時間は[分 時 日 月 曜日]が対応しており、

10 * * * * … 毎時10分に実行
00 10 20 * * … 毎月20日10:00に実行
00 10 * * 1 … 毎週月曜日10:00に実行

など、自由に組み合わせて指定することができる。なお、停止したいときにはcrontab内の命令文を削除するか、コメントアウトしておこう。撮影した画像はメールに添付したり、ネットワークを経由してDropboxなどのクラウドストレージにアップロードするなどすれば、遠い場所からでもラズパイ付近の状態が確認できるようになる。

※このコーナーでは、みなさんの「それ、ラズパイでつくれるよ」をお待ちしてます。問い合わせフォームからドシドシご応募ください。

 

参考リンク:
http://igarashi-systems.com/sample/translation/raspberry-pi/usage/raspistill.html
http://www.tapun.net/raspi/raspberry-pi-date-filename
http://make.bcde.jp/raspberry-pi/決まった時間に処理する/

ニュース

編集部のおすすめ

連載・シリーズ

注目のキーワード

もっと見る