工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

電動カメラベースに続くモーション

コンポーネントと消耗品

>
Arduino UNO
× 1
コンデンサ100µF
× 1
LED(汎用)
× 5
PIRモーションセンサー(汎用)
× 5
抵抗220オーム
× 5
サーボ(Tower Pro MG996R)
× 1

このプロジェクトについて

私は自分のホームセキュリティカメラで抱えていた問題を解決するためにこのアイデアを思いつきました。 2つの部屋の間の壁に配置された特定のカメラが1つありますが、カメラソフトウェアにログインして手動で回転させない限り、一度に1つの部屋しか見ることができません。誰かが反対側の部屋に入った場合、カメラはその行動を記録しません。この問題を解決するために、動きが検出された場所にカメラが自動的に再配置されるように、カメラを取り付けることができる動き検出/追跡ベースを作成することにしました。

仕組み:

このデバイスは、5つのPIRモーションセンサーを使用して、半径180度以内の動きを検出します。動きが検出されると、サーボモーターがカメラベースを回転させてその方向を指します。また、ベースの内側に5つのLED「ステータス」ライトが配置されており、PIRセンサーの1つが動きを検出するといつでも点灯します。

実際に見てください!

配線:

このプロジェクトの配線はシンプルでわかりやすいですが、サーボモーター以外は5本あるため、配線数がかなり増え始めています。詳細については、このページの下部にある回路図と回路図を確認してください。ただし、基本はここにあります。

LEDステータスライト...

必要に応じて簡単に取り外せるように、ミニブレッドボードを使用してLEDライトを残りの回路から分離しました。各LEDは異なるPIRセンサーに応答し、動きを検出するといつでも点灯します。各LEDをArduinoの個別のデジタル入力(9-13)に接続し、220オームの抵抗を介して接地するだけです。

PIRモーションセンサー...

このプロジェクトでは、HC-SR501モデルのPIRセンサーを使用しました。各PIRセンサーは、Arduinoのデジタル入力(2〜6)、5V電源、およびアースに接続する必要があります。私と同じPIRセンサーを使用している場合は、(慎重に)カバーを外すことができ、ピンは下にマークされています。後でアップロードするコードで、各PIRセンサーを対応するLEDライトに接続します。

サーボモーター...

サーボモーターはカメラが置かれているスタンドに取り付けられており、カメラを回転させてアクティブなPIRセンサーと位置合わせします。モーターのピン配列を使用して、1つのピンを電源に接続し、別のピンをArduinoデジタル入力7に接続し、最後のピンをアースに接続します。 Arduinoに電力を供給する前に、モーターの電源とアースの間に100µFのコンデンサを接続して、モーターの移動時に発生する電力サージからボードを保護してください。

サーボモーターについて注意すべきことの1つは、すべてが180度の可動範囲をすべて備えているわけではないということです。いくつかのテストの結果、私のものは約160度しか動かなかったことがわかりました。モーターが異なる場合は、それに応じてコードを変更してください。モーターが最後のPIRセンサー位置で研削音を出すときに、モーターが移動しすぎていることがわかります。

建設:

サーボハウジングには古いMemorexcdラベラーを使用し、カメラを置くための表面を使用しました。 「前」の写真を撮ることができなかったので、オンラインで見つけたのは下の画像だけです。後ろの部分は平らで頑丈なプラスチックのディスクで、最終的には(ドライバーから少し説得された後)1つの部分になって外れたので、カメラを置く場所として最適でした。また、取り外し可能な4つのゴム製の「足」が付属しているため、モーターが動いたときにカメラのグリップが少し向上します。

<図>

ペンチを中央の黒い部分に持って行って取り外しました…つまり、なくなる前にできるだけ多くの部分に分割します:)次に、Dremelを使用してベースにいくつかの穴を開けました。サーボモーターを2本のネジで取り付けました。

最後に、別のネジを使用して、カメラが配置される部品にサーボモーターを取り付けました。カメラの重さがベースを傾ける問題に遭遇したので、モーターとカメラの間にゆるく収まるだけの高さの段ボールシリンダーを作ることでこれを解決しました。今でも自由に動きますが、重量が均等に分散されているため、より多くのサポートがあります。

<図>

PIRセンサーが取り付けられ、すべての回路が完成した後のすべての外観は次のとおりです。プロジェクトを完了するためにいくつかのブレッドボードを使用したことに気付くでしょう。この理由は、ベース内にそれらを取り付けるのが非常に簡単であり、トラブルシューティングや後で拡張するときに、どれを削除するかを選択することが非常に簡単だったためです。

<図> <図>

