- Vật liệu thiết yếu:
- Sơ đồ mạch:
- Cách mô-đun HC-SR04 thực sự hoạt động:
- Đo khoảng cách giữa hai cảm biến siêu âm (HC-SR04):
- Chương trình cho cảm biến máy phát:
- Chương trình cho cảm biến máy thu:
- Đang làm việc:
- Ý tưởng cải tiến - hiệu chỉnh cảm biến bằng khoảng cách đã biết:
Cảm biến siêu âm (HC-SR04) thường được sử dụng để tìm khoảng cách của một đối tượng từ một điểm cụ thể. Nó khá dễ dàng để làm điều này với Arduino và mã cũng khá đơn giản. Nhưng trong bài viết này, chúng tôi sẽ thử điều gì đó khác với các cảm biến HC-SR04 phổ biến này. Chúng tôi sẽ thử tính toán khoảng cách giữa hai cảm biến siêu âm, nghĩa là chúng tôi sẽ làm cho một cảm biến hoạt động như máy phát và cảm biến kia hoạt động như máy thu. Bằng cách này, chúng tôi có thể theo dõi vị trí của một máy phát bằng cách sử dụng nhiều máy thu siêu âm, theo dõi này được gọi là phương pháp tam giác và có thể được sử dụng cho rô bốt tự động cập cảng hành lý và các ứng dụng tương tự khác. Tìm khoảng cách giữa hai cảm biến của Hoa Kỳ Nghe có vẻ là một nhiệm vụ khá đơn giản nhưng tôi phải đối mặt với một số thách thức được thảo luận trong dự án này.
Kỹ thuật được thảo luận trong bài viết này không tương đối chính xác và có thể không hữu ích trong bất kỳ hệ thống thực nào nếu không có sửa đổi. Trong thời gian của tài liệu này, tôi không tìm thấy ai nhận được kết quả gần giống như của tôi vì vậy tôi chỉ chia sẻ quan điểm của mình về cách tôi làm cho nó hoạt động để những người đang thử điều này không cần phải phát minh lại bánh xe.
Vật liệu thiết yếu:
- Arduino (2Nos) - Bất kỳ mô hình nào
- Mô-đun HCSR04 (2Nos)
Sơ đồ mạch:
Mặc dù chúng tôi sẽ chế tạo một cảm biến (Siêu âm) của Mỹ để hoạt động như một máy phát và một cảm biến khác như một máy thu, nhưng bắt buộc phải kết nối tất cả bốn chân của cảm biến với Arduino. Tại sao chúng ta lại nên? Phần sau sẽ được thảo luận nhiều hơn, nhưng hiện tại sơ đồ mạch sẽ như sau
Như bạn có thể thấy sơ đồ mạch cho cả Máy phát và Máy thu đều giống hệt nhau. Cũng kiểm tra: Giao diện cảm biến siêu âm Arduino
Cách mô-đun HC-SR04 thực sự hoạt động:
Trước khi tiếp tục, hãy cho chúng tôi hiểu cách hoạt động của cảm biến HC-SR04. Sơ đồ thời gian dưới đây sẽ giúp chúng ta hiểu được công việc.
Cảm biến có hai chân Trigger và Echo dùng để đo khoảng cách như trong sơ đồ thời gian. Đầu tiên để bắt đầu đo, chúng ta nên gửi một sóng siêu âm từ máy phát, điều này có thể được thực hiện bằng cách đặt chân kích hoạt ở mức cao 10uS. Ngay sau khi điều này được thực hiện, chân máy phát sẽ gửi 8 đợt sóng âm của Mỹ. Sóng US này sẽ đập vào một vật thể bị dội ngược trở lại và sẽ được máy thu nhận.
Ở đây biểu đồ thời gian cho thấy rằng một khi bộ thu nhận được sóng, nó sẽ làm cho chân Echo đi lên cao trong một khoảng thời gian bằng với thời gian để sóng truyền từ cảm biến US và quay trở lại cảm biến. Đây sơ đồ thời gian dường như không đến mức khó tin.
Tôi đã che phần Tx (bộ phát) của cảm biến và kiểm tra xem xung Echo có cao không và có tăng cao không. Điều này có nghĩa là xung Echo không đợi nó nhận được sóng (siêu âm) của Mỹ. Khi nó truyền đi làn sóng Hoa Kỳ, nó sẽ tăng cao và duy trì ở mức cao cho đến khi sóng quay trở lại. Vì vậy, sơ đồ thời gian chính xác sẽ giống như thế này được hiển thị bên dưới (Xin lỗi vì kỹ năng viết kém của tôi)
Làm cho HC-SR04 của bạn chỉ hoạt động như Máy phát:
Việc chế tạo HC-SR04 chỉ hoạt động như một thiết bị phát là điều khá dễ dàng. Như được hiển thị trong sơ đồ thời gian, bạn phải khai báo chân Trigger là chân đầu ra và đặt nó ở mức cao trong 10 Micro giây. Điều này sẽ bắt đầu bùng nổ sóng siêu âm. Vì vậy, bất cứ khi nào chúng ta muốn truyền sóng, chúng ta chỉ cần điều khiển chân kích hoạt của cảm biến Máy phát, mã được đưa ra bên dưới.
Làm cho HC-SR04 của bạn chỉ hoạt động như Người nhận:
Như thể hiện trong sơ đồ thời gian, chúng tôi không thể kiểm soát sự tăng lên của chân Echo vì nó liên quan đến chân kích hoạt. Vì vậy, không có cách nào chúng tôi có thể làm cho HC-SR04 chỉ hoạt động như một bộ thu. Nhưng chúng ta có thể sử dụng cách hack, bằng cách chỉ dùng băng dính che phần Transmitter của cảm biến (như trong hình bên dưới) hoặc bịt kín sóng US không thể thoát ra ngoài vỏ Transmitter của nó và chân Echo sẽ không bị ảnh hưởng bởi sóng US này.
Bây giờ để làm cho chân echo tăng cao, chúng ta chỉ cần kéo chân kích hoạt giả này lên cao trong 10 Micro giây. Khi cảm biến Bộ thu này nhận được sóng Hoa Kỳ được truyền bởi cảm biến Bộ phát, chân dội âm sẽ ở mức thấp.
Đo khoảng cách giữa hai cảm biến siêu âm (HC-SR04):
Cho đến nay chúng ta đã hiểu cách làm cho một cảm biến hoạt động như một máy phát và một cảm biến khác hoạt động như một máy thu. Bây giờ, chúng ta phải truyền sóng siêu âm từ cảm biến phát và nhận nó với cảm biến thu và kiểm tra thời gian để sóng truyền từ máy phát đến máy thu âm thanh dễ dàng phải không ?? Nhưng thật đáng buồn !, chúng tôi gặp sự cố ở đây và điều này sẽ không hoạt động.
Mô-đun Bộ phát và mô-đun Bộ thu nằm cách xa nhau và khi mô-đun thu nhận được sóng Hoa Kỳ từ mô-đun máy phát, nó sẽ không biết khi nào máy phát đã gửi sóng cụ thể này. Nếu không biết thời gian bắt đầu, chúng ta không thể tính toán thời gian thực hiện và do đó khoảng cách. Để giải quyết vấn đề này, xung Echo của mô-đun máy thu phải được thực hiện để tăng cao chính xác khi mô-đun Bộ phát đã truyền sóng Mỹ. Nói cách khác, mô-đun Máy phát và mô-đun máy thu sẽ kích hoạt cùng một lúc. Điều này có thể đạt được bằng phương pháp sau.
Trong sơ đồ trên, Tx đại diện cho cảm biến Máy phát và Rx đại diện cho cảm biến Máy thu. Như đã trình bày, cảm biến Máy phát sẽ được tạo ra để truyền các sóng của Hoa Kỳ ở một độ trễ đã biết định kỳ, đây là tất cả những gì nó phải làm.
Trong cảm biến Máy thu, chúng ta phải bằng cách nào đó làm cho chân kích hoạt tăng cao chính xác trong khi chân máy phát tăng cao. Vì vậy, ban đầu, chúng tôi ngẫu nhiên làm cho Bộ kích hoạt máy thu tăng cao và sẽ ở mức cao cho đến khi chân echo xuống thấp. Chân echo này sẽ chỉ xuống thấp khi nó nhận được sóng US từ máy phát. Vì vậy, ngay khi nó xuống thấp, chúng ta có thể cho rằng cảm biến Máy phát vừa được kích hoạt. Bây giờ, với giả định này ngay khi tiếng vọng xuống thấp, chúng ta có thể đợi độ trễ đã biết và sau đó kích hoạt bộ thu. Điều này sẽ đồng bộ một phần trình kích hoạt của cả Máy phát và máy thu và do đó bạn có thể đọc thời lượng xung dội lại tức thì bằng cách sử dụng xungIn () và tính toán khoảng cách.
Chương trình cho cảm biến máy phát:
Bạn có thể tìm thấy chương trình hoàn chỉnh cho mô-đun máy phát ở cuối trang. Nó không làm gì khác ngoài việc kích hoạt cảm biến máy phát theo một khoảng thời gian định kỳ.
digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW);
Để kích hoạt một cảm biến, chúng ta phải làm cho chân kích hoạt ở mức cao trong 10uS. Mã để làm điều tương tự được hiển thị ở trên
Chương trình cho cảm biến máy thu:
Trong cảm biến máy thu, chúng tôi đã che mắt Máy phát của cảm biến để làm cho nó giả như đã thảo luận trước đó. Bây giờ chúng ta có thể sử dụng kỹ thuật đã đề cập ở trên để đo khoảng cách giữa hai cảm biến. Chương trình hoàn chỉnh được đưa ra ở cuối trang này. Vài dòng quan trọng được giải thích bên dưới
Trigger_US (); while (digitalRead (echoPin) == HIGH); delayMicroseconds (10); Trigger_US (); thời lượng = xungIn (echoPin, CAO);
Ban đầu, chúng tôi kích hoạt cảm biến Hoa Kỳ bằng cách sử dụng hàm Trigger_US () và sau đó đợi cho đến khi chân echo vẫn ở mức cao bằng cách sử dụng một vòng lặp. Khi nó xuống thấp, chúng tôi đợi khoảng thời gian xác định trước, khoảng thời gian này sẽ nằm trong khoảng từ 10 đến 30 micro giây có thể được xác định bằng cách sử dụng thử và sai (Hoặc bạn có thể sử dụng ý tưởng ngẫu hứng được cung cấp bên dưới). Sau thời gian trễ này, Hoa Kỳ lại sử dụng hàm tương tự và sau đó sử dụng hàm xungIn () để tính thời lượng của sóng.
Bây giờ, sử dụng các công thức cũ tương tự, chúng ta có thể tính khoảng cách như bên dưới
khoảng cách = thời lượng * 0,034;
Đang làm việc:
Thực hiện các kết nối như được giải thích trong chương trình. Che phần Tx của cảm biến đầu thu như trong hình. Sau đó, tải mã Bộ phát và mã bộ thu được cung cấp bên dưới lên Arduino bộ phát và bộ thu tương ứng. Mở màn hình nối tiếp của mô-đun bộ thu và bạn sẽ thấy khoảng cách giữa hai mô-đun được hiển thị như trong video bên dưới.
Lưu ý: Phương pháp này chỉ là một hệ tư tưởng và có thể không chính xác hoặc không thỏa mãn. Tuy nhiên bạn có thể thử ý tưởng ngẫu hứng dưới đây để đạt hiệu quả tốt hơn.
Ý tưởng cải tiến - hiệu chỉnh cảm biến bằng khoảng cách đã biết:
Phương pháp đã được giải thích cho đến nay một cách kỳ lạ dường như vẫn hài lòng, nhưng nó vẫn đủ cho dự án của tôi. Tuy nhiên tôi cũng xin chia sẻ những mặt hạn chế của phương pháp này và cách khắc phục. Một nhược điểm lớn của phương pháp này là chúng tôi giả định rằng chân Echo của máy thu giảm xuống thấp ngay sau khi cảm biến Máy phát đã truyền sóng Hoa Kỳ, điều này không đúng vì sóng sẽ mất một khoảng thời gian để truyền từ máy phát đến máy thu. Do đó Trigger của máy phát và trigger của máy thu sẽ không đồng bộ hoàn hảo.
Để khắc phục điều này, chúng ta có thể hiệu chỉnh cảm biến bằng cách sử dụng một khoảng cách biết trước. Nếu biết khoảng cách, chúng ta sẽ biết thời gian cần thiết để sóng Mỹ đến máy thu từ máy phát. Hãy giữ thời gian này được lấy là Del (D) như hình dưới đây.
Bây giờ chúng ta sẽ biết chính xác sau bao nhiêu thời gian chúng ta nên làm cho chân Kích hoạt của Bộ thu lên cao để đồng bộ với bộ kích hoạt của Bộ phát. Khoảng thời gian này có thể được tính bằng Độ trễ đã biết (t) - Độ trễ (D). Tôi không thể thử nghiệm ý tưởng này do thời gian giới hạn nên tôi không chắc nó sẽ hoạt động chính xác đến mức nào. Vì vậy, nếu bạn tình cờ thử nó, hãy cho tôi biết kết quả thông qua phần bình luận.