Selles artiklis näitan teile, kuidas kasutada ultraviolettandurit HC-SR04 anduri ja objekti vahelise kauguse mõõtmiseks Raspberry Pi abil. Alustame.
Vajalikud komponendid:
Raspberry Pi ja HC-SR04 sensoriga kauguse edukaks mõõtmiseks on vaja,
- Raspberry Pi 2 või 3 ühe tahvelarvuti, millele on installitud Raspbian.
- HC-SR04 ultrahelianduri moodul.
- 3x10kΩ takistid.
- Leivakast.
- Mõni mees-naine-pistik.
- Mõni mees-mees-pistik.
Olen kirjutanud spetsiaalse artikli Raspbian'i installimise kohta Raspberry Pi-sse, mida saate kontrollida aadressil https: // linuxhint.com / install_raspbian_raspberry_pi / kui vaja.
HC-SR04 kinnitusdetailid:
HC-SR04-l on 4 tihvti. VCC, TRIGGER, ECHO, GROUD.
Joonis 1: HC-SR04 kinnitusdetailid (https: // www.hiir.com / ds / 2/813 / HCSR04-1022824.pdf)
VCC tihvt peaks olema ühendatud Raspberry Pi + 5V tihvtiga, milleks on tihvt 2. MAA tihvt peaks olema ühendatud Raspberry Pi GND tihvtiga, milleks on tihvt 4.
TRIGGER ja ECHO tihvtid peaksid olema ühendatud Raspberry Pi GPIO tihvtidega. Kui TRIGGER-tihvti saab otse ühendada ühe Raspberry Pi ühe GPIO-tihvtiga, vajab ECHO-tihvt pingejaguri ahelat.
Vooluringi skeem:
Ühendage ultraheliandur HC-SR04 oma Raspberry Pi-ga järgmiselt:
Joonis 2: Raspberry Pi-ga ühendatud ultraheliandur HC-SR04.
Kui kõik on ühendatud, näeb see välja järgmine:
Joonis 3: HC-SR04 ultraheliandur, mis on ühendatud Raspberry Pi-ga leivaplaadil.
Joonis 4: HC-SR04 ultraheliandur, mis on ühendatud Raspberry Pi-ga leivalaual.
Pythoni programmi kirjutamine kauguse mõõtmiseks HC-SR04 abil:
Kõigepealt ühendage oma Raspberry Pi, kasutades VNC või SSH-d. Seejärel avage uus fail (ütleme nii, et kaugus.py) ja sisestage järgmised koodiread:
Siin imporditakse 1. rida vaarika pi GPIO teeki.
2. rida impordib ajaraamatukogu.
Toas proovige plokk, kirjutatakse tegelikult HC-SR04 abil kauguse mõõtmise kood.
The lõpuks plokki kasutatakse GPIO tihvtide puhastamiseks GPIO.korista ära() meetod, kui programm väljub.
Toas proovige plokk, real 5, GPIO.seatud režiim (GPIO.HALLITUS) kasutatakse tihvtide määratlemise lihtsustamiseks. Nüüd saate tihvtidele viidata füüsiliste numbrite järgi, nagu see on Raspberry Pi pardal.
7. ja 8. liinil, pinTrigger on seatud väärtusele 7 ja pinEcho on seatud väärtusele 11. The TRIGGER HC-SR04 tihvt on ühendatud tihvtiga 7 ja ECHO HC-SR04 tihvt on ühendatud Rapsberry Pi tihvtiga 11. Mõlemad on GPIO tihvtid.
10. rida, pinTrigger on seadistatud väljundi OUTPUT jaoks GPIO.seadistamine () meetod.
11. liinil, pinEcho on seadistatud INPUT jaoks GPIO.seadistamine () meetod.
Ridasid 13–17 kasutatakse lähtestamiseks pinTrigger (seades selle loogikale 0) ja pinTrigger loogikale 1 10 ms ja seejärel loogikale 0. 10 ms pärast saadab HC-SR04 andur 8 40KHz impulsi.
Liinide 19–24 abil mõõdetakse aega, mis kulub 40KHz impulsside peegeldamiseks objektile ja tagasi HC-SR04 andurile.
Liinil 25 mõõdetakse kaugus valemi abil,
Kaugus = delta aeg * kiirus (340M / S) / 2
=> Kaugus = delta aeg * (170M / S)
Arvutasin kauguse meetrite asemel sentimeetrites, et olla täpne. Arvutasin, et vahemaa on ka ümardatud kahe kümnendkohani.
Lõpuks real 27 trükitakse tulemus. See on kõik, väga lihtne.
Nüüd käivitage Pythoni skript järgmise käsuga:
$ python3 kaugus.pyNagu näete, on mõõdetud vahemaa 8.40 cm.
Joonis 5: objekt paigutatud umbes 8-ni.Andurist 40 cm kaugusel.
Kolisin objektile natuke kaugemale, mõõdetud vahemaa on 21.81cm. Niisiis, see töötab ootuspäraselt.
Joonis 6: umbes 21-le asetatud objekt.Sensorist 81 cm kaugusel.
Nii mõõdad Raspberry Pi abil ultrahelianduri abil HC-SR04 kaugust. Vaadake kauguse koodi.py allpool:
impordi RPi.GPIO kui GPIOimpordiaeg
proovige:
GPIO.seatud režiim (GPIO.HALLITUS)
pinTrigger = 7
pinEcho = 11
GPIO.seadistamine (pinTrigger, GPIO.OUT)
GPIO.seadistamine (pinEcho, GPIO.IN)
GPIO.väljund (pinTrigger, GPIO.MADAL)
GPIO.väljund (pinTrigger, GPIO.KÕRGE)
aeg.uni (0.00001)
GPIO.väljund (pinTrigger, GPIO.MADAL)
GPIO ajal.sisend (pinEcho) == 0:
pulseStartTime = aeg.aeg ()
GPIO ajal.sisend (pinEcho) == 1:
pulseEndTime = aeg.aeg ()
pulseDuration = pulseEndTime - pulseStartTime
kaugus = ümmargune (impulsi kestus * 17150, 2)
print ("Kaugus:%.2f cm "% (kaugus)
lõpuks:
GPIO.korista ära()