Penderia Ultrasonik MicroPython HC-SR04 – ESP32 dan Thonny IDE

Penderia Ultrasonik Micropython Hc Sr04 Esp32 Dan Thonny Ide



MicroPython digunakan secara meluas dengan mikropengawal dan sistem terbenam. Kami boleh menulis kod dan perpustakaan di dalam MicroPython IDE dan antara muka berbilang penderia. Tulisan ini akan membimbing anda mengukur jarak menggunakan ESP32 dengan sensor HC-SR04.

ESP32 dengan Penderia Ultrasonik HC-SR04 Menggunakan MicroPython

Antara muka ESP32 dengan ultrasonik hanya memerlukan dua wayar untuk disambungkan. Menggunakan penderia ultrasonik, kita boleh mengukur jarak objek dan boleh mencetuskan tindak balas berdasarkan sistem ini seperti sistem mengelakkan perlanggaran kenderaan.









Menggunakan MicroPython yang merupakan bahasa yang direka untuk ESP32 dan mikropengawal lain, kami boleh antara muka berbilang penderia seperti HC-SR04 . Kod MicroPython akan ditulis yang mengira masa yang diambil oleh gelombang SONAR untuk mencapai dari sensor ke objek dan kembali ke objek. Kemudian menggunakan formula jarak, kita boleh mengira jarak objek.



Berikut ialah beberapa sorotan utama sensor HC-SR04:





Ciri-ciri Nilai
Voltan Kendalian 5V DC
Arus Operasi 15mA
Kekerapan Operasi 40KHz
Julat Saya 2cm/ 1 inci
Julat Maks 400cm/ 13 kaki
Ketepatan 3 mm
Mengukur Sudut <15 darjah

Pinout HC-SR04 HC-SR04 mengandungi berikut empat pin:

  • Vcc: Sambung ke pin ESP32 Vin
  • Gnd: Sambung ke GND
  • Trig: Pin untuk menerima isyarat kawalan daripada papan ESP32
  • Gema: Hantar isyarat balik. Papan Pengawal Mikro menerima isyarat ini untuk mengira jarak menggunakan masa



Bagaimana Ultrasonik Berfungsi

Selepas sensor HC-SR04 disambungkan dengan ESP32 isyarat di Trig pin akan dijana oleh papan. Sebaik sahaja isyarat diterima pada pin trig sensor HC-SR04 gelombang ultrasonik akan dihasilkan yang meninggalkan sensor dan mengenai objek atau badan halangan. Selepas memukul ia akan melantun semula ke permukaan objek.

  Gambar yang mengandungi teks Penerangan dijana secara automatik

Setelah gelombang yang dipantulkan mencapai kembali ke hujung penerima, nadi isyarat pada pin gema akan dihasilkan. ESP32 menerima isyarat pin gema dan mengira jarak antara objek dan penderia menggunakan Formula Jarak.

  Perihalan Teks dijana secara automatik

Jumlah jarak yang dikira hendaklah dibahagikan dengan dua di dalam kod ESP32 kerana jarak yang kita perolehi pada asalnya adalah sama dengan jumlah jarak dari sensor ke objek dan kembali ke hujung penerima sensor. Jadi jarak sebenar ialah isyarat yang menyamai separuh daripada jarak itu.

Skema

Berikut ialah skema untuk antara muka ESP32 dengan sensor ultrasonik:

  Gambar yang mengandungi teks, elektronik Penerangan dijana secara automatik

Sambungkan pencetus dan pin gema sensor dengan GPIO 5 dan GPIO 18 ESP32 masing-masing. Juga sambungkan ESP32 GND dan pin Vin dengan pin penderia.

Penderia Ultrasonik HC-SR04 Pin ESP32
Trig GPIO 5
Gema GPIO 18
GND GND
VCC DATANG

Perkakasan

Komponen berikut diperlukan untuk memprogramkan sensor ultrasonik:

  • ESP32
  • HC-SR04
  • Papan roti
  • Wayar Pelompat

  Gambar yang mengandungi teks Penerangan dijana secara automatik

Cara Menyediakan Ultrasonik HC-SR04 dengan ESP32 Menggunakan MicroPython

Sebelum kita boleh memprogramkan ESP32 dengan sensor ultrasonik, kita perlu memasang perpustakaan di dalamnya. Sambungkan papan ESP32 ke PC. Ikuti langkah-langkah untuk melengkapkan konfigurasi ESP32 dengan sensor ultrasonik dalam Thonny IDE menggunakan MicroPython.

Langkah 1: Sekarang buka Thonny IDE. Cipta fail baharu dalam tetingkap editor Pergi ke : Fail>Baharu atau tekan Ctrl + N .

Setelah fail baharu dibuka, tampal kod berikut ke dalam tetingkap editor Thonny IDE.

import mesin , masa
daripada mesin import Pin

kelas HCSR04:

# echo_timeout_us adalah berdasarkan had julat cip (400cm)
def __panas__ ( diri sendiri , picu_pin , echo_pin , echo_timeout_us = 500 * dua * 30 ) :

diri sendiri . echo_timeout_us = echo_timeout_us
# Init picu pin (keluar)
diri sendiri . pencetus = Pin ( picu_pin , mod = Pin. KELUAR , tarik = tiada )
diri sendiri . pencetus . nilai ( 0 )

# Init echo pin (in)
diri sendiri . bergema = Pin ( echo_pin , mod = Pin. DALAM , tarik = tiada )

def _hantar_nadi_dan_tunggu ( diri sendiri ) :

diri sendiri . pencetus . nilai ( 0 ) # Menstabilkan sensor
masa . tidur_kami ( 5 )
diri sendiri . pencetus . nilai ( 1 )
# Hantar nadi 10us.
masa . tidur_kami ( 10 )
diri sendiri . pencetus . nilai ( 0 )
cubalah :
masa_nadi = mesin. nadi_masa_kita ( diri sendiri . bergema , 1 , diri sendiri . echo_timeout_us )
kembali masa_nadi
kecuali OSError sebagai cth:
jika ex. args [ 0 ] == 110 : # 110 = ETIMEDOUT
menaikkan OSError ( 'Luar kawasan' )
menaikkan ex

def jarak_mm ( diri sendiri ) :

masa_nadi = diri sendiri ._hantar_nadi_dan_tunggu ( )

mm = masa_nadi * 100 // 582
kembali mm

def jarak_cm ( diri sendiri ) :

masa_nadi = diri sendiri ._hantar_nadi_dan_tunggu ( )

cms = ( pulse_time / dua ) / 29.1
kembali cms

Langkah 2: Selepas menulis perpustakaan kod di dalam tetingkap editor sekarang kita perlu menyimpannya di dalam peranti MicroPython.

  Teks, Perihalan aplikasi dijana secara automatik

Langkah 3: Pergi ke : Fail>Simpan atau tekan Ctrl + S .

  Antara muka pengguna grafik, aplikasi, Perihalan Pasukan dijana secara automatik

Langkah 4: Tetingkap baharu akan muncul. Pastikan ESP32 disambungkan dengan PC. Pilih peranti MicroPython untuk menyimpan fail perpustakaan.

  Antara muka pengguna grafik, Perihalan aplikasi dijana secara automatik

Langkah 5: Simpan fail perpustakaan ultrasonik dengan nama hcsr04.py dan klik okey .

  Antara muka pengguna grafik, Perihalan aplikasi dijana secara automatik

Kini perpustakaan sensor hcsr04 ultrasonik berjaya ditambahkan pada papan ESP32. Sekarang kita boleh memanggil fungsi perpustakaan di dalam kod untuk mengukur jarak objek yang berbeza.

Kod untuk Penderia Ultrasonik Menggunakan MicroPython

Untuk kod sensor ultrasonik buat fail baharu ( Ctrl + N ). Dalam tetingkap editor, masukkan kod yang diberikan di bawah dan simpan di dalam main.py atau boot.py fail. Kod ini akan mencetak jarak mana-mana objek yang datang di hadapan HC-SR04.

  Antara muka pengguna grafik, teks, aplikasi Penerangan dijana secara automatik

Kod dimulakan dengan memanggil perpustakaan penting seperti HCSR04 dan masa perpustakaan bersama-sama dengan tidur untuk memberi kelewatan.

Seterusnya, kami mencipta objek baharu dengan nama penderia . Objek ini mengambil tiga hujah berbeza: pencetus, gema dan tamat masa. Di sini tamat masa ditakrifkan sebagai masa maksimum selepas penderia keluar dari julat.

penderia = HCSR04 ( picu_pin = 5 , echo_pin = 18 , echo_timeout_us = 10000 )

Untuk mengukur dan menyimpan jarak objek baru dinamakan jarak dicipta. Objek ini akan menjimatkan jarak dalam cm.

jarak = penderia. jarak_cm ( )

Tulis kod berikut untuk mendapatkan data dalam mm.

jarak = penderia. jarak_mm ( )

Seterusnya, kami mencetak hasilnya pada cangkerang IDE MicroPython.

cetak ( 'Jarak:' , jarak , 'cm' )

Pada akhirnya kelewatan selama 1 saat diberikan.

tidur ( 1 )

Kod lengkap diberikan di bawah:

daripada hcsr04 import HCSR04
daripada masa import tidur
# ESP32
penderia = HCSR04 ( picu_pin = 5 , echo_pin = 18 , echo_timeout_us = 10000 )
# ESP8266
#sensor = HCSR04(trigger_pin=12, echo_pin=14, echo_timeout_us=10000)
sementara betul :
jarak = penderia. jarak_cm ( )
cetak ( 'Jarak:' , jarak , 'cm' )
tidur ( 1 )

Selepas menulis dan menyimpan kod di dalam peranti MicroPython, saya kini menjalankan sensor ultrasonik main.py kod fail. Klik butang main atau tekan F5 .

  Antara muka pengguna grafik, teks, aplikasi, sembang atau mesej teks Penerangan dijana secara automatik

Output Penderia Ultrasonik Apabila Objek Dekat

Sekarang letakkan objek berhampiran sensor ultrasonik dan semak jarak yang diukur pada tetingkap monitor bersiri Arduino IDE.

  Gambar yang mengandungi teks Penerangan dijana secara automatik

Jarak objek ditunjukkan dalam terminal shell. Sekarang objek diletakkan pada 5 cm dari sensor ultrasonik.

Output Penderia Ultrasonik Apabila Objek Jauh

Sekarang untuk mengesahkan keputusan kami, kami akan meletakkan objek jauh dari sensor dan menyemak kerja sensor ultrasonik. Letakkan objek seperti yang ditunjukkan dalam imej di bawah:

  Gambar yang mengandungi teks Penerangan dijana secara automatik

Tetingkap output akan memberi kita jarak baharu dan seperti yang kita dapat lihat objek itu jauh dari penderia, jadi jarak yang diukur adalah lebih kurang. 15 cm dari sensor ultrasonik.

  Antara muka pengguna grafik, aplikasi, Perihalan Perkataan dijana secara automatik

Kesimpulan

Mengukur jarak mempunyai aplikasi yang hebat apabila ia berkaitan dengan robotik dan projek lain, terdapat cara yang berbeza untuk mengukur jarak. HC-SR04 dengan ESP32 boleh mengukur jarak objek yang berbeza. Di sini penulisan ini akan merangkumi semua langkah yang perlu disepadukan dan mula mengukur jarak dengan ESP32.