Mục lục:

Dự án 3: SonarDuino: 9 bước
Dự án 3: SonarDuino: 9 bước

Video: Dự án 3: SonarDuino: 9 bước

Video: Dự án 3: SonarDuino: 9 bước
Video: Nhóm 2_12A9_Thùng rác thông minh 2024, Tháng mười một
Anonim
Image
Image

Kính gửi các bạn cùng sở thích, Trong dự án này, chúng tôi sẽ khám phá khả năng có một hệ thống radar 360 độ để phát hiện vật thể. Việc đặt riêng mô-đun này sẽ cho phép rô-bốt vận động của bạn phát hiện ranh giới của môi trường xung quanh. Nó cũng có thể hoạt động như một công cụ điều hướng khi trời tối, nhưng chỉ khi bạn đi đủ chậm; p

Bước 1: Những gì bạn sẽ cần

Chuẩn bị hỗ trợ cảm biến siêu âm
Chuẩn bị hỗ trợ cảm biến siêu âm

Để tạo bản dựng này, bạn sẽ cần mua những thứ sau:

Arduino Nano: https://www.ebay.com/itm/USB-Nano-V3-0-ATmega328-16M-5V-Micro-controller-CH340G-board-For-Arduino/201601613488?hash=item2ef0647eb0:g:DkoAAOSwvYZZpOl0: rk: 2: pf: 0

Bảng nguyên mẫu: https://www.ebay.com/itm/20pcs-set-4Size-Double-Side-Protoboard-Circuit-Universal-DIY-Prototype-PCB-Board/192076517108?epid=506557101&hash=item2cb8a70ef4:g:cQ4AAOSwN ~ Zbl232: rk: 13: pf: 0

Động cơ Servo: https://www.ebay.com/itm/5pcs-POP-9G-SG90-Micro-Servo-motor-RC-Robot-Helicopter-Airplane-Control-Car-Boat/142931003420?hash=item21475a081c:rk: 16: pf: 0 & var

Cảm biến siêu âm: https://www.ebay.com/itm/5PCS-Ultrasonic-Sensor-Module-HC-SR04-Distance-Measuring-Sensor-for-arduino-SR04/170897438205?epid=18020663283&hash=item27ca47f5fd:g:w ~ IAAOSw - xbD5Fp: rk: 2: pf: 0

Bước 2: Tài liệu

Như một số bạn có thể đã biết điều này, dự án này được lấy cảm hứng từ một dự án mã nguồn mở khác có tên “Dự án Arduino Radar” do Dejan thực hiện từ “How to Mechatronics” @ link sau: https://howtomechatronics.com/projects/arduino -radar-dự án /

Một điểm khác yêu cầu tài liệu là tải hai thư viện sau vào môi trường phát triển của bạn:

Adafruit-GFX-Thư viện:

Adafruit_SSD1306:

Điều này đang được nói, để thực sự hiểu mã C, bạn sẽ cần phải làm một số tài liệu của cả hai thư viện trên. Ngoài ra, các chức năng tôi đã sử dụng trong mã của mình có tên kể về những gì chúng làm.

Bước 3: Chuẩn bị hỗ trợ cảm biến siêu âm

Chuẩn bị hỗ trợ cảm biến siêu âm
Chuẩn bị hỗ trợ cảm biến siêu âm
Chuẩn bị hỗ trợ cảm biến siêu âm
Chuẩn bị hỗ trợ cảm biến siêu âm
Chuẩn bị hỗ trợ cảm biến siêu âm
Chuẩn bị hỗ trợ cảm biến siêu âm

Lấy một miếng bìa cứng bất kỳ và cắt nó theo kích thước của cáp kết nối gắn với cảm biến như trong hình đầu tiên. Sau đó, gấp cuối cùng này và dán nó vào giá đỡ động cơ servo. Sau khi hoàn tất, hãy dán hai cảm biến siêu âm theo hình cuối cùng. Lưu ý rằng đầu cắm của các cảm biến phải được hàn theo cách để cáp đi ra ngoài phía trước cảm biến. Điều này sẽ cho phép các cáp cảm biến không giao thoa với nhau khi thực hiện xoay 360 độ.

Bước 4: Gắn kết mọi thứ vào một bảng tạo mẫu

Gắn kết mọi thứ vào một bảng tạo mẫu
Gắn kết mọi thứ vào một bảng tạo mẫu
Gắn kết mọi thứ vào một bảng tạo mẫu
Gắn kết mọi thứ vào một bảng tạo mẫu
Gắn kết mọi thứ vào một bảng tạo mẫu
Gắn kết mọi thứ vào một bảng tạo mẫu

