Arduino Laser Tripwire
コンポーネントと消耗品
> ![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 3 | |||
![]() |
| × | 1 | |||
![]() |
| × | 2 | |||
| × | 1 | ||||
![]() |
| × | 1 | |||
![]() |
| × | 1 |
アプリとオンラインサービス
> ![]() |
|
このプロジェクトについて
レーザートリップワイヤーの構築
コンポーネント
次のものが必要になります:
- いくつかのジャンパー線
- 3 x10k抵抗器
- 2xフォトレジスター
- ボタン
- ブザー
- レーザー
- Arduino
- ブレッドボード
- そして鏡
また、レーザー検出回路には別のブレッドボードを使用しました。 (これは、ヒープがフォトレジスターにレーザーを配置するのに役立ちました。)

レーザー検出器を作る
回路のレーザー検出セクションから始めます。
最初に2本のジャンパー線をつかみます。赤と黄色があります。 2本のジャンパー線を2つの別々の端子台に配置します。フォトレジスターをつかんで、赤いリード線と端子台に接続します。別の端子台と赤いリード線の間にもう一方のフォトレジスタを配置します。黄色のリード線から10kの抵抗器をフォトレジスターの1つに接続し、他の10Kの抵抗器を他のフォトレジスターと黄色のリード線の間に接続します。さらに2本のリード線をつかみ、それらをフォト抵抗器と10k抵抗器の各交点に接続します。緑とオレンジのジャンパー線を使用しました。
黄色のリード線をブレッドボードのマイナスに接続し、赤色のリード線をブレッドボードのプラスに接続します。オレンジをA0に接続し(これに接続されているフォトレジスターがレーザー検出器になります)、グリーンをA1に接続します(これに接続されているフォトレジスターが環境光検出器になります)。

次はブザーを鳴らそう
ブレッドボードの任意の場所にブザーを配置します。マイナスレールとブザーのマイナスの間にリード線を接続します。ブザーのプラス側をArduinoのピン3に接続します。

ボタンを作る
次は、ボタンセクションを作成します
2つの端子ストリップの間にボタンを配置します(2つのストリップの間にボタンが押されたときにのみ接触することを確認してください)。最後の10k抵抗をボタンの一方の端と負のピンに配置します。ジャンパー線を使用してアースレールに接続しました。ボタンのもう一方の端をプラスレールに接続します。次に、ボタンと抵抗の交点をArduinoのピン4に接続します。
レーザー光の時間です!
最後に、レーザーをピン2とアースに接続しましょう。私はこれらの両方にArduinoのピンを使用しました。クロコダイルクリップをスプリングとケーシングに接続し、ベルクロでボタンを押したままにして「ハッキング」した安価なレーザーを使用しました。

Laser TripWireを実行するプログラムを作成しました。
ボタンが押されているかどうかを継続的にチェックします。押すとセットアップモードになり、もう一度押すと武装モードになります。
セットアップモードの場合、次のようになります。
- 値をシリアルポートに出力します。
- フォトレジスタのライトが十分に明るい場合、ピン13が点灯します。この機能により、レーザーを向けることができます。
武装モードでは、次のことを行います。
- 3秒ごとにシリアル通信で報告します。
- レーザービームが遮断されると、トリップモードが開始され、レーザーが遮断されたためにフォトレジスターの値が低下するかどうかがチェックされます。
トリップモードでは、トリップワイヤが「トリップ」されています:
- ビープ音が3回鳴り、データがシリアルポートに送信されます。
- その後、武装モードに戻ります。
コード
- レーザートリップワイヤー
レーザーTripwire Arduino
// 5ピントリップワイヤ// Variablesint mode =1; int ambiant; int trip =1000; // laserintを使用したときに取得するライト値minLight =900; int makeBeep =1; //ビープ音なしの場合は0、ビープ音の場合は1!int atAverage; long millisCount; //出力ピンsintlaserPin =2; int ledPin =13; int buzzerPin =3; String modeNames [3] ={"SETTINGS"、 "ARMED"、 "TRIP"}; //入力PinsintmodePin =4; int tripPin =A0; int ambiantPin =A1; void setup(){pinMode(ledPin、OUTPUT); pinMode(laserPin、OUTPUT); pinMode(buzzerPin、OUTPUT); pinMode(modePin、INPUT); Serial.begin(9600);} void loop(){//ボタンが押されたときif(digitalRead(modePin)==1){trip =analogRead(tripPin); mode =mode + 1; if(mode> =2){mode =0; }ビープ音(1); delay(300); } //モードが変更されたときに何かを実行しますswitch(mode){case 0://キャリブレーションモードdigitalWrite(laserPin、HIGH); ambiant =analogRead(ambiantPin); trip =analogRead(tripPin); atAverage =ambiant +((trip-ambiant)/ 2); stats(); if(trip> =minLight){digitalWrite(ledPin、HIGH); } else {digitalWrite(ledPin、LOW); } 壊す;ケース1://武装モードdigitalWrite(laserPin、HIGH); digitalWrite(ledPin、LOW); ambiant =analogRead(ambiantPin); atAverage =ambiant +((trip-ambiant)/ 2); if(analogRead(tripPin)=3000){millisCount =millis(); stats(); } 壊す;ケース2://トリップモードif((millis()-millisCount)> =1000){millisCount =millis(); stats();ビープ音(3);モード=1; } 壊す; } delay(1); //少し待つ} // Beepsvoid beep(int qty){int count; if(makeBeep ==1){for(count =1; count <=qty; count ++){digitalWrite(buzzerPin、HIGH); delay(50); digitalWrite(buzzerPin、LOW); delay(50); }}} //統計をシリアルポートに書き込みますvoidstats(){Serial.print( "A:"); Serial.print(ambiant); Serial.print( "T:"); Serial.print(trip); Serial.print( "AT:"); Serial.print(atAverage); Serial.print( "モード:"); Serial.print(modeNames [mode]); Serial.println( "");}
回路図
ブレッドボードビュー 

製造プロセス