Indholdsfortegnelse:

Ultralydssensor til at fange positionsændringer af objekter: 3 trin
Ultralydssensor til at fange positionsændringer af objekter: 3 trin

Video: Ultralydssensor til at fange positionsændringer af objekter: 3 trin

Video: Ultralydssensor til at fange positionsændringer af objekter: 3 trin
Video: Tutorial ultrasonic sensors (1): Advantages and fields of application | SICK AG 2024, Juli
Anonim
Ultralydssensor til at fange positionsændringer af objekter
Ultralydssensor til at fange positionsændringer af objekter

Det er vigtigt at have dine værdifulde ting i sikkerhed, det ville være halt, hvis du bliver ved med at vogte dit slot hele dagen. Ved hjælp af hindbær pi -kameraet kan du tage snaps på det rigtige tidspunkt. Denne vejledning hjælper dig med at optage en video eller tage billedet, når ændringerne registreres inden for grænseområdet.

Hardware:

  1. Hindbær Pi 2/3/4
  2. Ultralydssensor
  3. Pi kamera
  4. Jumpere

Trin 1: Forbindelser

Forbindelser
Forbindelser
  • TRIG til RPI4B 17
  • VCC til RPI4B 5V
  • GND til RPI4B GND
  • Ekko til 470-ohm modstand til forbindelse-1
  • GND til 1K ohm modstand til forbindelse-1
  • forbindelse-1 til RPI4B 4

Kredsløbsskematikken er lavet ved hjælp af circuito.io, den har alle de mest populære mikrokontrollere, sensorer osv., Og platformen er let at bruge for begyndere

Trin 2: Upload koden

Upload koden
Upload koden
Upload koden
Upload koden

Inden du kører scriptet, skal du oprette en mappe ved hjælp af følgende kommandoer, der åbner terminalen og derefter redigere scriptfilen.

pi@raaspberrypi: mkdir media

pi@raaspberrypi: nano measure.py

Koden bruger kamera- og GPIO -biblioteker. Kryds-check GPIO_TRIGGER & GPIO_ECHO benene er korrekt forbundet til 17. og 4. ben på Raspberry Pi eksternt.

Kopier og indsæt nedenstående kode, eller skriv i python -filen, og navngiv den som 'measure.py'

#Librariesimport RPi. GPIO som GPIO import tid import os fra picamera import PiCamera # Camera Mode camera = PiCamera () camera.rotation = 180 # Kommenter denne linje, hvis billedet er perfekt vinklet #GPIO Mode GPIO.setmode (GPIO. BCM) GPIO.setwarnings (False) #set GPIO Pins GPIO_TRIGGER = 17 GPIO_ECHO = 4 #sæt GPIO retning (IN / OUT) GPIO.setup (GPIO_TRIGGER, GPIO. OUT) GPIO.setup (GPIO_ECHO, GPIO. IN) def distance (): # indstil Trigger til HIGH GPIO.output (GPIO_TRIGGER, True) # sæt Trigger efter 0.01ms til LOW time.sleep (0.00001) GPIO.output (GPIO_TRIGGER, False) StartTime = time.time () StopTime = time.time () # save StartTime mens GPIO.input (GPIO_ECHO) == 0: StartTime = time.time () # gem ankomsttid, mens GPIO.input (GPIO_ECHO) == 1: StopTime = time.time () # tidsforskel mellem start og ankomst TimeElapsed = StopTime - StartTime # multipliceres med sonisk hastighed (34300 cm / s) # og divideres med 2, fordi der og tilbage afstand = (TimeElapsed * 34300) / 2 returafstand, hvis _navn_ == '_main_': camera.start_preview (alfa = 200) prøv: mens True: dist = distance () print ("Measured Distance = %.1f cm" % dist) if dist <= 20: # ændre denne værdi i henhold til din indstilling nu = tid.ctime (). udskift ("", "-") camera.capture ("medie/billede % s.jpg" % nu) print ("Billede gemt på medier/billede- % s.jpg" % nu) # kamera.start_recording ("media/video- % s.h264" % nu) # Kommenter dette for at tage en video # print ("Video gemt på media/image- % s.jpg" % nu) # sleep (5) # Fjern denne kommentar for at tage en video i 5 sekunder. sleep (3) camera.stop_preview () # camera.stop_recording () # Kommenter dette for at tage en video # Nulstil ved at trykke på CTRL + C undtagen KeyboardInterrupt: print ("Måling stoppet af bruger") GPIO.cleanup ()

Trin 3: Kør koden

Kør koden
Kør koden
Kør koden
Kør koden
Kør koden
Kør koden
Kør koden
Kør koden

Kør nu scriptet som

pi@raspberrypi: python measure.py

Afstanden måles for hvert 3. sekund (du kan ændre værdien i scriptet) og udskrives på skærmen, hvis et objekt er identificeret inden for de 20 centimeter, pi -kameraet tager et foto og gemmer i mediemappen.

Alternativt kan du optage en video ved ikke at kommentere eller fjerne hashtags (#) fra de scriptlinjer, der er nævnt som kommentarer. Du kan også forlænge videolængden ved blot at øge/reducere værdien i “time.sleep (5)”.

Glad cirkus!

Anbefalede: