MicroPython HC-SR04 Ultrasonic Sensor – ESP32 at Thonny IDE

Micropython Hc Sr04 Ultrasonic Sensor Esp32 At Thonny Ide



Ang MicroPython ay malawakang ginagamit sa mga microcontroller at naka-embed na system. Maaari tayong magsulat ng code at mga aklatan sa loob ng MicroPython IDE at mag-interface ng maraming sensor. Gagabayan ka ng writeup na ito sa pagsukat ng distansya gamit ang ESP32 na may HC-SR04 sensor.

ESP32 na may HC-SR04 Ultrasonic Sensor Gamit ang MicroPython

Ang pag-interfacing sa ESP32 na may ultrasonic ay nangangailangan lamang ng dalawang wire upang maikonekta. Gamit ang mga ultrasonic sensor, masusukat natin ang distansya ng bagay at maaaring mag-trigger ng mga tugon batay sa system na ito gaya ng mga system na umiiwas sa banggaan ng sasakyan.









Gamit ang MicroPython na isang idinisenyong wika para sa ESP32 at iba pang mga microcontroller, maaari tayong mag-interface ng maramihang mga sensor tulad ng HC-SR04 . Isusulat ang MicroPython code na kinakalkula ang oras na kinuha ng SONAR wave upang maabot mula sa sensor hanggang object at pabalik sa object. Sa ibang pagkakataon gamit ang formula ng distansya, maaari nating kalkulahin ang distansya ng bagay.



Narito ang ilang pangunahing highlight ng HC-SR04 sensor:





Mga katangian Halaga
Operating Boltahe 5V DC
Kasalukuyang Operating 15mA
Dalas ng Operasyon 40KHz
Aking Saklaw 2cm/ 1 pulgada
Max Range 400cm/ 13 talampakan
Katumpakan 3 mm
Pagsukat ng Anggulo <15 degree

HC-SR04 Pinout Ang HC-SR04 ay naglalaman ng mga sumusunod apat mga pin:

  • Vcc: Kumonekta sa ESP32 Vin pin
  • Gnd: Kumonekta sa GND
  • Trig: I-pin para makatanggap ng control signal mula sa ESP32 board
  • Echo: Magpadala pabalik ng signal. Ang Microcontroller Board ay tumatanggap ng signal na ito upang kalkulahin ang distansya gamit ang oras



Paano Gumagana ang Ultrasonic

Matapos ang HC-SR04 sensor ay konektado sa ESP32 isang signal sa Trig bubuo ng pin sa pamamagitan ng board. Kapag natanggap na ang signal sa trig pin ng HC-SR04 sensor, bubuo ng ultrasonic wave na umaalis sa sensor at tumama sa object o obstacle body. Pagkatapos matamaan ito ay talbog pabalik sa ibabaw ng bagay.

  Awtomatikong nabuo ang isang larawang naglalaman ng teksto Paglalarawan

Kapag ang sinasalamin na alon ay umabot pabalik sa sensor na tumatanggap ng dulo, bubuo ng signal pulse sa echo pin. Ang ESP32 ay tumatanggap ng echo pin signal at kinakalkula ang distansya sa pagitan ng object at sensor gamit Distansya-Formula.

  Awtomatikong nabuo ang Paglalarawan ng Teksto

Ang kabuuang distansya na nakalkula ay dapat na hatiin ng dalawa sa loob ng ESP32 code dahil ang distansya na nakuha natin sa orihinal ay katumbas ng kabuuang distansya mula sa sensor patungo sa bagay at pabalik sa dulo ng pagtanggap ng sensor. Kaya ang tunay na distansya ay ang signal na katumbas ng kalahati ng distansyang iyon.

Schematic

Ang sumusunod ay ang eskematiko para sa interfacing ng ESP32 na may ultrasonic sensor:

  Isang larawan na naglalaman ng text, electronics Paglalarawan ay awtomatikong nabuo

Ikonekta ang trigger at echo pin ng sensor gamit ang GPIO 5 at GPIO 18 ng ESP32 ayon sa pagkakabanggit. Ikonekta din ang ESP32 GND at Vin pin na may mga sensor pin.

