Micropython HC -Srtop 10 Ultrasonic Sensor - Esptop 10 og Thonny Ide

Micropython HC -Srtop 10 Ultrasonic Sensor - Esptop 10 og Thonny Ide

Micropython er mye brukt med mikrokontrollere og innebygde systemer. Vi kan skrive kode og biblioteker i Micropython IDE og grensesnitt flere sensorer. Denne skrivingen vil guide deg på måleavstand ved hjelp av ESP32 med HC-SR04-sensor.

ESP32 med HC-SR04 Ultrasonic sensor ved bruk av mikropyton

Grensesnitt ESP32 med Ultrasonic krever bare at to ledninger kobles til. Ved hjelp av ultralydsensorer kan vi måle objektavstand og kan utløse responser basert på dette systemet som kjøretøykollisjon og unngå systemer.

Ved å bruke mikropyton som er et designet språk for ESP32 og andre mikrokontrollere kan vi grensesnitt flere sensorer som HC-SR04. Micropython -kode vil bli skrevet som beregner tiden som er tatt av ekkoloddbølgen for å nå fra sensor til objekt og tilbake til objekt. Senere ved å bruke avstandsformelen, kan vi beregne objektavstand.

Her er noen hovedhøydepunkter i HC-SR04-sensor:

Kjennetegn Verdi
Driftsspenning 5V DC
Driftsstrøm 15MA
Driftsfrekvens 40kHz
Min rekkevidde 2 cm/ 1 tomme
Maks rekkevidde 400cm/ 13 fot
Nøyaktighet 3mm
Målingsvinkel <15 degree

HC-SR04 PinoutHC-SR04 inneholder følgende fire pinner:

  • VCC: Koble til ESP32 Vin Pin
  • GND: Koble til GND
  • Trig: PIN for å motta kontrollsignal fra ESP32 -styret
  • Ekko: Send tilbake signalet. Mikrokontrollertavle mottar dette signalet for å beregne avstand ved bruk av tid

Hvordan ultralyd fungerer

Etter at HC-SR04-sensoren er koblet til ESP32 et signal ved Trig PIN vil bli generert av styret. Når signalet er mottatt ved trig-pinnen til HC-SR04-sensoren, vil det bli generert en ultralydbølge som etterlater sensoren og treffer objektet eller hindringskroppen. Etter å ha truffet den vil den sprette tilbake til objektoverflaten.

Når den reflekterte bølgen når tilbake til sensoren som mottar ende, vil en signalpuls ved Echo Pin genereres. ESP32 mottar Echo PIN -signalet og beregner avstand mellom objekt og sensor ved bruk av Avstandsforme.

Total avstand beregnet skal deles med to inne i ESP32 -koden da avstanden vi opprinnelig er lik total avstand fra sensor til objekt og tilbake til sensoren som mottar ende. Så ekte avstand er signalet som tilsvarer halvparten av den avstanden.

Skjematisk

Følgende er det skjemaet for grensesnitt ESP32 med ultralydsensor:

Koble triggeren og ekko -pinnen til sensoren med henholdsvis GPIO 5 og GPIO 18 av ESP32. Koble også til ESP32 GND og VIN PIN -kode med sensorpinner.

HC-SR04 Ultrasonic sensor ESP32 PIN
Trig GPIO 5
Ekko GPIO 18
GND GND
VCC Vin

Maskinvare

Følgende komponenter er pålagt å programmere ultralydsensor:

  • ESP32
  • HC-SR04
  • Brødbrett
  • Jumper ledninger

Hvordan sette opp ultralyd HC-SR04 med ESP32 ved bruk av mikropyton

Før vi kan programmere ESP32 med en ultralydsensor, må vi installere et bibliotek i det. Koble ESP32 -kortet til PCen. Følg trinnene for å fullføre ESP32 -konfigurasjon med ultralydsensor i Thonny IDE ved bruk av mikropyton.

Trinn 1: Nå åpner Thonny Ide. Opprett en ny fil i redigeringsvinduet Gå til: Fil> Ny eller trykk Ctrl + n.

Når den nye filen er åpnet, lim inn følgende kode i Thonny IDE -redigeringsvinduet.

