クリエイター手抜きプロジェクト[542]IoT ラズベリーパイ編 インターバル撮影をやってみよう/古籏一浩

投稿:  著者:  読了時間:10分(本文:約4,500文字)



今週末から、皆さんお待ちかねのゴールデンウィークに入ります。もっとも、ゴールデンウィークなんて関係なく働く人もいるでしょう(私も働かないといけない一人)。

でも、せっかくのゴールデンウィークだから、少しでも新しいことをしたり、実験・研究・開発をするのも悪くないかと思います。そこで今回は、ラズベリーパイとラズベリーパイ専用カメラを使って、インターバル撮影をしてみます。

インターバル撮影とは、一定時間ごと画像や映像を撮影するものです。

ちなみに、ラズベリーパイでインターバル撮影して、AfterEffectsで映像化したものをYouTubeにアップロードしてあります。昨年の8月から連続して撮影しており、以下のページから閲覧できます。

・穂高連峰〜北アルプス方面(インターバル撮影)
http://www.openspc2.org/HDTV/interval/





もともとはラズベリーパイと、そのカメラの耐久試験のために始めたのですが、なかなか壊れるに至らず、どうしたものかと思いつつ試験運用しています。こういう耐久試験は、実時間が必要なことが多いので大変です。

幸いにして、ラズベリーパイはSDカードベースで動くので、SDカードにデータを記録すると速く壊れて駄目になります。SDカードはブランドものを使った方がいいでしょう。安物は早く壊れます。

なお、SDカードは8GBくらいのものを用意しておきます。16GBでもいいのですが、静止画のみなので少なくても大丈夫です。

SDカード以外で必要なものは、ラズベリーパイ本体とラズベリーパイ専用カメ
ラです。

・Raspberry Pi3 Model B ボード&ケースセット
http://www.amazon.co.jp/exec/obidos/ASIN/B01CSFZ4JG/dgcrcom-22/

・Raspberry Pi Camera V2
http://www.amazon.co.jp/exec/obidos/ASIN/B01F1SWTZE/dgcrcom-22/

ちなみに、専用カメラでも4Kサイズ程度は撮影できます。遠くの山などをズームして撮影したい場合は、ズーム機能(といっても手動でまわすもの)を持ったラズベリーパイ用カメラを購入するとよいでしょう。その場合、プログラムは変更することなく使えます。

次に、ラズベリーパイ用のOSをダウンロードします。ラズベリーパイには数多くのOSがありますが、ここで使用するのが標準OSであるRaspbian(ラズビアン)です。GUIなしとありの2種類があります。GUI付きの方がよいので「RASPBIAN STRETCH WITH DESKTOP」の方をクリックしてダウンロードします。

https://www.raspberrypi.org/downloads/raspbian/

ダウンロードしたら解凍します。〜.imgという拡張子のファイルになっていればOKです。次にダウンロードしたOSをSDカードに書き込みます。

Windowsの場合は、、ツールがあるので、それを利用してください。Macの場合は、ターミナル.app(コマンドライン)から書き込むことができます。以下のページを参照してください。

http://www.openspc2.org/reibun/RaspberryPI/OS/Raspbian/init/0002/

書き込んだ後は、SDカードを取り出してラズベリーパイに差し込んで起動します。次に、カメラを使えるように設定します。

http://www.openspc2.org/reibun/RaspberryPI/OS/Raspbian/camera/0001/

再起動したら、再度ターミナルを起動します。

http://www.openspc2.org/reibun/RaspberryPI/OS/Raspbian/terminal/0001/

ターミナルが起動したら

raspistill -o /home/pi/data/0.jpg

と入力してみて下さい。カメラ映像が数秒間画面に表示されたあと、撮影が行われます。そしてデスクトップ画面に0.jpgというファイルが作成されます。

このファイルをダブルクリックすると、撮影された画像が表示されます。うまく撮影できなかった場合は、ラズベリーパイとカメラの接続、カメラが使えるようになっているかどうか設定の確認をしてください。

raspistillが撮影コマンドで、数多くのオプションがあります。単純にraspistillとだけ入力すると、使用できるオプションの一覧が表示されます。
-wで横幅、-hで縦幅を指定できます。

ハイビジョンサイズで十分な場合などは、サイズを指定しておくとよいでしょう。多くのオプションがあるので、いろいろ指定して動作を確認してみてください。

うまく撮影できたら次に進みます。今度は、定期的に撮影するための処理を書きます。ターミナルから

crontab -e

と入力します。これは定期的処理をさせるためのものです。iのキーを押してから、以下のように入力します(コピー&ペーストしてもらう方が間違いがありません)。

入力したら、、escキーを押した後に:wqと入力しリターンキーを押します。

