Skip to content

Raspberry Piでインターバルカメラ

こんにちは、技術系の投稿は初めてなので不安です。書き方とか(´・ω・`;)

今回はRaspberry PiでWEBカメラで定期的に撮影し、ついでにピエゾスピーカーで撮影したことを知らせるインターバルカメラを作りました。

必要なもの

wp-1455890238609.jpg

  • WEBカメラ
  • ピエゾスピーカー(圧電スピーカー)

以上!

準備

今回はfswebcamという写真を撮るソフトとWiring PiというCでプログラムできるソフトの合わせ技でやります。こういうはシェルスクリプトの方が早い気がしますが使ったことがないので今回は使いません。

WiringPiをインストールしていない方はインストールしてください

fswebcamをインストールします。

sudo apt-get install fswebcam

できたら

fswebcam -d /dev/video0 -D 2 -r 400 --jpeg 95 capture.jpg

で写真がとれます。

プログラム

webcam.cを作り編集していきます
(SFTPを使ってPCから転送するとはかどります。詳しくはこちらなどを参照してください

#include <wiringPi.h>
#include <stdio.h>
#include <softTone.h>
#define GPIO17 17
int main(void) {
        int i=0;//連番保存のためのカウントする変数
        if(wiringPiSetupGpio() == -1) return 1;//raspiのピンの指定方法の設定
        pinMode(GPIO17, OUTPUT);//スピーカーをつなぐピン
		softToneCreate (GPIO17) ;//スピーカーにすると宣言
		delay(30000);//電源入れた最初はなんとなく30秒間をあける
        while(1){
			i++;//1を足す
			delay(30000);//写真を撮る間隔を指定ここでは30秒
			softToneWrite (GPIO17,700);//700Hzの音を出す(たしか700Hzはドの音だった)
            delay(500);
			softToneWrite (GPIO17,0);//音を止める
				
			unsigned char s[16];//数字を文字列に変える?
				sprintf(s,"%d",i);
				char str1[] ="sudo fswebcam -d /dev/video0 --no-banner -r 400 --jpeg 95 /home/pi/webcam/long";
				strcat(str1,s);//文字列の結合
				strcat(str1,".jpg");//文字列の結合
				
				system(str1);//コマンドの実行
				
        }


        return 0;
}

突っ込みどころ満載のコードだと思います。すみません
system()はコンソールで実行できるコマンドを実行できます。(こういうの何て言えばいいの?)
あと今回は日付表示はいらなかったので –no-banner にしてこんな感じに書いてます。

fswebcam -d /dev/video0 --no-banner -r 400 --jpeg 95 /home/pi/webcam/capture.jpg

/home/piまで指定してるのはラズパイの起動と同時にこれも起動するようにしたら/home/piまで書かないといけなかったようです。

あとはGPIO17とGNOにピエゾスピーカーを繋げれば完成。ピエゾスピーカーに極性はありません。

まずはコンパイルです。softToneを使うときは -lpthreadも必要になります。

cc -o webcame webcamera.c -lwiringPi -lpthread
sudo ./webcame

で実行です。
音とともに写真が撮れたら成功です

自動起動の設定

今回はraspiの電源を入れると勝手にプログラムが実行されるようにしたかったのでその設定をします。
今回はmagbotの設定のサイトを参考にしました

まずnanoで/etc/inittabを編集して、オートログインの設定をします。

sudo nano /etc/inittab

そして

1:2345:respawn:/sbin/getty 38400 tty1

を#でコメントアウトします。
んで、

1:2345:respawn:/bin/login -f pi tty1 </dev/tty1>/dev/tty1 2>&1

新しくこれを書き込めばおkらしいです。間違えないようにしてください。

次に自動起動の設定をします

sudo nano /etc/rc.local

を開いて
exit 0のまえに

/home/pi/webcame &

を入力します&を書き忘れるとraspiが起動しないそうなので気を付けてください
あとは
sudo reboot
して起動されてたら完成です。

実戦導入

鋸山に行ってきました
DSC_0177
DSC_0181

いろいろ取り付け場所を工夫したのですが、あまりうまく撮れませんでした。
1000枚撮ったんですけどね。
long91
こんな感じのがたくさん撮れてました。

なんか改良の余地ありそうなのでまた作り直すかもです。いや、めんどくさいからいいや
今回、これを作るにあたって、Twitterの方々からいろいろアドバイスをもらいました。Ecruさん、ぼんじんさん、qmoreさんありがとうございます。

Be First to Comment

コメントを残す

メールアドレスが公開されることはありません。