Šiame projekte mes ketiname susieti HC-SR04 ultragarso jutiklio modulį su „Raspberry Pi“, kad matuotume atstumą. Anksčiau mes naudojome ultragarso jutiklį su „Raspberry Pi“, kad sukurtume „Robotą nuo kliūčių“. Prieš eidami toliau, praneškite apie ultragarso jutiklį.
HC-SR04 ultragarso jutiklis:
Ultragarsinis jutiklis naudojamas matuoti atstumą labai tiksliai ir stabiliai rodant. Jis gali išmatuoti atstumą nuo 2 cm iki 400 cm arba nuo 1 colio iki 13 pėdų. Jis skleidžia 40KHz dažnio ultragarso bangą ore ir, jei objektas pasitaikys, jis vėl sugrįš į jutiklį. Naudodami laiką, kurio reikia smūgiui į objektą ir grįžtant, galite apskaičiuoti atstumą.
Ultragarsiniame jutiklyje naudojama technika, vadinama „ECHO“. „ECHO“ yra tiesiog atspindėta garso banga. Turėsite ECHO, kai garsas atsispindės, kai pasieksite aklavietę.
„HCSR04“ modulis generuoja garso vibraciją ultragarso diapazone, kai „Trigger“ kaištį padarome aukštą maždaug 10 us, kuris garso greičiu pasiųs 8 ciklų garsinį pliūpsnį ir po smūgio į objektą jį priims „Echo“ kaištis. Atsižvelgiant į tai, kiek laiko reikia vibracijai atkurti, ji suteikia tinkamą impulsą. Jei objektas yra toli, ECHO išgirsti reikia daugiau laiko, o išėjimo impulsų plotis bus didelis. Jei kliūtis yra šalia, ECHO bus girdima greičiau, o išėjimo impulsų plotis bus mažesnis.
Mes galime apskaičiuoti objekto atstumą pagal laiką, per kurį ultragarso banga grįžta atgal į jutiklį. Kadangi garso laikas ir greitis yra žinomi, atstumą galime apskaičiuoti pagal šias formules.
- Atstumas = (laikas x garso greitis ore (343 m / s)) / 2.
Vertė padalijama iš dviejų, nes banga eina į priekį ir atgal, įveikdama tą patį atstumą. Taigi laikas pasiekti kliūtį yra tik pusė viso užtrukto laiko.
Taigi atstumas centimetrais = 17150 * T.
Anksčiau mes sukūrėme daug naudingų projektų naudodami šį ultragarso jutiklį ir „Arduino“, patikrinkite juos žemiau:
- „Arduino“ atstumo matavimas naudojant ultragarso jutiklį
- Durų signalizacija naudojant „Arduino“ ir ultragarso jutiklį
- IOT pagrįstas savivartės stebėjimas naudojant „Arduino“
Būtini komponentai:
Čia mes naudojame „ Raspberry Pi 2 Model B“ su „Raspbian Jessie OS“. Visi pagrindiniai aparatinės ir programinės įrangos reikalavimai buvo aptarti anksčiau, jų galite rasti „Raspberry Pi“ įvade ir mirksi „Raspberry PI“ šviesos diodas, išskyrus tai, ko mums reikia:
- „Raspberry Pi“ su iš anksto įdiegta OS
- HC-SR04 ultragarso jutiklis
- Maitinimo šaltinis (5v)
- 1KΩ rezistorius (3 vnt.)
- 1000uF kondensatorius
- 16 * 2 simbolių LCD ekranas
Grandinės paaiškinimas:
Ryšiai tarp „Raspberry Pi“ ir LCD yra pateikti žemiau esančioje lentelėje:
LCD jungtis |
Aviečių Pi jungtis |
BND |
BND |
VCC |
+ 5 V |
VEE |
BND |
RS |
GPIO17 |
R / W |
BND |
EN |
GPIO27 |
D0 |
GPIO24 |
D1 |
GPIO23 |
D2 |
GPIO18 |
D3 |
GPIO26 |
D4 |
GPIO5 |
D5 |
GPIO6 |
D6 |
GPIO13 |
D7 |
GPIO19 |
Šioje grandinėje mes naudojome 8 bitų ryšį (D0-D7), kad sujungtume LCD ekraną su „Raspberry Pi“, tačiau tai nėra privaloma, mes taip pat galime naudoti 4 bitų ryšį (D4-D7), tačiau su 4 bitų ryšio programa tampa šiek tiek kompleksas pradedantiesiems, todėl tiesiog eikite su 8 bitų ryšiu. Čia mes sujungėme 10 LCD kontaktų su „Raspberry Pi“, kuriame 8 kontaktai yra duomenų kaiščiai ir 2 kaiščiai yra valdymo kaiščiai.
Žemiau pateikiama grandinės schema, skirta prijungti HC-SR04 jutiklį ir LCD ekraną su „Raspberry Pi“ atstumui matuoti.
Kaip parodyta paveikslėlyje, HC-SR04 ultragarso jutiklis turi keturis kaiščius,
- PIN1- VCC arba + 5V
- PIN2- TRIGGER (10us didelis impulsas duodamas jutikliui suvokti atstumą)
- PIN3- ECHO (teikia impulsą, kurio plotis reiškia atstumą po paleidimo)
- PIN4- ŽEMĖ
Echo kaištis suteikia + 5 V išėjimo impulsą, kurio negalima tiesiogiai prijungti prie „Raspberry Pi“. Taigi, norėdami gauti + 3,3 V logiką, o ne + 5 V logiką, naudosime įtampos daliklio grandinę (pastatytą naudojant R1 ir R2).
Darbinis paaiškinimas:
Visiškas „ Raspberry Pi“ atstumo matavimo darbas eina kaip, 1. Suaktyvinkite jutiklį, traukdami 10uS trigerio kaištį.
2. Garso bangą siunčia jutiklis. Gavęs ECHO, jutiklio modulis suteikia išvestį, proporcingą atstumui.
3. Mes įrašysime laiką, kai išėjimo impulsas pereis nuo LOW į HIGH ir kada vėl, kai jis eis iš HIGH to LOW.
4. Turėsime pradžios ir pabaigos laiką. Norėdami apskaičiuoti atstumą, naudosime atstumo lygtį.
5. Atstumas rodomas 16x2 LCD ekrane.
Atitinkamai mes parašėme „ Python“ programą, skirtą „Raspberry Pi“, kad atliktų šias funkcijas:
1. Norėdami nusiųsti trigerį jutikliui
2. Įrašykite jutiklio pradžios ir pabaigos laiką.
3. Norėdami apskaičiuoti atstumą, naudodami START ir STOP laiką.
4. Norėdami parodyti gautą rezultatą 16 * 2 skystųjų kristalų ekrane.
Užbaigta programa ir demonstracinis vaizdo įrašas pateikiami žemiau. Programa yra gerai paaiškinta komentaruose, jei turite kokių nors abejonių, galite paklausti žemiau esančiame komentarų skyriuje.