Mục lục:

Radar hồng ngoại với Arduino: 6 bước
Radar hồng ngoại với Arduino: 6 bước

Video: Radar hồng ngoại với Arduino: 6 bước

Video: Radar hồng ngoại với Arduino: 6 bước
Video: Làm Một Chiếc Radar Mini Cực Đơn Giản 2024, Tháng mười một
Anonim
Image
Image

Trong dự án nhỏ này, tôi muốn chỉ cho bạn cách bạn có thể tạo một Radar đơn giản tại nhà với Arduino. Có rất nhiều dự án tương tự trên internet, nhưng chúng đều sử dụng cảm biến siêu âm để đo khoảng cách. Trong dự án này, tôi sử dụng một cảm biến hồng ngoại để đo khoảng cách.

Mục tiêu của tôi là tạo ra một hệ thống LIDAR rất đơn giản và rẻ tiền với nó và triển khai một thiết bị lập bản đồ.

Quân nhu

  • Arduino (Tôi đã sử dụng Maple Mini)
  • Cảm biến khoảng cách sắc nét (Tôi đã sử dụng Sharp GP2Y0A02YK0F)
  • Micro Servo (9g)
  • Bảng mạch, dây
  • Tùy chọn: Điện trở 4,7k, Tụ điện 100nF

Bước 1: Cảm biến siêu âm VS hồng ngoại

Sơ đồ
Sơ đồ

Sự khác biệt chính giữa cảm biến khoảng cách siêu âm và hồng ngoại là cảm biến siêu âm đo khoảng cách trong phạm vi rộng hơn. Do đó nó không thể định vị chính xác vị trí của chướng ngại vật. Nó có nghĩa là nó đo khoảng cách của đối tượng gần nhất nằm trong phạm vi góc ~ + -30 °.

Tất nhiên, điều đó không có nghĩa là cảm biến Sharp tốt hơn. Đôi khi thuộc tính này có thể rất hữu ích (ví dụ: được sử dụng bởi máy bay không người lái để đo chiều cao từ mặt đất). Sự lựa chọn phù hợp là hoàn toàn phụ thuộc vào yêu cầu của dự án của bạn.

Bước 2: Sơ đồ

Sơ đồ
Sơ đồ
Sơ đồ
Sơ đồ

Nó rất đơn giản để thực hiện kết nối giữa các bộ phận. Chọn Đầu ra PWM và Đầu vào tương tự trên bảng Arduino của bạn và kết nối cảm biến khoảng cách Servo và Sharp với các chân đó. Tôi đã sử dụng các chân sau cho mục đích này:

  • PA0: Đầu vào tương tự cho cảm biến khoảng cách Sharp
  • PA9: Đầu ra PWM cho Servo

Đôi khi Cảm biến IR sắc nét có thể có đầu ra nhiễu, do đó bạn phải đặt Bộ lọc thông thấp đơn giản trên đó. Tôi đã sử dụng một điện trở 4,7k và một tụ điện 100nF để giảm nhiễu trên chân analog. Bên cạnh đó, tôi cũng lọc giá trị đo được trong mã bằng cách đọc nó nhiều lần và tính giá trị trung bình.

Bước 3: Đặc tính của cảm biến

Đặc điểm cảm biến
Đặc điểm cảm biến
Đặc điểm cảm biến
Đặc điểm cảm biến

Thật không may, cảm biến khoảng cách hồng ngoại được sử dụng có đặc tính không tuyến tính. Nó có nghĩa là để có được khoảng cách, không đủ để nhân giá trị ADC đo được với một giá trị không đổi và thêm một giá trị không đổi khác với nó.

Mặc dù biểu dữ liệu của cảm biến cung cấp đặc tính, tôi thích tự đo nó trong dự án cụ thể (nó có thể phụ thuộc vào điện áp được sử dụng). Đối với điều này, tôi đã tạo các cặp từ Giá trị ADC đo được và khoảng cách cho mỗi 10 cm. (Cảm biến của tôi có thể đo khoảng cách chính xác từ 12 cm).

Tôi đã sử dụng các cặp này trong mã để có được khoảng cách chính xác với Nội suy tuyến tính.

Bạn sẽ tìm thấy một mã Arduino đơn giản ở cuối tài liệu, để đo Giá trị ADC trong quá trình đo đặc tính.

Bước 4: Giao tiếp nối tiếp

Truyền thông nối tiếp
Truyền thông nối tiếp

Tôi đã sử dụng giao tiếp nối tiếp để gửi các giá trị khoảng cách góc đo được tới PC. Vì tôi phải gửi nhiều byte và nhiều loại tin nhắn khác nhau, tôi đã thiết kế một giao thức liên lạc đơn giản.

Procotol này có thể xác định các loại thông báo khác nhau một cách chung chung. Trong dự án này, tôi đã sử dụng 2 loại thông báo:

  • Tham số: Được sử dụng để gửi các tham số đến Ứng dụng PC, được xác định trên Arduino như khoảng cách tối đa và số chướng ngại vật trong một vòng.
  • Trở ngại: Được sử dụng để gửi một chướng ngại vật được phát hiện. Nó được xác định bằng góc của servo và khoảng cách đo được. Vị trí x-y sẽ được tính bằng ứng dụng PC.

Bước 5: Ứng dụng Qt

Ứng dụng Qt
Ứng dụng Qt

Để giao tiếp với Arduino và vẽ các điểm đo được giống như một radar, tôi đã tạo một Ứng dụng PC trong Qt (C ++). Nó nhận một số tham số (được xác định trên Arduino) và các điểm khoảng cách đo được.

Bạn có thể tải xuống ứng dụng và mã nguồn của nó.

Bước 6: Mã nguồn Arduino

Bạn có thể tùy chỉnh một số paremeters ở đầu mã bằng macro.

Lưu ý rằng nếu bạn thay đổi đặc tính của cảm biến khoảng cách Sharp, bạn phải sửa đổi các giá trị mảng distAdcMap !

  • InfraRadar.c: Mã của radar. Sao chép và dán nó vào dự án Arduino của bạn.
  • InfraRadarMeasurement.c: Mã cho phép đo đặc tính. Sao chép và dán nó vào dự án Arduino của bạn. Sử dụng Bảng điều khiển nối tiếp để kiểm tra Giá trị ADC.

Đề xuất: