Raspberry Pi用DIY赤外線モーションセンサー構築 - ステップバイステップガイド
2015年7月、コロラド州立大学での高校インターンシップで、Raspberry Pi用の短距離赤外線近接センサーを設計しました。このセンサーはラインフォローロボット、モーションアクティブカメラなどに電力を供給できます。
以下は、コンポーネントからコードまで、信頼性が高く低コストな赤外線モーション検出器の構築方法を示す完全ガイドです。
材料
- Raspberry Pi(GPIO搭載の任意のモデル)
- 片面穴あき試作基板(任意のサイズ)
- 1×ブレッドボード(試作用)
- 被覆ジャンパーワイヤー(赤、黒、黄)
- 1×IR LEDエミッター
- 1×IR LEDレシーバー(フォトトランジスタ)
- 1×標準LED(任意の色) - 視覚インジケーター
- 1×Piの5V GPIOピンからの5V電源
- 1×LM358N9013デュアルオペアンプ
- 1×1kΩトリマーポテンショメーター
- 抵抗: 39Ω、1kΩ、10kΩ、6.8kΩ、3.5kΩ
- オプション: 絶縁テープ、3×ヘッダーピン、メス-メスジャンパーケーブル、ワイヤーストリッパー、カッター、はんだごて、はんだ
ステップ1 - ブレッドボードで試作
回路図(リンク先)に従い、Piの5V GPIOピンから電源を供給します。LM358の出力電圧は、抵抗分圧で3.3Vに降圧され、PiのGPIO入力制限内に収まります。
配線後、メス-メスジャンパーケーブルでブレッドボードをPiに接続。LEDが点灯しない場合は、ポテンショメーターを右に回してLEDが点灯するまで調整。電源投入直後に点灯する場合は、ノブを左に回してLEDが消えるまで回し、再びゆっくり右に回してLEDが点灯した時点で停止。
ステップ2 - 穴あき基板へ移植
試作が動作したら、部品を穴あき基板にはんだ付けします。電源用に明確な「+」と「-」側を確保。各部品を固定し、必要な接続にはジャンパーワイヤーを使用。グラウンド、出力、電源をヘッダーピンに接続。余分なワイヤーを切り、テスターでテストし、導通を確認。
オプション: IR LEDを絶縁テープで巻いてビームを絞り、実効範囲を延長。
ステップ3 - Piのプログラミング
以下のCプログラム(WiringPiが必要)を使用して、モーション検知時にPiカメラをトリガーします。スクリプトはファイル名と遅延を尋ね、その後写真を撮影します。
#include
#include
#include
#define SEN 0
#define MAXSIZE 50
#define A "Y"
#define B "O"
int main() {
wiringPiSetup();
pinMode(SEN, INPUT);
char answer1[MAXSIZE];
char answer2[MAXSIZE];
char name[MAXSIZE] = B;
char firstprefix[MAXSIZE] = "raspistill -hf -t ";
char secondprefix[MAXSIZE] = "xdg-open ";
printf("\nDo you want to name your picture first? (Enter Y/N and press ENTER): ");
scanf("%s", answer1);
if(strcmp(answer1, A) == 0){
printf("What do you want to call your video?: ");
scanf("%s", name);
strcat(name, ".jpg");
}
printf("How long do you wish the camera to wait before taking a picture? (Enter time in milliseconds and press ENTER): ");
scanf("%s", answer2);
strcat(firstprefix, answer2);
strcat(firstprefix, " -o ");
if(digitalRead(SEN) == LOW)
printf("\nCAMERA OFF\nError: Please check wiring OR move away from sensor.\n");
else {
printf("\nCAMERA ON\n1. To take picture, stand in front of camcorder.\n2. Your picture will be taken after the specified time.\n3. To view image, enter the command provided.\n\n");
for(;;){
if(digitalRead(SEN) == LOW){
system(strcat(firstprefix, name));
break;
}
}
}
strcat(secondprefix, name);
printf("Type *%s* and press ENTER to view your picture!\n", secondprefix);
return(0);
}
詳細は元のプロジェクトページを参照: Raspberry Pi用DIY赤外線モーションセンサーシステム。
製造プロセス
- 5ドルI2C温度センサーで作るRaspberry Pi温度ロガー
- Raspberry Pi制御アクアポニックスシステム:構築ガイド & コード
- Raspberry PiとPythonでリモート温度センサーを構築 – ステップバイステップガイド
- Raspberry Piで気象観測ステーションを構築し、日次天気データをメール送信
- HC-SR04超音波距離センサーをRaspberry Pi 3に接続 – 完全ガイド
- Raspberry Pi 3でコンピュータビジョン搭載SmartThingsモーションセンサー
- Home Assistant on Raspberry Piで安全なホーム監視 – モーション、アラーム、ビデオ撮影
- Raspberry PiでPIRモーションセンサーとLEDを制御
- Raspberry Piで低コスト土壌水分センサーを構築 - スマート灌漑に活用
- Raspberry Piでリニアホールセンサーを読み取り: JavaガイドとADC0832の知見
- Raspberry PiとDS18B20でマルチセンサー温度・光監視システムを構築