Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Motorisierte Kamerabasis zur Bewegungsverfolgung

Komponenten und Verbrauchsmaterialien

Arduino UNO
× 1
Kondensator 100 µF
× 1
LED (generisch)
× 5
PIR-Bewegungssensor (generisch)
× 5
Widerstand 220 Ohm
× 5
Servos (Tower Pro MG996R)
× 1

Über dieses Projekt

Ich hatte diese Idee, um ein Problem zu lösen, das ich mit meinen Heimüberwachungskameras hatte. Ich habe eine bestimmte Kamera, die an einer Wand zwischen zwei Räumen positioniert ist, Sie können jedoch nur einen Raum gleichzeitig sehen, es sei denn, Sie melden sich bei der Kamerasoftware an, um sie manuell zu drehen. Würde jemand den gegenüberliegenden Raum betreten, würde die Kamera die Aktion nie aufzeichnen. Um dieses Problem zu lösen, habe ich beschlossen, eine Bewegungserkennungs-/Tracking-Basis zu schaffen, auf der ich die Kamera anbringen konnte, damit sie sich automatisch dorthin neu positionieren würde, wo die Bewegung erkannt wurde.

WIE ES FUNKTIONIERT:

Dieses Gerät verwendet 5 PIR-Bewegungssensoren, um jede Bewegung innerhalb eines 180º-Radius zu erkennen. Sobald eine Bewegung erkannt wird, dreht ein Servomotor die Kamerabasis, um in diese Richtung zu zeigen. Es gibt auch 5 LED-"Status"-Leuchten im Inneren der Basis, die jedes Mal aufleuchten, wenn einer der PIR-Sensoren eine Bewegung erkennt.

SEHEN SIE ES IN AKTION!

VERKABELUNG :

Die Verkabelung für dieses Projekt ist einfach und unkompliziert, aber aufgrund der Tatsache, dass es außer dem Servomotor 5 von allem gibt, summiert sich die Anzahl der Drähte ziemlich. Sehen Sie sich den Schaltplan und die Schaltpläne unten auf dieser Seite an, um weitere Informationen zu erhalten, aber hier sind die Grundlagen.

die LED-Statusleuchten...

Ich habe ein Mini-Steckbrett verwendet, um die LED-Leuchten vom Rest der Schaltung getrennt zu halten, um bei Bedarf ein einfacheres Entfernen zu ermöglichen. Jede LED reagiert auf einen anderen PIR-Sensor und leuchtet jedes Mal auf, wenn sie eine Bewegung erkennt. Schließen Sie einfach jede LED an einen separaten digitalen Eingang (9-13) des Arduino an und erden Sie sie über einen 220-Ohm-Widerstand.

die PIR-Bewegungssensoren...

Ich habe für dieses Projekt die PIR-Sensoren des Modells HC-SR501 verwendet. Jeder PIR-Sensor muss an einen digitalen Eingang (2-6) des Arduino, 5V-Strom und Masse angeschlossen werden. Wenn Sie den gleichen PIR-Sensor wie ich verwenden, können Sie die Abdeckung (vorsichtig) abziehen und die Stifte sind darunter markiert. Sie verbinden jeden PIR-Sensor mit dem entsprechenden LED-Licht im später hochgeladenen Code.

der Servomotor...

Der Servomotor ist am Ständer befestigt, auf dem die Kamera sitzt, und dreht die Kamera, um sie mit dem aktiven PIR-Sensor auszurichten. Verwenden Sie die Pinbelegung für Ihren Motor, verbinden Sie einen Pin mit der Stromversorgung, einen anderen Pin mit dem Arduino-Digitaleingang 7 und den letzten Pin mit Masse. Stellen Sie vor dem Einschalten des Arduino sicher, dass ein 100-µF-Kondensator zwischen der Stromversorgung und der Masse des Motors angeschlossen ist, um die Platine vor den Stromstößen zu schützen, die auftreten, wenn sich der Motor bewegt.

Bei Servomotoren ist zu beachten, dass nicht alle einen vollen Bewegungsbereich von 180 ° haben. Nach einigen Tests habe ich herausgefunden, dass sich meins nur um 160 ° bewegt hat, also ändern Sie den Code entsprechend, wenn sich Ihr Motor unterscheidet. Sie werden wissen, dass der Motor versucht, sich zu weit zu bewegen, wenn er an der letzten PIR-Sensorposition ein Schleifgeräusch macht.

AUFBAU :

Ich habe einen alten Memorex CD-Beschrifter für das Servogehäuse und die Oberfläche für eine Kamera verwendet. Ich habe es versäumt, ein Vorher-Bild zu machen, daher ist das Bild unten das einzige verbleibende, das ich online finden konnte. Das Rückteil war eine flache, stabile Plastikscheibe, die sich schließlich in einem Stück löste (nach ein wenig Überredung mit meinem Schraubenzieher), so dass es großartig für einen Platz für meine Kamera funktionierte. Es wurde auch mit 4 abnehmbaren Gummifüßen geliefert, die der Kamera etwas mehr Halt geben, wenn sich der Motor bewegt.

Ich nahm meine Zange zum schwarzen Teil in der Mitte, um es zu entfernen … und damit meine ich, zerlege es in so viele Teile wie möglich, bevor es weg ist :)  Als nächstes bohrte ich mit meinem Dremel ein paar Löcher in die Basis und dann befestigte den Servomotor mit ein paar Schrauben.

Schließlich habe ich eine weitere Schraube verwendet, um den Servomotor an dem Stück zu befestigen, in dem die Kamera sitzt. Ich hatte ein Problem, bei dem das Gewicht der Kamera dazu führte, dass die Basis kippte, also löste ich dies, indem ich einen Pappzylinder gerade groß genug machte, um lose zwischen Motor und Kamera zu passen. Jetzt bewegt es sich immer noch frei, hat aber mehr Unterstützung durch das gleichmäßig verteilte Gewicht.

So sieht alles aus, nachdem die PIR-Sensoren installiert und alle Schaltkreise fertiggestellt wurden. Sie werden feststellen, dass ich mehrere Steckbretter verwendet habe, um mein Projekt abzuschließen. Der Grund dafür ist, dass es extrem einfach war, sie in die Basis zu integrieren und auszuwählen, welche für die Fehlerbehebung und spätere Erweiterung entfernt werden soll.

Um das Projekt abzuschließen, habe ich alle sichtbaren Teile des Kartons schwarz lackiert, damit er mit dem schwarzen Ständer oben nahtloser aussah.

Hier ist das fertige Produkt nach dem Lackieren...


Code

  • Der Hauptcode
Der HauptcodeArduino
Die PIR-Sensoren werden nach dem Einschalten des Arduino 15 Sekunden lang kalibriert. Es wird empfohlen, während dieses Vorgangs den Raum zu verlassen, damit die Sensoren ein bewegungsgetreues Bild des Raumes erhalten.
/******************** ******************************** Die motorisierte Kamerabasis nach Bewegung ****** von Lindsay Fox *** ****************************************************/ // Servor motor#include Servo camServo; // Benennen Sie den Servomotor, der die Kamera steuert baseint currentPIRposition =0; // aktuellen Winkel des Servos einstellen // LED-Statusleuchtenint LEDpin[] ={9,10,11,12,13}; // LED-Pin-Nummernint currentLEDpin =9; // der aktuelle LED-Pin; beginnen Sie mit dem ersten in der obigen Sequenz // PIR-Sensorenint PIRpin[] ={2,3,4,5,6}; // PIR-Pin-Nummernint currentPIRpin =2; // der aktuelle PIR-Pin; beginnen Sie mit dem ersten in der obigen Sequenzint PIRprevState[] ={1,1,1,1,1}; // der vorherige Zustand des PIR (0 =LOW, 1 =HIGH)int PIRposition[] ={157,117.75,78.5,39.25,0}; // Winkel für Servomotor zuweisen (0-157 gleichmäßig auf 5 PIR-Sensoren verteilt) boolescher PIRstatus; // Status des PIR-Sensors entweder auf wahr oder falsch setzen ////// SETUP /////////////////////////////// //////void setup () { Serial.begin (9600); camServo.attach(7); // Servo-Pin zuweisen für (int p =0; p <5; p++) {// alle PIR-Sensoren als INPUTS setzen pinMode (PIRpin [p], INPUT); } // Ende 'p' for for (int l =0; l <5; l++) { // setze alle LEDs als AUSGÄNGE pinMode (LEDpin[l], OUTPUT); } // Ende 'l' für /////// PIR-SENSOREN KALIBRIEREN /////// Serial.print ("PIR-Sensoren kalibrieren"); for (int c =0; c <15; c++) {// PIR-Sensoren für 15 Sekunden kalibrieren (Änderung von 10-60 Sek. abhängig von Ihren Sensoren) Serial.print ("."); Verzögerung (1000); // 1 Sekunde warten} // Kalibrierung für Serial.println beenden ("PIR-Sensoren bereit"); camServo.write(78.5); // Bewegen Sie das Servo in die Mittelposition, um zu beginnen} // Setup beenden ///// MAIN LOOP /////////////////////////// ///////void loop () { for (int PIR =0; PIR <5; PIR++) { // starte diese Schleife für jeden PIR-Sensor currentPIRpin =PIRpin[PIR]; // aktuellen PIR-Pin auf aktuelle Zahl in 'for'-Schleife setzen currentLEDpin=LEDpin[PIR]; // aktuellen LED-Pin auf aktuelle Zahl in 'for'-Schleife setzen PIRstatus =digitalRead (currentPIRpin); if (PIRstatus ==HIGH) {// wenn eine Bewegung auf dem aktuellen PIR-Sensor erkannt wird digitalWrite (currentLEDpin, HIGH); // entsprechende LED einschalten if(PIRprevState[PIR] ==0) {// wenn der vorherige Zustand des PIR-Sensors LOW ist if (currentPIRposition !=currentPIRpin &&PIRprevState[PIR] ==0) {// wenn hoher PIR unterschiedlich ist als aktuelle Position PIR dann zur neuen Position bewegen camServo.write(PIRposition[PIR]); Serial.print ( "Aktueller Winkel:"); Serial.println (PIRposition [PIR]); Verzögerung (50); currentPIRposition =currentPIRpin; // aktuelle PIR-Position auf aktiven [PIR]-Pin zurücksetzen PIRprevState [PIR] =1; // vorherigen PIR-Zustand auf HIGH setzen} PIRprevState[PIR] =1; // den vorherigen PIR-Zustand auf HIGH setzen, wenn die aktuelle Position mit dem aktuellen PIR-Pin übereinstimmt} // PIRprevState beenden, wenn} // PIRstatus beenden, wenn sonst { // digitalWrite (currentLEDpin, LOW); // die LED visualisiert den Zustand des Sensorausgangs PIRprevState [PIR] =0; // setze den vorherigen PIR-Zustand auf LOW } // end else } // end [PIR] for loop } // end main loop

Schaltpläne


Herstellungsprozess

  1. Kamera
  2. Minimale RaspberryPI-Basis
  3. Bewegungssensor mit Raspberry Pi
  4. Alarmsystem zur Bewegungserkennung
  5. Bewegungsgesteuerte AWS IoT-Schaltfläche
  6. Himbeere mit Kamera im Vogelhaus
  7. BrickPi-Bookreader
  8. LIVE-KAMERA-STREAMING HIMBEE PI – BEWEGUNGS-SETUP
  9. Linearbewegungstechnologie
  10. plenoptische Kamera