HC-SR04 Ultrasonic Sensor ESP32 Pin
Trig GPIO 5
Echo GPIO 18
GND GND
VCC Halika

Hardware

Ang mga sumusunod na bahagi ay kinakailangan upang magprograma ng ultrasonic sensor:

  • ESP32
  • HC-SR04
  • Breadboard
  • Jumper Wire

  Awtomatikong nabuo ang isang larawang naglalaman ng teksto Paglalarawan

Paano Mag-set up ng Ultrasonic HC-SR04 gamit ang ESP32 Gamit ang MicroPython

Bago natin mai-program ang ESP32 gamit ang ultrasonic sensor kailangan nating mag-install ng library dito. Ikonekta ang ESP32 board sa PC. Sundin ang mga hakbang upang kumpletuhin ang configuration ng ESP32 gamit ang ultrasonic sensor sa Thonny IDE gamit ang MicroPython.

Hakbang 1: Ngayon buksan ang Thonny IDE. Gumawa ng bagong file sa editor window Pumunta sa : File>Bago o pindutin Ctrl + N .

Sa sandaling mabuksan ang bagong file, i-paste ang sumusunod na code sa window ng editor ng Thonny IDE.

angkat makina , oras
mula sa makina angkat Pin

klase HCSR04:

Ang # echo_timeout_us ay nakabatay sa limitasyon ng hanay ng chip (400cm)
def __init__ ( sarili , trigger_pin , echo_pin , echo_timeout_us = 500 * dalawa * 30 ) :

sarili . echo_timeout_us = echo_timeout_us
# Init trigger pin (out)
sarili . gatilyo = Pin ( trigger_pin , mode = Pin. LABAS , hilahin = wala )
sarili . gatilyo . halaga ( 0 )

# Init echo pin (in)
sarili . echo = Pin ( echo_pin , mode = Pin. SA , hilahin = wala )

def _send_pulse_and_wait ( sarili ) :

sarili . gatilyo . halaga ( 0 ) # Patatagin ang sensor
oras . sleep_us ( 5 )
sarili . gatilyo . halaga ( 1 )
# Magpadala ng 10us pulse.
oras . sleep_us ( 10 )
sarili . gatilyo . halaga ( 0 )
subukan :
pulse_time = makina. time_pulse_us ( sarili . echo , 1 , sarili . echo_timeout_us )
bumalik pulse_time
maliban sa OSError bilang ex:
kung ex. args [ 0 ] == 110 : # 110 = ETIMEDOUT
itaas OSError ( 'Wala sa saklaw' )
itaas ex

def distansya_mm ( sarili ) :

pulse_time = sarili ._send_pulse_and_wait ( )

mm = pulse_time * 100 // 582
bumalik mm

def distansya_cm ( sarili ) :

pulse_time = sarili ._send_pulse_and_wait ( )

cms = ( pulse_time / dalawa ) / 29.1
bumalik cms

Hakbang 2: Matapos isulat ang aklatan code sa loob ng editor window ngayon kailangan nating i-save ito sa loob ng MicroPython device.

  Teksto, paglalarawan ng application na awtomatikong nabuo

Hakbang 3: Pumunta sa : File>I-save o pindutin Ctrl + S .

  Awtomatikong nabuo ang Graphical user interface, application, Paglalarawan ng Mga Koponan

Hakbang 4: May lalabas na bagong window. Tiyaking konektado ang ESP32 sa PC. Piliin ang MicroPython device para i-save ang library file.

  Graphical user interface, ang paglalarawan ng application ay awtomatikong nabuo

Hakbang 5: I-save ang ultrasonic library file na may pangalan hcsr04.py at i-click OK .

  Graphical user interface, ang paglalarawan ng application ay awtomatikong nabuo

Ngayon ang ultrasonic hcsr04 sensor library ay matagumpay na naidagdag sa ESP32 board. Ngayon ay maaari na nating tawagan ang mga function ng library sa loob ng code upang sukatin ang distansya ng iba't ibang mga bagay.

Code para sa Ultrasonic Sensor Gamit ang MicroPython