Importmaskin, tid
Fra maskinimportnål
Klasse HCSR04:
# ECHO_TIMEOUT_US er basert på Chip Range Limit (400cm)
def __init __ (selv, trigger_pin, ekko_pin, ekko_timeout_us = 500*2*30):
selv-.ECHO_TIMEOUT_US = ECHO_TIMEOUT_US
# Init trigger pin (ut)
selv-.trigger = pin (trigger_pin, modus = pin.Ut, trekk = ingen)
selv-.avtrekker.verdi (0)
# Init ekko pin (in)
selv-.ekko = pin (ekko_pin, modus = pin.I, pull = ingen)
def _send_pulse_and_wait (selv):
selv-.avtrekker.Verdi (0) # Stabiliser sensoren
tid.sleep_us (5)
selv-.avtrekker.verdi (1)
# Send en 10US -puls.
tid.sleep_us (10)
selv-.avtrekker.verdi (0)
prøve:
PULSE_TIME = MASKIN.time_pulse_us (selv.ekko, 1, selv.ECHO_TIMEOUT_US)
Returner Pulse_Time
Bortsett fra Oserror som eks:
Hvis eks.args [0] == 110: # 110 = etimedout
Hev Oserror ('utenfor rekkevidde')
heve eks
Def Distance_mm (selv):
Pulse_time = selv._Send_PULSE_AND_WAIT ()
mm = pulse_time * 100 // 582
return mm
Def Distance_cm (selv):
Pulse_time = selv._Send_PULSE_AND_WAIT ()
CMS = (PULSE_TIME / 2) / 29.1
Returner CMS

Steg 2: Etter å ha skrevet bibliotek Kode inne i redigeringsvinduet Nå må vi lagre den inne i Micropython -enheten.

Trinn 3: Gå til: Fil> Lagre eller trykk Ctrl + s.

Trinn 4: Et nytt vindu vises. Forsikre deg om at ESP32 er koblet til PCen. Velg Micropython -enhet for å lagre bibliotekfilen.

Trinn 5: Lagre Ultrasonic Library -filen med navn HCSR04.py og klikk Ok.

Nå blir Ultrasonic HCSR04 Sensor Library vellykket lagt til ESP32 -styret. Nå kan vi ringe bibliotekfunksjoner i kode for å måle avstanden til forskjellige objekter.

Kode for ultralydsensor ved bruk av mikropyton

For ultralydsensorkode opprett en ny fil (Ctrl + n). I redigeringsvinduet, skriv inn koden gitt nedenfor og lagre den inne i hoved-.py eller støvel.py fil. Denne koden vil skrive ut avstanden til ethvert objekt som kommer foran HC-SR04.

Kode startet med å ringe viktige biblioteker som for eksempel HCSR04 og tid bibliotek sammen med sove å gi forsinkelser.

Deretter opprettet vi et nytt objekt med et navn sensor. Dette objektet tar tre forskjellige argumenter: trigger, ekko og timeout. Her er timeout definert som maksimal tid etter at sensoren går utenfor rekkevidde.

sensor = hcsr04 (trigger_pin = 5, ekko_pin = 18, ekko_timeout_us = 10000)

Å måle og lagre avstand et nytt objekt som heter avstand er skapt. Dette objektet vil spare avstand i CM.

avstand = sensor.Distance_cm ()

Skriv følgende kode for å få data i MM.

avstand = sensor.Distance_mm ()

Deretter trykket vi resultatet på Micropython IDE Shell.

trykk ('avstand:', avstand, 'cm')

Til slutt er det gitt en forsinkelse på 1 sek.

søvn (1)

Fullstendig kode er gitt nedenfor:

Fra HCSR04 import HCSR04
Fra tid importer søvn
# ESP32
sensor = hcsr04 (trigger_pin = 5, ekko_pin = 18, ekko_timeout_us = 10000)
# ESP8266
#Sensor = HCSR04 (Trigger_Pin = 12, ECHO_PIN = 14, ECHO_TIMEOUT_US = 10000)
Mens sant:
avstand = sensor.Distance_cm ()
trykk ('avstand:', avstand, 'cm')
søvn (1)

Etter å ha skrevet og lagret kode inne i Micropython -enheten, kjører jeg nå Ultrasonic Sensor hoved-.py Filkode. Klikk på spillknappen eller trykk F5.

Utgang av ultralydsensor når objektet er i nærheten

Plasser nå et objekt i nærheten.

Objektavstand vises i skallterminalen. Nå er objektet plassert til 5 cm fra ultralydsensoren.

Utgang av ultralydsensor når objektet er langt

Nå for å bekrefte resultatet vårt, vil vi plassere objekter langt fra sensoren og sjekke arbeidet med den ultrasoniske sensoren. Plasser objekter som vist i bildet nedenfor:

Utgangsvinduet vil gi oss en ny avstand, og som vi kan se at objektet er langt fra sensoren, så den målte avstanden er ca. 15 cm fra ultralydsensoren.

Konklusjon

Målingsavstand har en flott anvendelse når det gjelder robotikk og andre prosjekter, det er forskjellige måter å måle avstand. HC-SR04 med ESP32 kan måle avstanden til forskjellige objekter. Her vil denne skrivingen dekke alle trinnene man trenger for å integrere og begynne å måle avstand med ESP32.