A MicroPythont széles körben használják mikrokontrollerekkel és beágyazott rendszerekkel. Kódot és könyvtárakat írhatunk a MicroPython IDE-be, és több érzékelőt is csatlakoztathatunk. Ez az írás elvezeti Önt a távolságméréshez az ESP32 HC-SR04 érzékelővel.
ESP32 HC-SR04 ultrahangos érzékelővel MicroPython használatával
Az ESP32 ultrahangos interfészéhez mindössze két vezetékre van szükség. Ultrahangos szenzorok segítségével meg tudjuk mérni a tárgyak távolságát, és ezen a rendszeren alapuló válaszokat, például járműütközést elkerülő rendszereket válthatunk ki.
A MicroPython használatával, amely az ESP32 és más mikrokontrollerek számára tervezett nyelv, több érzékelőt, mint pl. HC-SR04 . A rendszer megírja a MicroPython kódot, amely kiszámítja azt az időt, amely alatt a SONAR hullám eljut az érzékelőtől az objektumig, majd vissza az objektumig. Később a távolságképlet segítségével kiszámíthatjuk a tárgytávolságot.
Íme a HC-SR04 érzékelő néhány főbb jellemzője:
Jellemzők | Érték |
Üzemi feszültség | 5V DC |
Üzemi áram | 15 mA |
Működési frekvencia | 40 KHz |
Saját tartomány | 2 cm / 1 hüvelyk |
Max hatótávolság | 400 cm / 13 láb |
Pontosság | 3 mm |
Mérési szög | <15 fok |
HC-SR04 kivezetés A HC-SR04 a következőket tartalmazza négy tűk:
- Vcc: Csatlakoztassa az ESP32 Vin pin-hez
- Gnd: Csatlakoztassa a GND-hez
- Kerékkötő: Pin az ESP32 kártya vezérlőjelének fogadásához
- Visszhang: Visszajelzés küldése. A Microcontroller Board fogadja ezt a jelet a távolság kiszámításához az idő alapján
Hogyan működik az ultrahang
Miután a HC-SR04 érzékelőt csatlakoztatta az ESP32-höz, egy jel a Kerékkötő pin generálódik a tábla. Amint a jel megérkezik a HC-SR04 érzékelő kioldó érintkezőjére, ultrahanghullám keletkezik, amely elhagyja az érzékelőt és eltalálja a tárgyat vagy az akadálytestet. Ütés után visszapattan a tárgy felületére.
Amint a visszavert hullám eléri az érzékelő vevő végét, jelimpulzus generálódik a visszhang tűn. Az ESP32 fogadja a visszhangjelet, és kiszámítja a távolságot az objektum és az érzékelő között Távolság-képlet.
A kiszámított teljes távolságot el kell osztani kettővel az ESP32 kódon belül, mivel az eredetileg kapott távolság megegyezik az érzékelőtől a tárgyig és az érzékelő vevővégéig visszafelé irányuló teljes távolsággal. Tehát a valós távolság az a jel, amely a távolság felével egyenlő.
Vázlatos
Az alábbiakban látható az ESP32 ultrahangos érzékelővel való összekapcsolásának vázlata:
Csatlakoztassa az érzékelő triggerét és visszhangját az ESP32 GPIO 5 és GPIO 18 csatlakozójához. Csatlakoztassa az ESP32 GND-t és a Vin-csapot is az érzékelőtűkkel.
HC-SR04 ultrahangos érzékelő | ESP32 tű |
Kerékkötő | GPIO 5 |
Visszhang | GPIO 18 |
GND | GND |
VCC | JÖN |
Hardver
Az ultrahangos érzékelő programozásához a következő összetevőkre van szükség:
- ESP32
- HC-SR04
- Kenyértábla
- Jumper vezetékek
Az Ultrasonic HC-SR04 beállítása ESP32-vel a MicroPython használatával
Mielőtt az ESP32-t ultrahangos érzékelővel programozhatnánk, egy könyvtárat kell telepítenünk benne. Csatlakoztassa az ESP32 kártyát a számítógéphez. Kövesse a lépéseket az ESP32 ultrahangos érzékelővel történő konfigurálásához a Thonny IDE-ben a MicroPython használatával.
1. lépés: Most nyissa meg a Thonny IDE-t. Hozzon létre egy új fájlt a szerkesztő ablakban Ugrás : Fájl>Új vagy nyomja meg Ctrl + N .
Az új fájl megnyitása után illessze be a következő kódot a Thonny IDE szerkesztő ablakába.
import gép , időtól től gép import Pin
osztály HCSR04:
# echo_timeout_us a chip hatótávolságon alapul (400 cm)
def __forró__ ( maga , trigger_pin , echo_pin , echo_timeout_us = 500 * két * 30 ) :
maga . echo_timeout_us = echo_timeout_us
# Init trigger pin (ki)
maga . ravaszt = Pin ( trigger_pin , mód = Pin. KI , Húzni = Egyik sem )
maga . ravaszt . érték ( 0 )
# Init echo pin (in)
maga . visszhang = Pin ( echo_pin , mód = Pin. BAN BEN , Húzni = Egyik sem )
def _send_pulse_and_wait ( maga ) :
maga . ravaszt . érték ( 0 ) # Stabilizálja az érzékelőt
idő . sleep_us ( 5 )
maga . ravaszt . érték ( 1 )
# Küldj egy 10 US impulzust.
idő . sleep_us ( 10 )
maga . ravaszt . érték ( 0 )
próbálja meg :
pulse_time = gép. time_pulse_us ( maga . visszhang , 1 , maga . echo_timeout_us )
Visszatérés pulse_time
kivéve OSEror mint volt:
ha volt. args [ 0 ] == 110 : # 110 = IDŐTARTÁS
emel OSEror ( 'Hatótávolságon kívül' )
emel volt
def távolság_mm ( maga ) :
pulse_time = maga ._send_pulse_and_wait ( )
mm = pulzusidő * 100 // 582
Visszatérés mm
def távolság_cm ( maga ) :
pulse_time = maga ._send_pulse_and_wait ( )
cms = ( pulse_time / két ) / 29.1
Visszatérés cms
2. lépés: Miután megírta a könyvtár kódot a szerkesztő ablakban, most el kell mentenünk a MicroPython eszközön.
3. lépés: Menj : Fájl>Mentés vagy nyomja meg Ctrl + S .
4. lépés: Megjelenik egy új ablak. Győződjön meg arról, hogy az ESP32 csatlakoztatva van a számítógéphez. Válassza ki a MicroPython eszközt a könyvtárfájl mentéséhez.
5. lépés: Mentse el az ultrahangos könyvtár fájlt névvel hcsr04.py és kattintson rendben .
Az ultrahangos hcsr04 szenzorkönyvtár sikeresen hozzáadva az ESP32 kártyához. Most már meghívhatunk könyvtári függvényeket a kódon belül, hogy mérjük a különböző objektumok távolságát.
Ultrahangos érzékelő kódja MicroPython használatával
Az ultrahangos érzékelő kódjához hozzon létre egy új fájlt ( Ctrl + N ). A szerkesztő ablakban írja be az alábbi kódot, és mentse el a main.py vagy boot.py fájlt. Ez a kód kiírja a HC-SR04 elé kerülő objektumok távolságát.
A kód fontos könyvtárak hívásával kezdődött, mint pl HCSR04 és idő könyvtárral együtt alvás késéseket adni.
Ezután létrehoztunk egy új objektumot egy névvel érzékelő . Ez az objektum három különböző argumentumot vesz fel: trigger, echo és timeout. Itt az időtúllépés az a maximális idő, amely után az érzékelő tartományon kívülre kerül.
érzékelő = HCSR04 ( trigger_pin = 5 , echo_pin = 18 , echo_timeout_us = 10000 )A távolság mérésére és mentésére egy új objektum néven távolság létrehozva. Ez az objektum távolságot takarít meg cm-ben.
távolság = érzékelő. távolság_cm ( )Írja be a következő kódot, hogy mm-ben kapja meg az adatokat.
távolság = érzékelő. távolság_mm ( )Ezután kinyomtattuk az eredményt a MicroPython IDE shellre.
nyomtatás ( 'Távolság:' , távolság , 'cm' )A végén 1 másodperc késleltetést kap.
alvás ( 1 )A teljes kód alább található:
tól től hcsr04 import HCSR04tól től idő import alvás
# ESP32
érzékelő = HCSR04 ( trigger_pin = 5 , echo_pin = 18 , echo_timeout_us = 10000 )
# ESP8266
#sensor = HCSR04 (trigger_pin=12, echo_pin=14, echo_timeout_us=10000)
míg Igaz :
távolság = érzékelő. távolság_cm ( )
nyomtatás ( 'Távolság:' , távolság , 'cm' )
alvás ( 1 )
Miután megírtam és elmentettem a kódot a MicroPython eszközbe, most futtatom az ultrahangos érzékelőt main.py fájl kódja. Kattintson a lejátszás gombra, vagy nyomja meg F5 .
Ultrahangos érzékelő kimenete, ha tárgy közel van
Most helyezzen egy tárgyat az ultrahangos érzékelő közelébe, és ellenőrizze a mért távolságot az Arduino IDE soros monitor ablakán.
Az objektumok távolsága a shell terminálon látható. Most a tárgyat 5 cm-re helyezzük az ultrahangos érzékelőtől.
Ultrahangos érzékelő kimenete, ha az objektum távol van
Most, hogy ellenőrizzük az eredményt, az érzékelőtől távol helyezzük el a tárgyakat, és ellenőrizzük az ultrahangos érzékelő működését. Helyezze el az objektumokat az alábbi képen látható módon:
A kimeneti ablak új távolságot ad, és amint látjuk, hogy az objektum messze van az érzékelőtől, így a mért távolság kb. 15 cm-re az ultrahangos érzékelőtől.
Következtetés
A távolságmérés nagyszerűen alkalmazható, ha robotikáról és egyéb projektekről van szó, különböző módokon lehet mérni a távolságot. A HC-SR04 ESP32-vel képes mérni a különböző tárgyak távolságát. Ez a leírás lefedi az összes lépést, amelyre az integráláshoz és az ESP32-vel való távolságmérés megkezdéséhez szükséges.