プロジェクトを完了するために、段ボールの目に見えるすべての部分を黒くスプレーペイントして、上の黒いスタンドとよりシームレスに見えるようにしました。

これが塗装後の完成品です...

<図> <図> <図>


コード

  • メインコード
メインコード Arduino
PIRセンサーは、Arduinoの電源を入れてから15秒間キャリブレーションを行います。センサーが動きのない部屋の真の画像を取得できるように、このプロセス中に部屋を離れることをお勧めします。
 / ******************** ********************************電動カメラベースに続くモーション****** by Lindsay Fox *** ************************************************* / //サーブモーター#include サーボcamServo; //カメラを制御するサーボモーターに名前を付けますbaseintcurrentPIRposition =0; //サーボの現在の角度を設定します// LEDステータスlightsintLEDpin [] ={9,10,11,12,13}; // LEDピン番号intcurrentLEDpin =9; //現在のLEDピン;上記のシーケンスの最初から開始// PIRセンサーintPIRpin [] ={2,3,4,5,6}; // PIRピン番号intcurrentPIRpin =2; //現在のPIRピン;上記のシーケンスの最初から開始しますintPIRprevState [] ={1,1,1,1,1}; // PIRの以前の状態(0 =LOW、1 =HIGH)int PIRposition [] ={157,117.75,78.5,39.25,0}; //サーボモーターに角度を割り当てます(5つのPIRセンサー間で均等に分散された0-157)boolean PIRstatus; // PIRセンサーのステータスをtrueまたはfalseに設定します///// SETUP //////////////////////////////// ////// void setup(){Serial.begin(9600); camServo.attach(7); //サーボピンを(int p =0; p <5; p ++){//すべてのPIRセンサーをINPUTSとして設定pinMode(PIRpin [p]、INPUT); } // end'p 'for for(int l =0; l <5; l ++){//すべてのLEDをOUTPUTSとして設定pinMode(LEDpin [l]、OUTPUT); } // end'l 'for /////// CALIBRATE PIR SENSORS /////// Serial.print( "Calibrating PIR Sensors"); for(int c =0; c <15; c ++){// PIRセンサーを15秒間キャリブレーションします(センサーに応じて10〜60秒に変更します)Serial.print( "。"); delay(1000); // 1秒待ちます} // Serial.println( "PIR Sensors Ready");のキャリブレーションを終了しますcamServo.write(78.5); //サーボを中央位置に移動して開始します} //セットアップを終了します/////メインループ/////////////////////////// /////// void loop(){for(int PIR =0; PIR <5; PIR ++){// PIRセンサーごとにこのループを開始currentPIRpin =PIRpin [PIR]; //現在のPIRピンを 'for'ループの現在の番号に設定しますcurrentLEDpin =LEDpin [PIR]; //現在のLEDピンを 'for'ループの現在の番号に設定しますPIRstatus =digitalRead(currentPIRpin); if(PIRstatus ==HIGH){//現在のPIRセンサーでモーションが検出された場合digitalWrite(currentLEDpin、HIGH); //対応するLEDをオンにしますif(PIRprevState [PIR] ==0){// PIRセンサーの前の状態がLOWの場合if(currentPIRposition!=currentPIRpin &&PIRprevState [PIR] ==0){//高いPIRが次に、現在の位置PIRが新しい位置に移動しますcamServo.write(PIRposition [PIR]); Serial.print( "現在の角度:"); Serial.println(PIRposition [PIR]); delay(50); currentPIRposition =currentPIRpin; //現在のPIR位置をアクティブな[PIR]ピンにリセットしますPIRprevState [PIR] =1; //以前のPIR状態をHIGHに設定します} PIRprevState [PIR] =1; //現在の位置が現在のPIRピンと同じ場合は以前のPIR状態をHIGHに設定します} // PIRprevStateを終了します} // elseの場合はPIRstatusを終了します{// digitalWrite(currentLEDpin、LOW); // LEDは、センサーの出力ピンの状態を視覚化しますPIRprevState [PIR] =0; //以前のPIR状態をLOWに設定します} //終了else} //終了[PIR] forループ} //メインループを終了

回路図


製造プロセス

  1. カメラ
  2. 最小限のRaspberryPIベース
  3. RaspberryPiを使用したモーションセンサー
  4. モーション検知警報システム
  5. モーションコントロールされたAWSIoTボタン
  6. 巣箱のカムとラズベリー
  7. BrickPi Bookreader
  8. ライブカメラストリーミングラズベリーPI–モーションセットアップ
  9. 線形運動技術
  10. プレノプティックカメラ
  11. 電動ボールバルブの紹介