Para sa ultrasonic sensor code lumikha ng bagong file ( Ctrl + N ). Sa window ng editor, ipasok ang code na ibinigay sa ibaba at i-save ito sa loob ng main.py o boot.py file. Ipi-print ng code na ito ang distansya ng anumang bagay na darating sa harap ng HC-SR04.

  Ang graphical na interface ng gumagamit, teksto, paglalarawan ng application ay awtomatikong nabuo

Nagsimula ang code sa pamamagitan ng pagtawag sa mahahalagang aklatan tulad ng HCSR04 at oras library kasama ang matulog upang magbigay ng mga pagkaantala.

Susunod, gumawa kami ng bagong bagay na may pangalan sensor . Ang object na ito ay kumukuha ng tatlong magkakaibang argumento: trigger, echo, at timeout. Dito, ang timeout ay tinukoy bilang ang maximum na oras pagkatapos lumabas ang sensor sa saklaw.

sensor = HCSR04 ( trigger_pin = 5 , echo_pin = 18 , echo_timeout_us = 10000 )

Upang sukatin at i-save ang distansya ng isang bagong bagay na pinangalanan distansya ay nilikha. Ang bagay na ito ay magse-save ng distansya sa cm.

distansya = sensor. distansya_cm ( )

Isulat ang sumusunod na code upang makakuha ng data sa mm.

distansya = sensor. distansya_mm ( )

Susunod, nai-print namin ang resulta sa shell ng MicroPython IDE.

print ( 'Distansya:' , distansya , 'cm' )

Sa huli, ibibigay ang pagkaantala ng 1 segundo.

matulog ( 1 )

Ang kumpletong code ay ibinigay sa ibaba:

mula sa hcsr04 angkat HCSR04
mula sa oras angkat matulog
# ESP32
sensor = HCSR04 ( trigger_pin = 5 , echo_pin = 18 , echo_timeout_us = 10000 )
# ESP8266
#sensor = HCSR04(trigger_pin=12, echo_pin=14, echo_timeout_us=10000)
habang totoo :
distansya = sensor. distansya_cm ( )
print ( 'Distansya:' , distansya , 'cm' )
matulog ( 1 )

Pagkatapos magsulat at mag-save ng code sa loob ng MicroPython device, pinapatakbo ko na ngayon ang ultrasonic sensor main.py file code. I-click ang play button o pindutin F5 .

  Awtomatikong nabuo ang Graphical user interface, text, application, chat o text message Paglalarawan

Output ng Ultrasonic Sensor Kapag Malapit na ang Bagay

Ngayon maglagay ng isang bagay malapit sa ultrasonic sensor at suriin ang sinusukat na distansya sa serial monitor window ng Arduino IDE.

  Awtomatikong nabuo ang isang larawang naglalaman ng teksto Paglalarawan

Ang distansya ng bagay ay ipinapakita sa shell terminal. Ngayon ang bagay ay inilalagay sa 5 cm mula sa ultrasonic sensor.

Output ng Ultrasonic Sensor Kapag Malayo ang Bagay

Ngayon upang i-verify ang aming resulta maglalagay kami ng mga bagay na malayo sa sensor at suriin ang paggana ng ultrasonic sensor. Ilagay ang mga bagay tulad ng ipinapakita sa larawan sa ibaba:

  Awtomatikong nabuo ang isang larawang naglalaman ng teksto Paglalarawan

Ang window ng output ay magbibigay sa amin ng isang bagong distansya at tulad ng nakikita namin na ang bagay ay malayo sa sensor, kaya ang sinusukat na distansya ay approx. 15 cm mula sa ultrasonic sensor.

  Graphical user interface, application, Word Description awtomatikong nabuo

Konklusyon

Ang pagsukat ng distansya ay may mahusay na aplikasyon pagdating sa robotics at iba pang mga proyekto, may iba't ibang paraan upang sukatin ang distansya. Maaaring sukatin ng HC-SR04 na may ESP32 ang distansya ng iba't ibang bagay. Dito sasakupin ng writeup na ito ang lahat ng mga hakbang na kailangan ng isa para isama at simulan ang pagsukat ng distansya gamit ang ESP32.