Mục lục:

Phát hiện chướng ngại vật không đồng bộ với siêu âm: 4 bước
Phát hiện chướng ngại vật không đồng bộ với siêu âm: 4 bước

Video: Phát hiện chướng ngại vật không đồng bộ với siêu âm: 4 bước

Video: Phát hiện chướng ngại vật không đồng bộ với siêu âm: 4 bước
Video: Toàn cảnh thế giới 29/1: “Thảm họa” đẩy ông Biden vào bế tắc; ông Trump vẫn “bền bỉ” khó ngờ 2024, Tháng bảy
Anonim
Phát hiện chướng ngại vật không đồng bộ với siêu âm
Phát hiện chướng ngại vật không đồng bộ với siêu âm

Tôi đang xây dựng cho niềm vui một robot mà tôi muốn di chuyển tự động trong một ngôi nhà.

Đó là một công việc dài và tôi đang làm từng bước một.

Điều này tập trung vào việc phát hiện chướng ngại vật với Arduino Mega

Cảm biến siêu âm HC-SR04 vs HY-SRF05 rẻ và dễ sử dụng nhưng có thể khó tích hợp trong vòng lặp vi điều khiển trong một robot phức tạp. Tôi muốn chạy phát hiện chướng ngại vật theo cách không đồng bộ.

_

Tôi đã xuất bản 3 hướng dẫn về các tính năng của robot này:

  • Tạo bộ mã hóa bánh xe của bạn
  • Tạo cổng WIFI của bạn
  • Sử dụng đơn vị mô-đun quán tính

Và một tài liệu về việc kết hợp trí tuệ nhân tạo và sóng siêu âm để bản địa hóa robot.

Bước 1: Vấn đề chính xác với cảm biến siêu âm và vi điều khiển là gì?

Vấn đề chính xác với cảm biến siêu âm và bộ vi điều khiển là gì?
Vấn đề chính xác với cảm biến siêu âm và bộ vi điều khiển là gì?
Vấn đề chính xác với cảm biến siêu âm và bộ vi điều khiển là gì?
Vấn đề chính xác với cảm biến siêu âm và bộ vi điều khiển là gì?

Chờ đồng bộ và các hạn chế của Arduino

Mã vi điều khiển chạy theo vòng lặp và không hỗ trợ đa luồng. Cảm biến siêu âm dựa trên thời lượng tín hiệu. Khoảng thời gian này kéo dài đến 30 m s, rất lâu để chờ đợi bên trong vòng lặp khi bộ vi điều khiển phải xử lý với nhiều động cơ và cảm biến (ví dụ: động cơ servo và động cơ DC có bộ mã hóa bánh xe).

Vì vậy, tôi muốn phát triển một đối tượng chạy không đồng bộ.

Bước 2: Nó hoạt động như thế nào?

Làm thế nào nó hoạt động ?
Làm thế nào nó hoạt động ?

Nó đã được thiết kế cho Atmega để phát hiện chướng ngại vật. Nó hỗ trợ tối đa 4 cảm biến siêu âm.

Nhờ ngắt thời gian định kỳ, hệ thống có thể giám sát tới 4 cảm biến siêu âm. Mã chính chỉ phải xác định cảm biến nào cần kích hoạt với điều kiện và ngưỡng. Mã chính chỉ bị ngắt trong trường hợp (điều kiện, ngưỡng) xuất hiện.

Các chức năng chính là:

  • Cảnh báo là phát hiện chướng ngại vật cơ bản và cung cấp ngắt nếu ít nhất 1 trong 4 cảm biến phát hiện khoảng cách dưới ngưỡng của nó
  • Màn hình là một chức năng mở rộng cung cấp ngắt kết hợp điều kiện khoảng cách của tối đa 4 cảm biến. Các điều kiện có thể là trên, dưới, bằng hoặc không bằng ngưỡng.

Bước 3: Chi tiết kỹ thuật

Sử dụng timer4 nên không thể sử dụng chân 6 7 8 làm PWM.

Đối với mỗi cảm biến, đối tượng cần một mã PIN kích hoạt và một mã PIN ngắt.

Trên đầu các cảm biến ngắt mã PIN, đối tượng cần một mã PIN ngắt khác để sử dụng phần mềm.

Bước 4: Làm thế nào để thực hiện?

Làm thế nào để thực hiện?
Làm thế nào để thực hiện?

Kết nối các cảm biến như trên

Tải xuống từ kho lưu trữ GitHub này

  • EchoObstacleDetection.cpp,
  • EchoObstacleDetection.h
  • ExampleEchoObstacleDetection.ino

Tạo thư mục EchoObstacleDetection bên trong thư viện IDE của bạn và di chuyển.cpp và.h

Kiểm tra nó

Mở ExampleEchoObstacleDetection.ino.

Đây là một ví dụ phát hiện chướng ngại vật đơn giản chạynng với 2 cảm biến siêu âm.

Đầu ra được hướng trên màn hình nối tiếp. Lúc đầu, nó sẽ in khoảng cách được phát hiện bởi 2 cảm biến và sau đó in cảnh báo tùy thuộc vào khoảng cách dưới ngưỡng.

Đề xuất: