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.
For å måle avstand med Raspberry Pi og HC-SR04-sensor, trenger du,
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.pySom 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