Bewegingsdetectoren
Bewegingsdetectoren, zoals hun naam al doet vermoeden, zijn sensoren die worden gebruikt om beweging te voelen. Ze worden vaak gezien in beveiligingsalarmen en bewegingsacties met bewegingen, maar kunnen worden gebruikt in combinatie met lineaire actuatoren voor een breed scala aan koele toepassingen. Een veel voorkomende toepassing van lineaire actuators En bewegingsdetectoren die samen worden gebruikt, zijn binnen spookhuizen voor jump -angsten. Maar samen kunnen lineaire actuatoren en bewegingsdetectoren ook worden gebruikt voor een breed scala aan thuisautomatiseringsprojecten.
Als u denkt aan bewegingsdetectoren, denkt u over het algemeen aan 2 typen:
- Passief infrarood - die veranderingen in lichaamswarmte (infraroodenergie) meet om beweging te detecteren
- Magnetron - Dat meet reflecties van objecten met behulp van magnetrons om beweging te detecteren
Deze twee soorten bewegingsdetectoren komen het meest voor, omdat ze vaak worden gebruikt in applicaties zoals beveiligingssystemen. Hoewel, er zijn veel andere soorten bewegingsdetectoren beschikbaar, waaronder gebiedsreflecterende sensoren, die afgeleid licht, trillingssensoren en ultrasone sensoren gebruikt [1]. Voor gebruik met hobbyisten en doe -het -zelfprojecten is de meest beschikbare en gebruikte type bewegingsdetector de passieve infrarood (PIR) bewegingssensor. Daarom zal de rest van deze blog zich richten op het gebruik van een PIR -bewegingsdetector met uw lineaire actuator. Hoewel elk type sensor verschillende implementaties zal hebben, zal veel van wat hieronder wordt beschreven over hoe een lineaire actuator met een bewegingsdetector te regelen vergelijkbaar is voor alle soorten bewegingsdetectoren.
Hoe zit het met nabijheidssensoren?
Nabijheidssensoren zijn geen bewegingsdetectoren omdat ze de nabijheid van een object in plaats van beweging detecteren. Functioneel, a nabijheids sensor kan u vertellen hoe dicht een object bij de sensor is, of het object beweegt of niet. Terwijl bewegingsdetectoren alleen worden geactiveerd wanneer er beweging is, ongeacht hoe dicht een object is. U kunt nabijheidssensoren gebruiken als bewegingsdetectoren, omdat de uitvoer van de nabijheidssensoren zal veranderen wanneer een object of persoon voor de sensor beweegt. Hoewel, nabijheidssensoren alleen detecteren hoe dicht het dichtst bij de sensor ligt, dus als er iets achter het dichtstbijzijnde object zou bewegen, zou de nabijheidssensor deze beweging niet detecteren. Hoewel het gebruik van een nabijheidssensor als bewegingsdetector mogelijk is, is dit misschien niet de beste oplossing voor uw ontwerp.
Het opzetten van uw PIR -bewegingsdetector
Als u op zoek bent naar uw eigen jump scare -robot voor Halloween of een ander bewegingsgevoelig project in gedachten heeft, wilt u uw PIR -bewegingsdetector gebruiken als een invoerschakelaar om te bepalen wanneer uw lineaire actuator zou moeten bewegen. Om dit te doen, wil je gebruik maken van een microcontroller, zoals een Arduino, om de uitvoer van uw PIR -bewegingsdetector te lezen en uw lineaire actuator aan te sturen. De uitgang van de PIR -bewegingsdetector is vergelijkbaar met een eenvoudige drukknop, wanneer er beweging is, verzendt de sensor een hoog signaal of spanning naar de microcontroller en wanneer er geen beweging is, wordt een laag signaal of spanning verzonden. Misschien wilt u ook uw PIR -sensor testen voordat u deze in uw ontwerp installeert, omdat sommige PIR -sensoren u in staat stellen de gevoeligheid van de sensor aan te passen voor betere prestaties.
Omdat u niet weet wanneer iemand uw bewegingsdetector zal doorlopen, moet u de uitvoer van de PIR -sensor in de hoofdlus van uw code constant lezen of u kunt gebruik maken van externe interrupts. Externe onderbrekingen zijn pennen van de Arduino die een spanningsverandering detecteren en in ons geval kunnen worden gebruikt om de Arduino te waarschuwen dat onze PIR -sensor beweging heeft gedetecteerd. Afhankelijk van uw toepassing is beide methoden voor het lezen van de output van de PIR -sensor mogelijk, hoewel deze laatste als best practice wordt beschouwd, omdat het ervoor zorgt dat uw code geen beweging mist die door de PIR -sensor wordt gedetecteerd. Als u van plan bent om een externe interrupt te gebruiken om een wijziging van uw bewegingsdetector te detecteren, moet u uw Arduino's gegevenasheet raadplegen om ervoor te zorgen welke pinnen van uw microcontroller kunnen worden gebruikt als onderbrekingspennen. Als dit niet het geval is, kunt u eenvoudig de uitvoer van de PIR -sensor aansluiten op een van de digitale invoerpennen van de Arduino. De PIR -sensor moet ook worden aangesloten op een geschikte stroombron en op een gemeenschappelijke grond.
Bewegingsgestuurde lineaire actuator
In beide onderstaande voorbeelden regelt de Arduino de lineaire actuator met behulp van een Motor bestuurder. Om te leren hoe u een lineaire actuator kunt besturen met een motorrijder of andere tussenliggende componenten, zoals relais, je kunt ons bericht bekijken Hoe u een lineaire actuator kunt besturen met een Arduino. Ook gebruikt geen van beide voorbeeld hieronder een Feedback lineaire actuator of Externe limietschakelaars In hun ontwerp, wat u meer controle over uw actuator zou geven dan zonder. Als u geïnteresseerd bent in hoe en welke feedbackopties beschikbaar zijn, kunt u ons bericht over het onderwerp bekijken hier.
Het bovenstaande codevoorbeeld laat zien hoe een interrupt in de Arduino IDE instelt, waarbij de interrupt wordt geactiveerd aan de stijgende rand van de spanningspuls. U kunt uw interrupt instellen om op verschillende punten in een spanningswijziging te worden geactiveerd en moet uw datasheet van uw microcontroller raadplegen om de beschikbare opties te bepalen. Nadat u een geschikte interrupt -pin hebt geïdentificeerd en geselecteerd, is het laatste aspect dat u moet doen om uw interrupt in te stellen, het schrijven van uw interrupt -serviceroutine. De interrupt -serviceroutine is een eenvoudige functie die de code zal uitvoeren telkens wanneer de interrupt wordt geactiveerd. In ons geval stelt onze interrupt -serviceroutine MotionDetector de vlagbeweging eenvoudig in op hoog wanneer de interrupt wordt geactiveerd.
Zodra uw Arduino de uitvoer van uw PIR -sensor heeft gelezen, hetzij door een externe interrupt te gebruiken of door eenvoudig de uitvoer te lezen, is hoe u deze feedback gebruikt om uw lineaire actuator te bedienen, afhankelijk van uw ontwerp en uw toepassing. Omdat de PIR -sensor alleen een binaire feedback geeft, zoals een drukknop, zal het niveau van controle over de lineaire actuator beperkt zijn. Een manier om de lineaire actuator met deze feedback te besturen, is door de actuator te vertellen om te bewegen wanneer de beweging wordt gedetecteerd, wat nuttig kan zijn in toepassingen zoals robotachtige springscheiding in een spookhuis. De bovenstaande code laat zien hoe u dit ontwerp zou kunnen implementeren. Zodra de MotionDetected -vlag is ingesteld op hoog, breiden we de lineaire actuator naar voren uit en na 10 seconden wordt de vlag gereset naar laag en trekt de actuator zich terug voor de volgende jump -schrik. Omdat we alleen de bewegingsdetector gebruiken om de Arduino te vertellen dat er iemand is, maken we gebruik van een timer om de vlag te resetten en te wachten tot de volgende persoon voorbij loopt.
Een andere methode is om te schakelen tussen uitgebreide en ingetrokken posities van de lineaire actuator elke keer dat beweging wordt gedetecteerd, wat nuttig kan zijn in applicaties voor thuisautomatisering. De implementatie van deze aanpak wordt hierboven weergegeven. In de routine voor interrupt -services wordt de vlagbeweging doorgezet met elke keer dat de PIR -sensor beweging detecteert. Wanneer de vlag hoog is ingesteld, wordt de lineaire actuator verlengd en wanneer de vlag op laag is ingesteld, wordt de actuator ingetrokken. We hebben ook een andere vlag -timerflag toegevoegd die wordt gebruikt, tijdvertraging toevoegen nadat de PIR -bewegingsdetector is geactiveerd. Deze vlag is hoog ingesteld wanneer de interrupt voor het eerst wordt geactiveerd en wordt pas laag verzonden na de ontworpen tijdsvertraging, wat een minuut in dit voorbeeld is. Het wordt ook gebruikt om ervoor te zorgen dat de waarde van de vlagbeweging is gedetecteerd pas na deze tijdsvertraging.
Referentie:
- Tross, K. (2019, oktober). De beginnersgids voor bewegingssensoren. Opgehaald van: https://www.safewise.com/resources/motion-sensor-guide/