Avietė Pi

Kaip išmatuoti atstumą su Raspberry Pi

Kaip išmatuoti atstumą su Raspberry Pi
Galite išmatuoti atstumą naudodami ultragarso jutiklį HC-SR04 su „Raspberry Pi“. HC-SR04 jutiklis gali matuoti atstumą nuo 2 mm (.Nuo 02 m) iki 400 cm (4 m). Jis siunčia 8 serijas 40KHz signalų ir tada laukia, kol jis pataikys į objektą ir vėl atsispindės. Laikas, per kurį ultragarsinė 40 kHz garso banga sklinda pirmyn ir atgal, yra naudojamas atstumui tarp jutiklio ir objekto apskaičiuoti. Iš esmės taip veikia HC-SR04 jutiklis.

Šiame straipsnyje aš jums parodysiu, kaip naudoti ultragarso jutiklį HC-SR04, norint išmatuoti atstumą tarp jutiklio ir objekto, naudojant „Raspberry Pi“. Pradėkime.

Jums reikalingi komponentai:

Norint sėkmingai išmatuoti atstumą naudojant „Raspberry Pi“ ir „HC-SR04“ jutiklį, jums reikia,

Parašiau specialų straipsnį apie „Raspbian“ diegimą „Raspberry Pi“, kurį galite patikrinti adresu https: // linuxhint.lt / install_raspbian_raspberry_pi / jei jums reikia.

HC-SR04 kištukai:

HC-SR04 turi 4 kaiščius. VCC, TRIGGER, ECHO, GROUD.

1 pav. HC-SR04 kištukai (https: // www.pelė.com / ds / 2/813 / HCSR04-1022824.pdf)

VCC kaištis turėtų būti prijungtas prie „Raspberry Pi“ + 5 V kaiščio, kuris yra 2 kaištis. „GROUND“ kaištis turėtų būti prijungtas prie „Raspberry Pi“ GND kaiščio, kuris yra 4 kaištis.

„TRIGGER“ ir „ECHO“ kaiščiai turėtų būti prijungti prie „Raspberry Pi“ GPIO kaiščių. Nors „TRIGGER“ kaištį galima tiesiogiai prijungti prie vieno iš „Raspberry Pi“ GPIO kaiščių, ECHO kaiščiui reikalinga įtampos daliklio grandinė.

Grandinės schema:

Prijunkite ultragarso jutiklį HC-SR04 prie „Raspberry Pi“ taip:

2 pav. HC-SR04 ultragarso jutiklis, prijungtas prie „Raspberry Pi“.

Kai viskas bus sujungta, taip atrodo:

3 pav. HC-SR04 ultragarso jutiklis, prijungtas prie aviečių Pi ant duonos lentos.

4 pav. HC-SR04 ultragarso jutiklis, prijungtas prie aviečių Pi ant duonos lentos.

„Python“ programos rašymas atstumui matuoti naudojant HC-SR04:

Pirmiausia prijunkite prie „Raspberry Pi“ naudodami VNC arba SSH. Tada atidarykite naują failą (tarkime atstumas.py) ir įveskite šias kodų eilutes:

Čia 1 eilutė importuoja aviečių pi GPIO biblioteką.

2 eilutė importuoja laiko biblioteką.

Viduje bandyti blokas, parašytas tikrasis atstumo matavimo naudojant HC-SR04 kodas.

The pagaliau blokas naudojamas GPIO kaiščių valymui naudojant GPIO.Išvalyti() metodas, kai programa išeina.

Viduje bandyti blokas, 5 eilutėje, GPIO.nustatytas režimas (GPIO.LENTA) naudojamas norint lengviau nustatyti kaiščius. Dabar smeigtukus galite nurodyti pagal fizinius skaičius, kaip yra „Raspberry Pi“ lentoje.

7 ir 8 linijose, pinTrigger yra nustatytas į 7 ir pinEcho yra nustatytas į 11. The TRIGGERIS HC-SR04 kaištis yra prijungtas prie kaiščio 7 ir ECHO HC-SR04 kaištis yra sujungtas su „Rapsberry Pi“ 11 kaiščiu. Abu šie yra GPIO kaiščiai.

10 eilutėje, pinTrigger yra sąranka OUTPUT naudojant GPIO.sąranka () metodas.

11 eilutėje, pinEcho yra INPUT sąranka naudojant GPIO.sąranka () metodas.

13–17 eilutės naudojamos atstatymui pinTrigger (nustatydami ją į logiką 0) ir nustatydami pinTrigger prie logikos 1 10ms ir tada prie 0 logikos. Per 10ms HC-SR04 jutiklis siunčia 8 40KHz impulsą.

19–24 eilutės naudojamos matuoti laiką, per kurį 40 kHz impulsai atsispindi objekte ir atgal į HC-SR04 jutiklį.

25 eilutėje atstumas matuojamas pagal formulę,

Atstumas = delta laikas * greitis (340M / S) / 2

=> Atstumas = delta laikas * (170M / S)

Atstumą skaičiavau ne metrais, o centimetrais, kad būtų tiksliau. Apskaičiavau atstumas taip pat suapvalinamas iki 2 skaitmenų po kablelio.

Galiausiai 27 eilutėje rezultatas atspausdinamas. Tai viskas, labai paprasta.

Dabar paleiskite „Python“ scenarijų naudodami šią komandą:

$ python3 atstumas.py

Kaip matote, išmatuotas atstumas yra 8.40 cm.

5 pav .: objektas, pastatytas maždaug 8 vietoje.40 cm atstumu nuo jutiklio.

Objektą pajudėjau kiek toliau, išmatuotas atstumas yra 21.81cm. Taigi, tai veikia kaip tikėtasi.

6 pav .: objektas, pastatytas maždaug 21 vietoje.81 cm atstumu nuo jutiklio.

Taigi, kaip jūs matuojate atstumą su „Raspberry Pi“, naudodami ultragarso jutiklį HC-SR04.  Žiūrėkite atstumo kodą.py žemiau:

importuoti RPi.GPIO kaip GPIO
importo laikas
bandyti:
GPIO.nustatytas režimas (GPIO.LENTA)
pinTrigger = 7
„pinEcho“ = 11
 
GPIO.sąranka (pinTrigger, GPIO.OUT)
GPIO.sąranka (pinEcho, GPIO.IN)
 
GPIO.išvestis (pinTrigger, GPIO.LOW)
GPIO.išvestis (pinTrigger, GPIO.AUKŠTAS)
 
laikas.miegas (0.00001)
GPIO.išvestis (pinTrigger, GPIO.LOW)
 
o GPIO.įvestis (pinEcho) == 0:
pulseStartTime = laikas.laikas()
o GPIO.įvestis (pinEcho) == 1:
pulseEndTime = laikas.laikas()
 
pulseDuration = pulseEndTime - pulseStartTime
atstumas = apvalus (pulso trukmė * 17150, 2)
 
spausdinti ("Atstumas:%.2f cm "% (atstumas)"
pagaliau:
GPIO.Išvalyti()
5 populiariausi „Linux“ skirtų ergonomiškų kompiuterinių pelių produktai
Ar ilgalaikis kompiuterio naudojimas sukelia riešo ar pirštų skausmą?? Ar jūs kenčiate nuo sąnarių standumo ir nuolat turite paspausti rankas? Ar jauč...
How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...
Peržiūrėkite pelės mygtukus skirtingai programinei įrangai naudodami „X-Mouse Button Control“
Galbūt jums reikia įrankio, kuris galėtų pakeisti jūsų pelės valdymą kiekvienoje jūsų naudojamoje programoje. Tokiu atveju galite išbandyti programą, ...