モーション検出器
モーション検出器は、その名前が示すように、動きを感知するために使用されるセンサーです。それらは一般的にセキュリティアラームやモーショントリガー照明システムで見られますが、広範囲のクールなアプリケーションのために線形アクチュエーターと組み合わせて使用できます。の1つの一般的なアプリケーション 線形アクチュエーター そして、一緒に使用されるモーション検出器は、ジャンプの恐怖のために幽霊の家にあります。しかし、線形アクチュエーターとモーション検出器を一緒に使用すると、幅広いホームオートメーションプロジェクトにも使用できます。
モーション検出器について考えると、通常、2つのタイプについて考えます。
- 受動的な赤外線 - 動きを検出するために体温(赤外線エネルギー)の変化を測定する
- 電子レンジ - 動きを検出するためにマイクロ波を使用してオブジェクトから反射を測定する
これらの2種類のモーション検出器は、セキュリティシステムなどのアプリケーションでよく使用されるため、最も一般的です。ただし、推定された光、振動センサー、および超音波センサーを使用する面積反射センサーを含む他の多くのタイプのモーション検出器が利用可能です[1]。愛好家やDIYプロジェクトで使用するために、最も一般的に利用可能で使用されるモーション検出器のタイプは、パッシブ赤外線(PIR)モーションセンサーです。このため、このブログの残りの部分は、線形アクチュエータを使用してPIRモーション検出器を使用する方法に焦点を当てます。各タイプのセンサーには異なる実装がありますが、モーション検出器を使用して線形アクチュエータを制御する方法について以下で説明するものの多くは、すべてのタイプのモーション検出器で類似しています。
近接センサーはどうですか?
近接センサーは、動きではなくオブジェクトの近接を検出するため、モーション検出器ではありません。機能的には、a 近接センサー オブジェクトが動いているかどうかにかかわらず、オブジェクトがセンサーにどれだけ近いかを知ることができます。モーション検出器は、オブジェクトがどれだけ近いかに関係なく、動きがある場合にのみトリガーされます。近接センサーの出力がセンサーの前で移動すると、近接センサーの出力が変化するため、近接センサーをモーション検出器として利用できます。近接センサーは、センサーに最も近いオブジェクトがどれだけ近いかを検出するだけなので、何かが最も近いオブジェクトの後ろに移動する場合、近接センサーはこの動きを検出しません。近接センサーをモーション検出器として使用することは可能ですが、設計の最良のソリューションではない場合があります。
PIRモーション検出器のセットアップ
ハロウィーン向けに独自のジャンプスケアロボットを設計したい場合、または別のモーションに敏感なプロジェクトを念頭に置いている場合は、PIRモーション検出器を入力スイッチとして利用して、線形アクチュエータがいつ移動するかを判断する必要があります。これを行うには、マイクロコントローラーを使用したいと思います。 Arduino、PIRモーション検出器の出力を読み取り、線形アクチュエータを駆動します。 PIRモーション検出器の出力は、単純なプッシュボタンに似ています。動きがある場合、センサーはマイクロコントローラーに高い信号または電圧を送信し、動きがない場合は低信号または電圧が送信されます。一部のPIRセンサーを使用すると、センサーの感度を調整してパフォーマンスを向上させるため、PIRセンサーを設計に取り付ける前に、PIRセンサーをテストすることもできます。
誰かがモーション検出器を通過する時期がわからないため、コードのメインループでPIRセンサーの出力を常に読み取るか、外部割り込みを利用する必要があります。外部割り込みは、電圧の変化を検出するArduinoのピンです。この場合、PIRセンサーが動きを検出したことをArduinoに警告することができます。アプリケーションに応じて、PIRセンサーの出力を読み取る方法は実行可能ですが、後者はPIRセンサーによって検出された動きをコードを見逃さないようにするため、ベストプラクティスと見なされます。外部割り込みを使用してモーション検出器からの変更を検出する場合は、Arduinoのデータシートを参照して、マイクロコントローラーのピンを割り込みピンとして使用できるようにする必要があります。そうでない場合は、PIRセンサーの出力をArduinoのデジタル入力ピンのいずれかに接続できます。 PIRセンサーは、適切な電源と共通の根拠にも接続する必要があります。
モーション制御線形アクチュエータ
以下の両方の例で、Arduinoは次のように線形アクチュエータを制御します モータードライバー。モータードライバーまたは他の中間コンポーネントを使用して線形アクチュエータを駆動する方法を学ぶために リレー、私たちの投稿をチェックすることができます Arduinoで線形アクチュエータを制御する方法。また、以下の例はどちらもaを利用していません フィードバック線形アクチュエータ または 外部制限スイッチ 彼らのデザインでは、それがないよりもあなたのアクチュエーターをより多くの制御することができます。フィードバックオプションがどのように、どのようなフィードバックオプションが利用できるかに興味がある場合は、トピックに関する投稿を確認できます。 ここ.
上記のコードの例は、電圧パルスの立ち上がりエッジで割り込みがトリガーされるArduino IDEで割り込みをセットアップする方法を示しています。電圧変化の異なるポイントでトリガーされるように割り込みを設定し、マイクロコントローラーのデータシートを参照して、利用可能なオプションを決定する必要があります。適切な割り込みピンを特定して選択したら、割り込みをセットアップするために必要な最後の側面は、割り込みサービスルーチンを作成することです。割り込みサービスルーチンは、割り込みがトリガーされるたびにコードが実行される単純な関数です。私たちの場合、割り込みサービスルーチンMotionDetectorは、割り込みがトリガーされたときにフラグのMotionDetectをHighに設定するだけです。
Arduinoが外部割り込みを使用するか、単に出力を読み取るだけでPIRセンサーの出力を読み取ったら、このフィードバックを使用して線形アクチュエータを制御する方法は、設計とアプリケーションに依存します。 PIRセンサーはプッシュボタンのようなバイナリフィードバックのみを提供するため、線形アクチュエータの制御レベルは制限されます。このフィードバックで線形アクチュエーターを制御する1つの方法は、アクチュエーターに動きが検出されるたびに移動するように指示することです。これは、お化け屋敷のロボットジャンプの恐怖などのアプリケーションで役立つ可能性があります。上記のコードは、この設計を実装する方法を示しています。 MotionDetectedフラグが高く設定されると、線形アクチュエーターを前方に延長し、10秒後にフラグが低くリセットされ、アクチュエータは次のジャンプスカアのために撤回します。モーション検出器のみを使用して、誰かがそこにいることをArduinoに伝えるため、タイマーを使用してフラグをリセットし、次の人が通り過ぎるのを待ちます。
別の方法は、モーションが検出されるたびに線形アクチュエーターの拡張位置と格納位置を切り替えることです。これは、ホームオートメーションアプリケーションで役立つ可能性があります。このアプローチの実装は上に示されています。割り込みサービスルーチンでは、PIRセンサーが動きを検出するたびに、フラグのMotionDetectedが切り替えられます。フラグが高く設定されると、線形アクチュエーターが延長され、フラグが低く設定されると、アクチュエータが撤回されます。また、PIRモーション検出器がトリガーされた後、使用される別のフラグタイマーフラグを追加しました。このフラグは、割り込みが最初にトリガーされると高く設定され、設計された時間遅延後にのみ低く送信されます。これは、この例では1分です。また、この時間の遅延まで、フラグMotionDetectedの値が切り替えられないようにするためにも使用されます。
参照:
- Tross、K。(2019年10月)。 モーションセンサーの初心者のガイド。 から取得: https://www.safewise.com/resources/motion-sensor-guide/