*/1 * * * * rm /home/pi/0.jpg;raspistill -o /home/pi/data/0.jpg -t 5100 -n -q 50 -vf -hf

エディタはvi互換なので、ちょっと操作方法を覚えないと使いにくいかもしれません。操作方法は検索すると出てきます。例えば以下のようなページです。

https://net-newbie.com/linux/commands/vi.html

これで1分間隔で、ホームフォルダに0.jpgというファイルが作成されます。GUIで開くとカメラで撮影した画像が表示されるはずです。

先ほども書きましたが、ラズベリーパイでSDカードに保存するのは、カードが壊れてしまうので好ましくありません。以下のようにRAMディスクを作成して、そこに保存した方が無難です。

http://www.openspc2.org/reibun/RaspberryPI/OS/Raspbian/setting/1002/

ラズベリーパイに撮影した画像を保存していく方法もありますが、Macなどパソコンに画像を転送し、パソコン側で保存しておくこともできます。パソコンなら大容量のハードディスクがあるので、かなり余裕を持って撮影した映像を保存しておくことができます。

以下は、Macの場合の画像転送プログラムです。プログラムを入力し、pi.shといった名前を付けて保存します。なお、書体の都合上バックスラッシュが円記号になっているかもしれません。その場合は、円記号でなくバックスラッシュに読み替えてください。

#!/bin/bash
expect -c "
set timeout 4
spawn env LANG=C /usr/bin/scp pi@192.168.11.200:/home/pi/0.jpg /Users/■■■/pi/temp.jpg
expect \"passsword:\"
send \"●●●●\n\"
expect \"\\\$\"
exit 0
"
mkdir /Users/■■■/pi/`date +%Y%m%d` 2>/dev/null
mv /Users/■■■/pi/temp.jpg /Users/■■■/pi/`date +%Y%m%d`/`date +%Y%m%d%H%M`.jpg

なお、このプログラムで■■■はMac側のユーザー名になります。●●●●は
ラズベリーパイのパスワードになります。

4行目の「/Users/■■■/pi/temp.jpg」は保存先のフォルダのパスになります。この場合、ユーザーのホームフォルダ内にpiフォルダがあり、そこにtemp.jpgという名前で保存します。なお、temp.jpgは最終的に年月日と時間を組み合わせたファイル名に変更されます。また、

pi@192.168.11.200

のpiはラズベリーパイ側のユーザー名になります。異なるユーザー名の場合は変更してください。192.168.11.200は、ラズベリーパイが接続されているネットワークのIPアドレスになります。接続しているIPアドレスに変更しておいてください。

最後に、ターミナルでcrontab -eと入力します。iのキーを押してから以下のように入力します。先ほどと同様、■■■はMac側のユーザー名になります。

*/1 * * * * /Users/■■■/pi.sh

これで1分ごとに画像を転送してくることができます。なお、タイミングによってはうまくいかないこともあるので、その場合は#!/bin/bashの後にsleep 10の命令を入れ、10秒待つように調整してください。


【古籏一浩】openspc@alpha.ocn.ne.jp
http://www.openspc2.org/

急増したバーチャルユーチューバー。何人か見たけど、やはり性に合う合わないというのがあります。基本ラジオのパーソナリティなので、やはりおしゃべりが上手くないといけないかなあ、と。

とりあえず体力ある時はシロ、そうでないときは東雲めぐといったところで。東雲めぐはゲームプレイとかないので、画面を見る必要がなく車を運転しながら聞けるのがいい。

・シロ
https://www.youtube.com/channel/UCLhUvJ_wO9hOvv_yYENu4fQ

・東雲めぐ
https://www.youtube.com/channel/UCNA0XC_zxS63d4Q-JMIMyug

・みんなのIchigoLatte入門 JavaScriptで楽しむゲーム作りと電子工作
https://www.amazon.co.jp/dp/4865940936/
[正誤表]
http://www.openspc2.org/book/error/ichigoLatte/

・After Effects自動化サンプルプログラム 上巻、下巻
https://www.amazon.co.jp/dp/4844397591/
https://www.amazon.co.jp/dp/4844397605/

・IchigoLatteでIoT体験
https://www.amazon.co.jp/dp/B06X3X1CHP/
http://digiconcart.com/dccartstore/cart/info/2561/218591

・みんなのIchigoJam入門 BASICで楽しむゲーム作りと電子工作
http://www.amazon.co.jp/dp/4865940332/

・Photoshop自動化基本編
http://www.amazon.co.jp/dp/B00W952JQW/

・Illustrator自動化基本編
http://www.amazon.co.jp/dp/B00R5MZ1PA/

・4K/ハイビジョン映像素材集
http://www.openspc2.org/HDTV/

・クリエイター手抜きプロジェクト
http://www.openspc2.org/projectX/