Cảm biến siêu âm MicroPython HC-SR04 – ESP32 và Thonny IDE

Cam Bien Sieu Am Micropython Hc Sr04 Esp32 Va Thonny Ide



MicroPython được sử dụng rộng rãi với các bộ vi điều khiển và hệ thống nhúng. Chúng ta có thể viết mã và thư viện bên trong MicroPython IDE và giao tiếp với nhiều cảm biến. Bài viết này sẽ hướng dẫn bạn đo khoảng cách bằng ESP32 với cảm biến HC-SR04.

ESP32 với cảm biến siêu âm HC-SR04 sử dụng MicroPython

Kết nối ESP32 với siêu âm chỉ cần kết nối hai dây. Sử dụng cảm biến siêu âm, chúng ta có thể đo khoảng cách đối tượng và có thể kích hoạt phản hồi dựa trên hệ thống này, chẳng hạn như hệ thống tránh va chạm xe cộ.









Sử dụng MicroPython, ngôn ngữ được thiết kế cho ESP32 và các bộ vi điều khiển khác, chúng tôi có thể giao tiếp với nhiều cảm biến như HC-SR04 . Mã MicroPython sẽ được viết để tính toán thời gian sóng SONAR đi từ cảm biến đến đối tượng và quay trở lại đối tượng. Sau này sử dụng công thức khoảng cách, chúng ta có thể tính khoảng cách đối tượng.



Dưới đây là một số điểm nổi bật chính của cảm biến HC-SR04:





Đặc điểm Giá trị
điện áp hoạt động 5V một chiều
điều hành hiện tại 15mA
Tần số hoạt động 40KHz
Phạm vi của tôi 2cm/ 1 inch
Phạm vi tối đa 400cm/ 13 chân
Sự chính xác 3mm
đo góc <15 độ

Sơ đồ chân HC-SR04 HC-SR04 chứa sau bốn ghim:

  • Vcc: Kết nối với chân ESP32 Vin
  • Gnd: Kết nối với GND
  • Trig: Chân nhận tín hiệu điều khiển từ board ESP32
  • tiếng vang: Gửi lại tín hiệu. Bo mạch vi điều khiển nhận tín hiệu này để tính khoảng cách theo thời gian



Siêu âm hoạt động như thế nào

Sau khi cảm biến HC-SR04 được kết nối với ESP32, một tín hiệu ở Trig pin sẽ được tạo ra bởi bảng. Sau khi nhận được tín hiệu ở chân trig của cảm biến HC-SR04, một sóng siêu âm sẽ được tạo ra để rời khỏi cảm biến và chạm vào vật thể hoặc vật cản. Sau khi va chạm, nó sẽ dội ngược trở lại bề mặt vật thể.

  Ảnh có chứa văn bản Mô tả được tạo tự động

Khi sóng phản xạ quay trở lại đầu nhận cảm biến, một xung tín hiệu ở chân phản hồi sẽ được tạo ra. ESP32 nhận tín hiệu chân echo và tính toán khoảng cách giữa đối tượng và cảm biến bằng cách sử dụng Khoảng cách-Công thức.

  Văn bản Mô tả được tạo tự động

Tổng khoảng cách được tính toán phải được chia cho hai bên trong mã ESP32 vì khoảng cách chúng ta nhận được ban đầu bằng tổng khoảng cách từ cảm biến đến đối tượng và trở lại đầu nhận cảm biến. Vì vậy, khoảng cách thực là tín hiệu bằng một nửa khoảng cách đó.

sơ đồ

Sau đây là sơ đồ kết nối ESP32 với cảm biến siêu âm:

  Ảnh có chứa văn bản, điện tử Mô tả được tạo tự động

Kết nối chốt kích hoạt và chân hồi âm của cảm biến với GPIO 5 và GPIO 18 của ESP32 tương ứng. Cũng kết nối chân ESP32 GND và Vin với chân cảm biến.

Cảm biến siêu âm HC-SR04 Chân ESP32
Trig GPIO5
tiếng vang GPIO18
GND GND
VCC ĐẾN

Phần cứng

Các thành phần sau đây được yêu cầu để lập trình cảm biến siêu âm:

  • ESP32
  • HC-SR04
  • bánh mì
  • dây nhảy

  Ảnh có chứa văn bản Mô tả được tạo tự động

Cách thiết lập siêu âm HC-SR04 với ESP32 bằng MicroPython

Trước khi có thể lập trình ESP32 với cảm biến siêu âm, chúng ta cần cài đặt một thư viện trong đó. Kết nối bảng ESP32 với PC. Thực hiện theo các bước để hoàn thành cấu hình ESP32 với cảm biến siêu âm trong Thonny IDE bằng MicroPython.

Bước 1: Bây giờ hãy mở Thonny IDE. Tạo một tệp mới trong cửa sổ soạn thảo Đi đến : Tệp>Mới hoặc nhấn Ctrl + N .

Khi tệp mới được mở, hãy dán đoạn mã sau vào cửa sổ trình soạn thảo Thonny IDE.

nhập khẩu cỗ máy , thời gian
từ cỗ máy nhập khẩu Ghim

lớp HCSR04:

# echo_timeout_us dựa trên giới hạn phạm vi chip (400cm)
chắc chắn __nóng__ ( bản thân , trigger_pin , echo_pin , echo_timeout_us = 500 * hai * 30 ) :

bản thân . echo_timeout_us = echo_timeout_us
# Bắt đầu kích hoạt pin (ra)
bản thân . Kích hoạt = Ghim ( trigger_pin , cách thức = Ghim. NGOÀI , sự lôi kéo = Không có )
bản thân . Kích hoạt . giá trị ( 0 )

# Bắt đầu ghim echo (vào)
bản thân . tiếng vang = Ghim ( echo_pin , cách thức = Ghim. TRONG , sự lôi kéo = Không có )

chắc chắn _send_pulse_and_wait ( bản thân ) :

bản thân . Kích hoạt . giá trị ( 0 ) # Ổn định cảm biến
thời gian . ngủ_chúng tôi ( 5 )
bản thân . Kích hoạt . giá trị ( 1 )
# Gửi xung 10us.
thời gian . ngủ_chúng tôi ( 10 )
bản thân . Kích hoạt . giá trị ( 0 )
thử :
xung_thời gian = cỗ máy. time_pulse_us ( bản thân . tiếng vang , 1 , bản thân . echo_timeout_us )
trở về xung_thời gian
ngoại trừ Hệ điều hànhLỗi như Ví dụ:
nếu Ví dụ. tranh luận [ 0 ] == 110 : # 110 = ETIMEDOUT
nuôi Hệ điều hànhLỗi ( 'Nằm ngoài phạm vi' )
nuôi Ví dụ

chắc chắn khoảng cách_mm ( bản thân ) :

xung_thời gian = bản thân ._send_pulse_and_wait ( )

mm = xung_thời gian * 100 // 582
trở về mm

chắc chắn khoảng cách_cm ( bản thân ) :

xung_thời gian = bản thân ._send_pulse_and_wait ( )

cm = ( xung_thời gian / hai ) / 29.1
trở về cm

Bước 2: Sau khi viết thư viện mã bên trong cửa sổ soạn thảo bây giờ chúng ta phải lưu nó bên trong thiết bị MicroPython.

  Văn bản, ứng dụng Mô tả được tạo tự động

Bước 3: Đi đến : Tệp>Lưu hoặc nhấn Ctrl + S .

  Giao diện người dùng đồ họa, ứng dụng, Mô tả nhóm được tạo tự động

Bước 4: Một cửa sổ mới sẽ xuất hiện. Đảm bảo rằng ESP32 được kết nối với PC. Chọn thiết bị MicroPython để lưu tệp thư viện.

  Giao diện người dùng đồ họa, ứng dụng Mô tả được tạo tự động

Bước 5: Lưu tệp thư viện siêu âm với tên hcsr04.py và bấm vào ĐƯỢC RỒI .

  Giao diện người dùng đồ họa, ứng dụng Mô tả được tạo tự động

Bây giờ thư viện cảm biến siêu âm hcsr04 đã được thêm thành công vào bảng ESP32. Bây giờ chúng ta có thể gọi các hàm thư viện bên trong mã để đo khoảng cách của các đối tượng khác nhau.

Mã cho cảm biến siêu âm bằng MicroPython

Đối với mã cảm biến siêu âm, hãy tạo một tệp mới ( Ctrl + N ). Trong cửa sổ soạn thảo, nhập mã được cung cấp dưới đây và lưu nó vào bên trong chính.py hoặc boot.py tập tin. Mã này sẽ in khoảng cách của bất kỳ đối tượng nào đến trước HC-SR04.

  Giao diện người dùng đồ họa, văn bản, ứng dụng Mô tả được tạo tự động

Mã bắt đầu bằng cách gọi các thư viện quan trọng như HCSR04 thời gian thư viện cùng với ngủ để đưa ra sự chậm trễ.

Tiếp theo, chúng ta tạo một đối tượng mới với tên cảm biến . Đối tượng này đang nhận ba đối số khác nhau: kích hoạt, tiếng vang và thời gian chờ. Ở đây thời gian chờ được định nghĩa là thời gian tối đa sau khi cảm biến vượt ra ngoài phạm vi.

cảm biến = HCSR04 ( trigger_pin = 5 , echo_pin = 18 , echo_timeout_us = 10000 )

Để đo và lưu khoảng cách, một đối tượng mới có tên khoảng cách được tạo ra. Đối tượng này sẽ lưu khoảng cách tính bằng cm.

khoảng cách = cảm biến. khoảng cách_cm ( )

Viết đoạn mã sau để lấy dữ liệu theo mm.

khoảng cách = cảm biến. khoảng cách_mm ( )

Tiếp theo, chúng tôi đã in kết quả trên vỏ MicroPython IDE.

in ( 'Khoảng cách:' , khoảng cách , 'cm' )

Cuối cùng, độ trễ 1 giây được đưa ra.

ngủ ( 1 )

Toàn bộ mã được đưa ra dưới đây:

từ hcsr04 nhập khẩu HCSR04
từ thời gian nhập khẩu ngủ
#ESP32
cảm biến = HCSR04 ( trigger_pin = 5 , echo_pin = 18 , echo_timeout_us = 10000 )
#ESP8266
#sensor = HCSR04(trigger_pin=12, echo_pin=14, echo_timeout_us=10000)
trong khi ĐÚNG VẬY :
khoảng cách = cảm biến. khoảng cách_cm ( )
in ( 'Khoảng cách:' , khoảng cách , 'cm' )
ngủ ( 1 )

Sau khi viết và lưu mã bên trong thiết bị MicroPython, bây giờ tôi chạy cảm biến siêu âm chính.py mã tập tin. Nhấp vào nút phát hoặc nhấn F5 .

  Giao diện người dùng đồ họa, văn bản, ứng dụng, trò chuyện hoặc tin nhắn văn bản Mô tả được tạo tự động

Đầu ra của cảm biến siêu âm khi đối tượng ở gần

Bây giờ đặt một vật gần cảm biến siêu âm và kiểm tra khoảng cách đo được trên cửa sổ màn hình nối tiếp của Arduino IDE.

  Ảnh có chứa văn bản Mô tả được tạo tự động

Khoảng cách đối tượng được hiển thị trong thiết bị đầu cuối shell. Bây giờ đối tượng được đặt cách cảm biến siêu âm 5 cm.

Đầu ra của cảm biến siêu âm khi đối tượng ở xa

Bây giờ để xác minh kết quả của chúng tôi, chúng tôi sẽ đặt các vật thể cách xa cảm biến và kiểm tra hoạt động của cảm biến siêu âm. Đặt các đối tượng như trong hình bên dưới:

  Ảnh có chứa văn bản Mô tả được tạo tự động

Cửa sổ đầu ra sẽ cung cấp cho chúng ta một khoảng cách mới và như chúng ta có thể thấy đối tượng đó ở xa cảm biến, vì vậy khoảng cách đo được là khoảng. 15 cm từ cảm biến siêu âm.

  Giao diện người dùng đồ họa, ứng dụng, Word Mô tả được tạo tự động

Sự kết luận

Đo khoảng cách có một ứng dụng tuyệt vời khi nói đến robot và các dự án khác, có nhiều cách khác nhau để đo khoảng cách. HC-SR04 với ESP32 có thể đo khoảng cách của các đối tượng khác nhau. Ở đây, bài viết này sẽ bao gồm tất cả các bước cần thiết để tích hợp và bắt đầu đo khoảng cách với ESP32.