Trong bước này, bạn sẽ bắt đầu bằng cách gắn tiêu đề đã chuẩn bị ở bước trước vào động cơ servo tương ứng của nó. Một khi động cơ servo đã quen thuộc một cách cẩn thận, bạn sẽ gắn mọi thứ lại với nhau thành một bảng tạo mẫu. Bạn sẽ bắt đầu bằng cách hàn Arduino Nano sau đó bằng cách dán servo ngay bên cạnh nó. Cuối cùng, bạn sẽ hàn màn hình OLED nhỏ ở cạnh bên kia của bảng.

Bước 5: Thực hiện các kết nối cuối cùng

Tạo kết nối cuối cùng
Tạo kết nối cuối cùng
Tạo kết nối cuối cùng
Tạo kết nối cuối cùng
Tạo kết nối cuối cùng
Tạo kết nối cuối cùng

Bước này sẽ kết thúc phần cứng của dự án này. Bạn sẽ cần làm theo các sơ đồ được cung cấp để thiết lập tất cả các kết nối cần thiết.

Bước 6: Khởi động chương trình

Khởi động chương trình
Khởi động chương trình

Có hai mã mà bạn sẽ cần để khởi động

Arduino (C):

Đang xử lý (java):

Khi chạy mã, bạn sẽ có hai tùy chọn để lựa chọn:

Tùy chọn 1: Sử dụng Màn hình OLED, bạn sẽ cần đặt biến MODE trong mã C thành 0.

Tùy chọn 2: Sử dụng Màn hình của bạn, vì vậy bạn sẽ cần đặt biến MODE trong mã C thành 1. Ngoài ra, bạn sẽ cần tải xuống và cài đặt Môi trường phát triển xử lý và tải xuống phông chữ radar từ liên kết này: https:// github.com/l addressab/ArduinoRadar/blob/ma…

Và thêm tệp đó vào tệp mã xử lý của bạn để mã java của bạn sẽ nhận ra phông chữ khi được gọi.

Bước 7: Tìm hiểu mã C

Hiểu mã C
Hiểu mã C

Mã chủ yếu bao gồm hai vòng lặp "for". Một là tương quan với đường chuyền về phía trước trong khi đường kia tương quan với đường chuyền lùi. Bên trong cả hai, hàm chính draw_scanner (), sẽ vẽ các đường của radar lên màn hình, được gọi nhiều lần. Sau khi thử nghiệm nhiều cấu hình, tôi đi đến kết luận rằng chúng ta cần ghi đè các vạch radar màu trắng tại thời điểm t bằng các vạch radar màu đen tương tự tại thời điểm t + 1 để xóa chúng. Nếu không, hiện tượng nhấp nháy sẽ xảy ra mỗi khi bạn làm sạch màn hình bằng chức năng “clearDisplay ()” trước khi đẩy lưới pixel mới. Khi tôi xử lý 7 dòng - vì mục đích thiết kế - tôi phải tiếp tục lưu và chuyển mảng số nguyên gồm 7 phần tử, trong đó mỗi phần tử đại diện cho bán kính giữa tâm của radar đến đối tượng được phát hiện, nếu có. Với suy nghĩ này, phần còn lại của mã nên được chuyển tiếp để hiểu.

Bước 8: Tìm hiểu mã Java

Trong Xử lý, tôi phải bỏ qua lệnh gọi hàm serialEvent (), chỉ hoạt động với các cổng nối tiếp có tên COM. Khi tôi đang làm việc trên máy Mac, các cổng nối tiếp của tôi có một tên khác. Điều đó đang được nói, tôi đã giải nén hàm đó thành hàm chính trong xử lý “draw ()”. Về mọi thứ khác, tôi đã cập nhật ứng dụng để đáp ứng thiết kế cuộc cách mạng đầy đủ. Cuối cùng, tôi đã cập nhật tất cả các hình dạng và văn bản đã vẽ theo chiều rộng của màn hình để sản phẩm cuối cùng sẽ phù hợp với các độ phân giải màn hình khác nhau. Cá nhân tôi đã thử nghiệm nó cho cả độ phân giải 1000X1000 và 500X500, và nó hoạt động tốt:).

Bước 9: Kết luận

Công việc này có thể được nâng cấp để có 3 cảm biến Siêu âm, mỗi cảm biến bao phủ 120 góc nhìn, hoặc thậm chí 4 cảm biến (90 độ * 4) -> 360 độ nhanh hơn. quét.

Bạn cũng có thể mở rộng phạm vi hoạt động của radar từ 40 cm đến 60 cm hoặc thậm chí 80 cm. Cá nhân tôi đã kiểm tra chức năng xungIn và điều chỉnh biến TIMEOUT đối với 40 cm. Biến này phụ thuộc vào nhiều yếu tố, bao gồm độ dài của xung gửi và bề mặt của đối tượng nơi xung được phản xạ.

Cuối cùng như đã nêu trước đó, bước tiếp theo là kết hợp radarDuino với một robot chuyển động để quét chu vi xung quanh.

Đề xuất: