Hvordan måle avstand med Raspberry Pi

Hvordan måle avstand med Raspberry Pi
Du kan måle avstand ved hjelp av HC-SR04 Ultrasonic sensor med Raspberry Pi. HC-SR04-sensoren kan måle avstand fra 2mm (.02m) til 400 cm (4m). Den sender 8 utbrudd av 40kHz signaler og venter deretter på at den treffer et objekt og blir reflektert tilbake. Tiden det tar for Ultrasonic 40kHz lydbølge å reise frem og tilbake brukes til å beregne avstanden mellom sensoren og objektet på vei. Det er i utgangspunktet slik HC-SR04-sensoren fungerer.

I denne artikkelen vil jeg vise deg hvordan du bruker en HC-SR04 ultrasonisk sensor for å måle avstand mellom sensoren din og et objekt på sin måte ved hjelp av Raspberry Pi. La oss komme i gang.

Komponenter du trenger:

For å måle avstand med Raspberry Pi og HC-SR04-sensor, trenger du,

  • En Raspberry Pi 2 eller 3 enkeltbrettdatamaskin med Raspbian installert.
  • En HC-SR04 Ultrasonic sensordodul.
  • 3x10kΩ motstander.
  • En brødplate.
  • Noen hann til kvinnelige kontakter.
  • Noen mannlige til mannlige kontakter.

Jeg har skrevet en dedikert artikkel om å installere Raspbian på Raspberry Pi, som du kan sjekke på https: // linuxhint.com/ install_raspbian_raspberry_pi/ hvis du trenger.

HC-SR04 Pinouts:

HC-SR04 har 4 pinner. VCC, Trigger, Echo, Groud.

Fig1: HC-SR04 Pinouts (https: // www.mouser.COM/DS/2/813/HCSR04-1022824.pdf)

VCC -pinnen skal kobles til +5V -pinne av Raspberry Pi, som er pinne 2. Ground Pin skal kobles til GND -pinnen til Raspberry Pi, som er pinne 4.

Utløser- og ekkopinnene skal kobles til GPIO -pinnene til Raspberry Pi. Mens triggerpinnen kan kobles direkte til en av GPIO -pinnene i Raspberry Pi, trenger ekkoknålen en spenningsdelende krets.

Kretsdiagram:

Koble HC-SR04 Ultrasonic Sensor til Raspberry Pi som følger:

Fig2: HC-SR04 Ultrasonic sensor koblet til Raspberry Pi.

Når alt er koblet sammen, er det slik det ser ut:

Fig3: HC-SR04 Ultrasonic sensor koblet til Raspberry Pi på brødbord.

Fig4: HC-SR04 Ultrasonic sensor koblet til Raspberry Pi på brødbord.

Å skrive et Python-program for måleavstand med HC-SR04:

Først må du koble til bringebærpi ved hjelp av VNC eller SSH. Åpne deretter en ny fil (la oss si avstand.py) og skriv inn følgende koder:

Her importerer linje 1 Raspberry Pi GPIO -biblioteket.

Linje 2 importerer tidsbiblioteket.

Inne i prøve Blokk, den faktisk koden for å måle avstanden ved bruk av HC-SR04 er skrevet.

De endelig Blokk brukes til å rydde opp GPIO -pinnene med GPIO.rydde opp() metode når programmet går ut.

Inne i prøve Blokk, på linje 5, GPIO.SetMode (GPIO.BORDE) brukes til å gjøre definerende pinner enklere. Nå kan du referere til pinner etter fysiske tall slik det er på Raspberry Pi -brettet.

På linje 7 og 8, Pintrigger er satt til 7 og Pinecho er satt til 11. De AVTREKKER Pin av HC-SR04 er koblet til pinne 7, og EKKO Pin av HC-SR04 er koblet til pinnen 11 på Rapsberry Pi. Begge disse er GPIO -pinner.

På linje 10, Pintrigger er konfigurert for utdata ved hjelp av GPIO.oppsett () metode.

På linje 11, Pinecho er konfigurert for inndata ved bruk av GPIO.oppsett () metode.

Linjer 13-17 brukes til tilbakestilling Pintrigger (ved å sette den til logikk 0) og sette inn Pintrigger til logikk 1 for 10ms og deretter til logikk 0. I 10ms sender HC-SR04-sensoren 8 40kHz puls.

Linjer 19-24 brukes til å måle tiden det tar før 40kHz-pulsen blir reflektert til et objekt og tilbake til HC-SR04-sensoren.

På linje 25 måles avstanden ved hjelp av formelen,

Avstand = Delta Tid * Hastighet (340m / s) / 2

=> Avstand = Delta Tid * (170m/s)

Jeg beregnet avstanden i centimeter i stedet for meter, bare for å være presis. Jeg beregnet avstand er også avrundet til 2 desimaler.

Endelig, på linje 27, er resultatet skrevet ut. Det er det, veldig enkelt.

Kjør nå Python -skriptet med følgende kommando:

$ python3 avstand.py

Som du kan se, er avstanden som er målt 8.40 cm.

Fig5: objekt plassert på omtrent 8.40 cm vekk fra sensoren.

Jeg flyttet for å innvende litt lenger, avstanden som er målt er 21.81cm. Så det fungerer som forventet.

Fig6: objekt plassert på omtrent 21.81 cm unna sensoren.

Så det er slik du måler avstand med Raspberry Pi ved å bruke HC-SR04 Ultrasonic Sensor. Se koden for avstand.PY nedenfor:

Importer RPI.GPIO som GPIO
Importer tid
prøve:
GPIO.SetMode (GPIO.BORDE)
Pintrigger = 7
Pinecho = 11
GPIO.Oppsett (Pintrigger, GPIO.UTE)
GPIO.Oppsett (Pinecho, GPIO.I)
GPIO.output (pintrigger, gpio.LAV)
GPIO.output (pintrigger, gpio.HØY)
tid.søvn (0.00001)
GPIO.output (pintrigger, gpio.LAV)
Mens GPIO.input (pinecho) == 0:
PulSestartTime = tid.tid()
Mens GPIO.input (pinecho) == 1:
PulseIndime = tid.tid()
Pulseduration = PulseIndime - PulsestartTime
avstand = runde (pulserende redning * 17150, 2)
Print ("Avstand: %.2f cm " % (avstand))
endelig:
GPIO.rydde opp()