Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Beweging volgt gemotoriseerde cameravoet

Componenten en benodigdheden

Arduino UNO
× 1
Condensator 100 µF
× 1
LED (generiek)
× 5
PIR-bewegingssensor (algemeen)
× 5
Weerstand 220 ohm
× 5
Servo's (Tower Pro MG996R)
× 1

Over dit project

Ik kwam met dit idee om een ​​probleem op te lossen dat ik had met mijn huisbeveiligingscamera's. Ik heb een bepaalde camera die op een muur tussen twee kamers is geplaatst, maar je kunt maar één kamer tegelijk zien, tenzij je inlogt op de camerasoftware om deze handmatig te draaien. Als iemand de tegenoverliggende kamer zou binnenlopen, zou de camera de actie nooit opnemen. Om dit probleem op te lossen, besloot ik een basis voor bewegingsdetectie/tracking te maken waarop ik de camera kon bevestigen, zodat deze zichzelf automatisch zou verplaatsen naar de plek waar de beweging werd gedetecteerd.

HOE HET WERKT:

Dit apparaat gebruikt 5 PIR-bewegingssensoren om elke beweging binnen een straal van 180º te detecteren. Zodra beweging wordt gedetecteerd, draait een servomotor de camerabasis om in die richting te wijzen. Er zijn ook 5 LED-statuslampjes in de basis die gaan branden wanneer een van de PIR-sensoren beweging detecteert.

ZIE HET IN ACTIE!

BEDRADING:

De bedrading voor dit project is eenvoudig en ongecompliceerd, maar omdat er van alles 5 zijn behalve de servomotor, begint het aantal draden behoorlijk op te lopen. Bekijk het schakelschema en de schema's onderaan deze pagina voor meer details, maar hier zijn de basisprincipes.

de LED-statuslampjes...

Ik heb een mini-breadboard gebruikt om de LED-lampjes gescheiden te houden van de rest van het circuit, zodat ze indien nodig gemakkelijker kunnen worden verwijderd. Elke LED reageert op een andere PIR-sensor en gaat branden wanneer hij beweging detecteert. Sluit eenvoudig elke LED aan op een aparte digitale ingang (9-13) op de Arduino en aard ze via een weerstand van 220 ohm.

de PIR-bewegingssensoren...

Ik heb de HC-SR501-model PIR-sensoren voor dit project gebruikt. Elke PIR-sensor moet worden aangesloten op een digitale ingang (2-6) op de Arduino, 5V-voeding en aarde. Als je dezelfde PIR-sensor als ik gebruikt, kun je (voorzichtig) het deksel eraf halen en de pinnen zijn eronder gemarkeerd. Je verbindt elke PIR-sensor met het bijbehorende LED-lampje in de code die later wordt geüpload.

de servomotor...

De servomotor is bevestigd aan de standaard waar de camera zit en roteert de camera om uit te lijnen met de actieve PIR-sensor. Gebruik de pinout voor uw motor en sluit een pin aan op de voeding, een andere pin op de Arduino digitale ingang 7 en de laatste pin op aarde. Voordat u de Arduino van stroom voorziet, moet u ervoor zorgen dat u een condensator van 100 F aansluit tussen de voeding en de aarde van de motor om het bord te beschermen tegen stroompieken die optreden wanneer de motor beweegt.

Een ding om op te merken over servomotoren is dat ze niet allemaal een volledig bewegingsbereik van 180º hebben. Na wat testen kwam ik erachter dat de mijne slechts ongeveer 160º bewoog, dus pas de code dienovereenkomstig aan als uw motor verschilt. U weet dat de motor te ver probeert te bewegen wanneer hij een knarsend geluid maakt bij de laatste PIR-sensorpositie.

BOUW:

Ik gebruikte een oude Memorex cd-labelmachine voor de servobehuizing en het oppervlak voor een camera om op te zitten. Ik heb geen 'voor'-foto gemaakt, dus de onderstaande afbeelding is de enige overgebleven die ik online kon vinden. Het achterstuk was een platte, stevige plastic schijf die uiteindelijk in één stuk loskwam (na een beetje overreding van mijn schroevendraaier), dus dat werkte prima voor een plek om mijn camera te zetten. Het werd ook geleverd met 4 verwijderbare rubberen 'voetjes', die helpen om de camera wat meer grip te geven wanneer de motor beweegt.

Ik nam mijn tang mee naar het zwarte deel in het midden om het te verwijderen... en daarmee bedoel ik, breek het in zoveel mogelijk delen voordat het weg is :)  Vervolgens boorde ik een paar gaten in de basis met mijn Dremel en toen bevestigde de servomotor met een paar schroeven.

Ten slotte heb ik een andere schroef gebruikt om de servomotor aan het stuk te bevestigen waar de camera zal zitten. Ik kwam een ​​probleem tegen waarbij het gewicht van de camera ervoor zorgde dat de basis kantelde, dus ik loste dit op door een kartonnen cilinder te maken die net hoog genoeg was om losjes tussen de motor en de camera te passen. Nu beweegt het nog steeds vrij, maar heeft het meer steun met zijn gewicht dat gelijkmatig is verdeeld.

Zo ziet alles eruit nadat de PIR-sensoren zijn geïnstalleerd en alle circuits zijn voltooid. Je zult merken dat ik verschillende breadboards heb gebruikt om mijn project te voltooien. De reden hiervoor is dat het uiterst eenvoudig was om ze in de basis te plaatsen, en om te kiezen welke te verwijderen tijdens het oplossen van problemen en later uit te breiden.

Om het project te voltooien, heb ik alle zichtbare delen van het karton zwart gespoten, zodat het meer naadloos leek op de zwarte standaard erboven.

Hier is het eindproduct na het schilderen...


Code

  • De hoofdcode
De hoofdcodeArduino
De PIR-sensoren kalibreren gedurende 15 seconden na het opstarten van de Arduino. Het wordt aanbevolen om tijdens dit proces de kamer te verlaten, zodat de sensoren een getrouw beeld van de kamer krijgen zonder enige beweging.
/******************** ******************************* De beweging die volgt op de gemotoriseerde camerabasis ****** door Lindsay Fox *** **********************************************/ // Servomotor#include Servo camServo; // noem de servomotor die de camera bestuurt in currentPIRposition =0; // huidige hoek van servo instellen// LED-statusverlichting in LEDpin [] ={9,10,11,12,13}; // LED-pinnummersint currentLEDpin =9; // de huidige LED-pin; begin met de eerste in de bovenstaande volgorde// PIR-sensorenint PIRpin[] ={2,3,4,5,6}; // PIR-pinnummersint huidigePIRpin =2; // de huidige PIR-pin; begin met de eerste in de bovenstaande reeksint PIRprevState[] ={1,1,1,1,1}; // de vorige staat van de PIR (0 =LAAG, 1 =HOOG)int PIRposition [] ={157,117.75,78.5,39.25,0}; // wijs hoeken toe voor servomotor (0-157 gelijk verdeeld over 5 PIR-sensoren) booleaanse PIR-status; // Stel de status van de PIR-sensor in als waar of onwaar///// SETUP //////////////////////////////// //////void setup () { Serial.begin (9600); camServo.attach(7); // wijs servo-pin toe voor (int p =0; p <5; p ++) {// stel alle PIR-sensoren in als INPUTS pinMode (PIRpin [p], INPUT); } // end 'p' for for (int l =0; l <5; l++) {// stel alle LED's in als OUTPUTS pinMode (LEDpin [l], OUTPUT); } // end 'l' for /////// KALIBREER PIR-SENSOREN /////// Serial.print ("PIR-sensoren kalibreren"); for(int c =0; c <15; c++) { // kalibreer PIR-sensoren gedurende 15 seconden (wijzig van 10-60 sec afhankelijk van uw sensoren) Serial.print("."); vertraging (1000); // wacht 1 seconde } // beëindig de kalibratie voor Serial.println ("PIR Sensors Ready"); camServo.write (78.5); // verplaats de servo naar de middenpositie om te beginnen } // end setup///// MAIN LOOP /////////////////////////// ///////void loop () { for (int PIR =0; PIR <5; PIR ++) { // start deze lus voor elke PIR-sensor currentPIRpin =PIRpin [PIR]; // stel de huidige PIR-pin in op het huidige nummer in de 'for'-lus currentLEDpin =LEDpin [PIR]; // stel de huidige LED-pin in op het huidige nummer in de 'for'-lus PIRstatus =digitalRead (currentPIRpin); if (PIRstatus ==HIGH) {// als beweging wordt gedetecteerd op de huidige PIR-sensor digitalWrite (currentLEDpin, HIGH); // zet de bijbehorende LED aan als (PIRprevState [PIR] ==0) {// als de vorige status van de PIR-sensor LAAG is als (currentPIRposition! =currentPIRpin &&PIRprevState [PIR] ==0) {// als hoge PIR anders is dan huidige positie PIR ga dan naar de nieuwe positie camServo.write(PIRposition[PIR]); Serial.print("Huidige hoek:"); Serial.println(PIRpositie[PIR]); vertraging (50); huidigePIRpositie =huidigePIRpin; // reset huidige PIR-positie naar actieve [PIR] pin PIRprevState [PIR] =1; // stel de vorige PIR-status in op HOOG} PIRprevState [PIR] =1; // zet de vorige PIR-status op HOOG als de huidige positie hetzelfde is als de huidige PIR-pin} // end PIRprevState if} // end PIRstatus if else {// digitalWrite (currentLEDpin, LOW); // de led visualiseert de uitgangspinstatus van de sensoren PIRprevState [PIR] =0; // stel de vorige PIR-status in op LOW } // end else } // end [PIR] for loop } // end main loop

Schema's


Productieproces

  1. Camera
  2. Minimale RaspberryPI-basis
  3. Bewegingssensor met Raspberry Pi
  4. Bewegingsdetectie-alarmsysteem
  5. Bewegingsgestuurde AWS IoT-knop
  6. Framboos met camera in vogelhuisje
  7. BrickPi Bookreader
  8. LIVE CAMERA STREAMING RASPBERRY PI – BEWEGINGSINSTELLING
  9. Lineaire bewegingstechnologie
  10. Plenoptische camera
  11. Een inleiding tot gemotoriseerde kogelkraan