Innholdsfortegnelse:

Ultralydssensor for å fange posisjonelle endringer av objekter: 3 trinn
Ultralydssensor for å fange posisjonelle endringer av objekter: 3 trinn

Video: Ultralydssensor for å fange posisjonelle endringer av objekter: 3 trinn

Video: Ultralydssensor for å fange posisjonelle endringer av objekter: 3 trinn
Video: Non-Contact Long Range MLX90614-DCI Temperature Sensor with Arduino 2024, November
Anonim
Ultralydsensor for å fange posisjonelle endringer av objekter
Ultralydsensor for å fange posisjonelle endringer av objekter

Det er viktig å ha verdifulle ting trygge, det ville være halt hvis du fortsetter å vokte slottet ditt hele dagen. Ved å bruke bringebær pi -kameraet kan du ta snapsene i riktig øyeblikk. Denne guiden hjelper deg med å ta opp en video eller ta bildet når endringene registreres innenfor grenseområdet.

Maskinvare:

  1. Raspberry Pi 2/3/4
  2. Ultralydsensor
  3. Pi kamera
  4. Gensere

Trinn 1: Tilkoblinger

Tilkoblinger
Tilkoblinger
  • TRIG til RPI4B 17
  • VCC til RPI4B 5V
  • GND til RPI4B GND
  • Ekko til 470-ohm motstand til tilkobling-1
  • GND til 1K ohm motstand til tilkobling-1
  • tilkobling-1 til RPI4B 4

Kretsskjemaet er laget ved hjelp av circuito.io, den har alle de mest populære mikrokontrollerne, sensorene osv. Og plattformen er enkel å bruke for nybegynnere

Trinn 2: Last opp koden

Last opp koden
Last opp koden
Last opp koden
Last opp koden

Før du kjører skriptet, må du opprette en mappe gjennom følgende kommandoer som åpner terminalen og deretter redigere skriptfilen.

pi@raaspberrypi: mkdir media

pi@raaspberrypi: nano measure.py

Koden bruker kamera- og GPIO -biblioteker. Kontroller at GPIO_TRIGGER og GPIO_ECHO-pinnene er riktig koblet til 17. og 4. pinne på Raspberry Pi eksternt.

Kopier og lim inn koden nedenfor eller skriv inn i python -filen og navngi den som 'measure.py'

#Librariesimport RPi. GPIO as GPIO import time import os from picamera import PiCamera # Camera Mode camera = PiCamera () camera.rotation = 180 # Kommenter denne linjen hvis bildet er perfekt vinklet #GPIO Mode GPIO.setmode (GPIO. BCM) GPIO.setwarnings (False) #set GPIO Pins GPIO_TRIGGER = 17 GPIO_ECHO = 4 #sett GPIO -retning (IN / OUT) GPIO.setup (GPIO_TRIGGER, GPIO. OUT) GPIO.setup (GPIO_ECHO, GPIO. IN) def distanse (): # sett Trigger til HIGH GPIO.output (GPIO_TRIGGER, True) # sett Trigger etter 0.01ms til LOW time.sleep (0.00001) GPIO.output (GPIO_TRIGGER, False) StartTime = time.time () StopTime = time.time () # save StartTime while GPIO.input (GPIO_ECHO) == 0: StartTime = time.time () # lagre ankomsttid mens GPIO.input (GPIO_ECHO) == 1: StopTime = time.time () # tidsforskjell mellom start og ankomst TimeElapsed = StopTime - StartTime # multipliser med sonisk hastighet (34300 cm / s) # og divider med 2, fordi der og tilbake distanse = (TimeElapsed * 34300) / 2 returavstand hvis _name_ == '_main_': camera.start_preview (alfa = 200) prøv: while True: dist = distance () print ("Measured Distance = %.1f cm" % dist) if dist <= 20: # endre denne verdien i henhold til innstillingen din nå = tid.ctime (). erstatt ("", "-") camera.capture ("media/image % s.jpg" % nå) print ("Bilde lagret på media/image- % s.jpg" % nå) # kamera.start_recording ("media/video- % s.h264" % nå) # Ikke kommenter dette for å ta en video # print ("Video lagret på media/image- % s.jpg" % nå) # sleep (5) # Ikke kommenter dette for å ta en video i 5 sekunder. sove (3) camera.stop_preview () # camera.stop_recording () # Ikke kommenter dette for å ta en video # Tilbakestill ved å trykke CTRL + C unntatt KeyboardInterrupt: print ("Måling stoppet av bruker") GPIO.cleanup ()

Trinn 3: Kjør koden

Kjør koden
Kjør koden
Kjør koden
Kjør koden
Kjør koden
Kjør koden
Kjør koden
Kjør koden

Kjør nå skriptet som

pi@raspberrypi: python measure.py

Avstanden måles hvert tredje sekund (du kan endre verdien i skriptet) og skrives ut på skjermen hvis et objekt er identifisert innenfor 20 centimeter, pi -kameraet tar et bilde og lagrer i mediemappen.

Alternativt kan du skyte en video ved å ikke kommentere eller fjerne hashtags (#) fra skriptlinjene nevnt som kommentarer. Du kan også forlenge videolengden ved ganske enkelt å øke/redusere verdien i “time.sleep (5)”.

God sirkus!

Anbefalt: