Mục lục:

Mảng radar tĩnh (LIDAR) với Arduino: 10 bước (có hình ảnh)
Mảng radar tĩnh (LIDAR) với Arduino: 10 bước (có hình ảnh)

Video: Mảng radar tĩnh (LIDAR) với Arduino: 10 bước (có hình ảnh)

Video: Mảng radar tĩnh (LIDAR) với Arduino: 10 bước (có hình ảnh)
Video: Rada hoạt động như thế nào ? Mr Thông Não 2024, Tháng bảy
Anonim
Mảng radar tĩnh (LIDAR) với Arduino
Mảng radar tĩnh (LIDAR) với Arduino
Mảng radar tĩnh (LIDAR) với Arduino
Mảng radar tĩnh (LIDAR) với Arduino
Mảng radar tĩnh (LIDAR) với Arduino
Mảng radar tĩnh (LIDAR) với Arduino

Khi tôi đang chế tạo một con rô bốt hai chân, tôi luôn nghĩ đến việc có một loại tiện ích tuyệt vời nào đó có thể theo dõi đối thủ của tôi và thực hiện các động tác tấn công với nó. Nhiều dự án radar / lidar đã tồn tại ở đây. Tuy nhiên, có một số hạn chế cho mục đích của tôi:

  • Các mô-đun cảm biến sóng siêu âm có kích thước khá lớn. Mọi robot sẽ trông giống như WALL-E.
  • Các dự án radar hiện tại đều bao gồm một cảm biến (sóng siêu âm, IR, laser,…) và một động cơ servo ở giữa. Quét môi trường yêu cầu servo di chuyển sang hai bên. Di chuyển đồ đạc qua lại sẽ tạo ra những thay đổi về động lượng, điều này không tốt cho việc đi bộ và thăng bằng bằng hai chân.
  • Tần số quét bị giới hạn bởi tốc độ servo. Có lẽ chỉ một số hertz có thể đạt được. Ngay cả khi tần số quét có thể được tăng lên bởi một số siêu servo, điều này sẽ dẫn đến rung động nặng.
  • Việc bố trí [động cơ servo trung tâm - cảm biến] cũng giới hạn vị trí lắp đặt và thiết kế. Rất khó để gắn những thứ đó ngoài làm đầu. Điều đó làm cho hai chân của tôi trông giống như một cái lắc đầu WALL-E mỗi lần. Không mát mẻ!
  • Cách sắp xếp [cảm biến servo] cũng có thể được xây dựng theo kiểu [cảm biến động cơ]. Cảm biến (hoặc các cảm biến) quay liên tục dọc theo trục động cơ. Điều này có thể loại bỏ hiện tượng giật xung lượng và các vấn đề về tần số quét thấp, nhưng không phải là hạn chế về thiết kế thân. Độ khó đi dây cũng sẽ tăng lên đáng kể.

Sau khi tìm kiếm, cảm biến nhỏ bé VL53L0X này từ ST văng vào mắt tôi. Bằng cách tuyên bố cảm biến phạm vi thời gian bay "Nhỏ nhất thế giới", kích thước chỉ là 4,4 x 2,4 x 1,0 mm. Có

  • Trên bộ phát và phát hiện tia laser IR trên chip
  • Phạm vi lên đến 2m (1,2m ở chế độ nhanh)
  • Địa chỉ I2C có thể lập trình
  • Chân đầu ra ngắt GPIO
  • An toàn cho mắt

Tất cả các tính năng đặc biệt này kết hợp với nhau đã giúp tôi khắc phục được các vấn đề ở trên, nếu một loạt các cảm biến VL53L0X có thể hoạt động. Ban đầu, tôi nghĩ rằng radar này sẽ được gọi là radar trạng thái rắn, nhưng phát hiện ra rằng thuật ngữ này được sử dụng cho một thứ khác. Do đó từ "Văn phòng phẩm" trong tiêu đề có nghĩa là không có bộ phận chuyển động nào trong thiết bị radar này. Ngoài ra, trong khi LIDAR (phát hiện và phạm vi ánh sáng) là thuật ngữ chính xác về mặt kỹ thuật cho con chip này, RADAR ở đây được gọi là một thuật ngữ chung chung hơn.

Lý do tại sao địa chỉ I2C có thể lập trình và chân đầu ra GPIO lại quan trọng đối với dự án này được giải thích ở phần sau.

Bước 1: Công cụ và bộ phận

Công cụ và bộ phận
Công cụ và bộ phận
Công cụ và bộ phận
Công cụ và bộ phận

Công cụ

Các công cụ sau được yêu cầu trong dự án này:

  • Hàn sắt
  • Hàn giúp tay
  • Công cụ gấp nếp Dupont
  • Trình điều khiển lục giác 1,5mm
  • Công cụ loại bỏ lớp phủ dây
  • Kìm cắt dây
  • Súng bắn keo nóng
  • Cái nhíp
  • Kính lúp (vật lý hoặc ứng dụng trong điện thoại của bạn)
  • Kìm mũi phẳng

Các bộ phận

Các phần sau được sử dụng trong dự án này:

  • Bảng đột phá 10x VL53L0X GY-530
  • Arduino (Uno, Nano, Mega, Zero, Mini,… vv)
  • Một breadboard và một số dây breadboard
  • Dây AWG # 26 với các màu khác nhau
  • Dây lõi đơn AWG # 30
  • 5x đầu nối nam Dupont
  • 5x Vỏ Dupont chốt đơn
  • Chủ sở hữu bảng đột phá in 3D 10x
  • 1x khung hình tròn in 3D
  • 10x M2x10 vít đầu phẳng
  • 10x 0804 LED (Đề xuất màu xanh lam)
  • 10x SOT-23 AO3400 kênh N-MOSFET
  • Một tụ điện nhỏ (10 ~ 100uF)

Bảng đột phá

Bảng đột phá VL53L0X mà tôi sử dụng là GY-530. Ngoài ra còn có phiên bản Adafruit và phiên bản Pololu. Nếu khả thi, tôi khuyên bạn nên sử dụng sản phẩm của Adafruit hoặc Pololu vì họ tạo ra những sản phẩm tuyệt vời, hướng dẫn tuyệt vời và thư viện phần mềm tuyệt vời. Tôi đã thử nghiệm trên thư viện VL53L0X của Adafruit và sử dụng phiên bản sửa đổi của thư viện VL53L0X của Pololu.

Đầu nối Dupont

Các đầu nối dupont được sử dụng cho breadboard. Bạn có thể sử dụng bất kỳ loại kết nối nào khác mà bạn có trong tay.

Vít và các bộ phận in 3D

Các vít M2, giá đỡ và khung hình tròn được sử dụng để đặt các cảm biến theo hình tròn. Bạn có thể sử dụng bất kỳ phương pháp nào khác, chẳng hạn như sử dụng bảng thẻ, gỗ mô hình, đất sét, hoặc thậm chí dùng keo nóng dán chúng lên lon.

Bước 2: Hacking Breadout Board

Hacking the Breadout Board
Hacking the Breadout Board
Hacking the Breadout Board
Hacking the Breadout Board
Hacking the Breadout Board
Hacking the Breadout Board
Hacking the Breadout Board
Hacking the Breadout Board

Nón phát hiện

Tôi đã sử dụng một mô-đun duy nhất để vẽ hình nón phát hiện. Sử dụng một robot chủ yếu được in 3D làm mục tiêu. Khoảng cách được hiển thị trên màn hình led và được đo gần đúng. Dữ liệu đo được được ghi vào tệp Microsoft Excel và được sử dụng chức năng điều chỉnh đường cong. Phù hợp nhất là một đường cong logarit tự nhiên, với khoảng cách hiệu quả từ 3 cm đến xấp xỉ 100 cm.

Ở 60 cm, đường cong phát hiện cho một cảm biến là khoảng 22 cm. Với mục tiêu rộng 20 cm, khoảng cách hình tròn 10 ~ 15 độ đối với mảng radar sẽ mang lại độ phân giải quét chấp nhận được.

Địa chỉ I2C

Trong khi địa chỉ thiết bị VL53L0X I2C có thể lập trình được, cần có toàn quyền kiểm soát chân XSHUT của bộ điều khiển vi mô. Trình tự để làm như vậy là:

  1. Nguồn được áp dụng cho AVDD.
  2. Tất cả các chip VL53L0X được đưa về trạng thái Hw Standby (đặt lại) bằng cách điều khiển TẤT CẢ các chân XSHUT của chúng xuống THẤP.
  3. Từng con chip được đưa ra khỏi trạng thái đặt lại tại một thời điểm. Địa chỉ I2C mặc định sau khi khởi động là 0x52.
  4. Địa chỉ chip được thay đổi thành địa chỉ mới thông qua lệnh I2C. Ví dụ: 0x52 đã thay đổi thành 0x53.
  5. Lặp lại bước 3 và 4 cho tất cả các chip.

Về mặt lý thuyết, tối đa 126 đơn vị có thể được lái trên cùng một xe buýt cho dải địa chỉ 7-bit. Tuy nhiên, trong thực tế, điện dung bus và giới hạn dòng chìm của bộ điều khiển vi mô có thể / nên giới hạn số lượng thiết bị tối đa.

Địa chỉ I2C mới không được lưu trữ trong chip VL53L0X khi tắt nguồn hoặc đặt lại. Vì vậy, quá trình này phải được thực hiện một lần sau mỗi lần bật nguồn. Điều này có nghĩa là cần có một chốt quý giá cho mọi đơn vị trong mảng radar. Đây là cách quá không thân thiện với hệ thống dây điện và tiêu thụ pin, đối với vành đai radar có từ 10 trở lên hoặc 20 đơn vị trở lên.

Như đã đề cập trong STEP1, thật may mắn là có một chân GPIO1 trên chip VL53L0X, ban đầu được sử dụng để ngắt, có thể thực hiện công việc.

Chuỗi daisy GPIO-XSHUTN

Đầu ra GPIO ở trạng thái trở kháng cao khi khởi động và mở cống xuống mức thấp khi đang hoạt động. Các chân GPIO và XSHUT được kéo cao đến AVDD trên bảng đột phá GY-530, như được đề xuất trong biểu dữ liệu. Để đặt tất cả các chip VL53L0X một cách đáng tin cậy vào trạng thái Hw Standby (điều khiển XSHUT ở mức thấp), chúng ta cần một cổng NOT logic (biến tần) cho mỗi chân XSHUT. Sau đó, chúng tôi kết nối đầu ra GPIO của một chip (chip thứ N), với XSHUTN (XSHUT-NOT) của chip hạ lưu (chip N + 1).

Khi bật nguồn, tất cả các chân GPIO (không hoạt động) được kéo lên, tất cả các chân XSHUT tiếp theo được đưa xuống mức thấp bởi cổng NOT (ngoại trừ chip rất nắm tay nơi chân XSHUTN của nó được kết nối với bộ điều khiển vi mô). Thay đổi địa chỉ I2C và giải phóng XSHUT của chip hạ lưu được thực hiện trong phần mềm, từng cái một.

Nếu bạn đang sử dụng các bảng ngắt khác nhau, bạn cần đảm bảo xem các điện trở kéo lên có đúng vị trí hay không và thực hiện các điều chỉnh thích hợp.

Thêm đèn LED

Trong bước tiếp theo, một đèn LED SMD 0805 nhỏ sẽ được thêm vào bảng đột phá, được kết nối từ đệm XSHUT đến đầu cuối GND của tụ điện liền kề. Mặc dù bản thân đèn LED không ảnh hưởng đến hoạt động của mô-đun, nhưng nó cho chúng ta dấu hiệu trực quan tốt về mức logic XSHUT.

Mắc đèn LED nối tiếp với điện trở kéo lên (trong trường hợp của tôi là 10k) trên chân XSHUT sẽ làm giảm điện áp. Thay vì mức logic cao là 3,3v, điện áp giảm cho đèn LED 0805 màu đỏ được đo là 1,6v. Mặc dù điện áp này cao hơn mức logic cao (1.12v) trong biểu dữ liệu, nhưng đèn LED màu xanh lam sẽ tốt hơn cho việc hack này. Điện áp giảm phía trước cho đèn LED màu xanh lam được đo khoảng 2,4v, cao hơn mức logic của chip một cách an toàn.

Thêm Biến tần N-MOS (Cổng Logic NOT)

Một MOSFET kênh N SOT-23 nhỏ được xếp chồng lên đèn LED mà chúng tôi đã thêm vào. Hai đầu cuối (D, S) cần được hàn trên bo mạch đột phá và đầu cuối còn lại (G) được kết nối với chân GPIO của bo mạch ngược dòng bằng dây # 26.

Lưu ý về việc thêm các thành phần SMD

Hàn các thành phần SMD trên một bảng đột phá không được thiết kế cho, không phải là một nhiệm vụ dễ dàng. Nếu bạn chưa từng nghe nói về 0805, SMD, SOT-23, rất có thể bạn chưa hàn những linh kiện nhỏ bé đó trước đây. Trong khi xử lý các thành phần nhỏ bé đó bằng tay, điều rất phổ biến là:

  • Điều nhỏ bé chỉ rơi ra và biến mất, mãi mãi,
  • Những miếng đệm nhỏ xíu trên vật nhỏ vừa bong ra.
  • Đôi chân nhỏ xíu trên vật nhỏ vừa gãy.
  • Thiếc hàn chỉ tụ lại thành một đốm màu và không thể tách rời.
  • Và hơn thế nữa…

Nếu bạn vẫn muốn tạo ra radar này, bạn có thể:

  • Thay đổi các thành phần thành gói lớn hơn, chẳng hạn như kiểu DIP.
  • Nhận nhiều thành phần hơn yêu cầu tối thiểu, để thực hành và tiêu dùng.

Bước 3: Hàn đèn LED 0805

Hàn đèn LED 0805
Hàn đèn LED 0805
Hàn đèn LED 0805
Hàn đèn LED 0805
Hàn đèn LED 0805
Hàn đèn LED 0805
Hàn đèn LED 0805
Hàn đèn LED 0805

Hàn đèn LED SMD 0805

Hàn một đèn LED 0805 bằng tay, trên một bảng đột phá không được thiết kế cho SMD, không phải là một nhiệm vụ dễ dàng chút nào. Các bước sau đây là khuyến nghị của tôi để hàn đèn LED.

  1. Sử dụng tay trợ giúp để giữ bảng đột phá của bạn.
  2. Đặt một ít keo hàn lên cạnh của tụ điện SMD và miếng đệm "XSHUT".
  3. Dùng mỏ hàn để hàn thêm vào mép tụ điện.
  4. Đặt một ít keo hàn vào cả hai đầu của đèn LED 0805.
  5. Dùng mỏ hàn để đặt một ít thiếc vào hai đầu của đèn LED 0805.
  6. Sử dụng nhíp để đặt đèn LED như trong hình. Đầu cực âm thường có một vạch được đánh dấu. Trong ví dụ của tôi, có một đường màu xanh lá cây ở đầu cực âm. Đặt đầu cực âm vào đầu tụ điện.
  7. Sử dụng nhíp để thêm áp suất ánh sáng trên đèn LED về phía tụ điện và hàn đèn LED vào đầu tụ điện, bằng cách thêm nhiệt vào đầu tụ điện cùng một lúc. Không ấn mạnh vào đèn LED. Vỏ của nó có thể bị vỡ dưới nhiệt độ và áp suất quá cao. Sau khi hàn, thêm áp lực nhẹ lên phía bên của đèn LED để kiểm tra xem đèn LED đã được hàn đúng vị trí chưa.
  8. Bây giờ hàn đèn LED tại miếng đệm nhúng XSHUT. Bước này sẽ dễ dàng hơn.

Lưu ý: Đầu tụ điện trong hình là đầu nối đất trên bảng đấu nối này. Và đệm nhúng XSHUT được kéo lên bởi một điện trở.

Kiểm tra đèn LED

Đèn LED sẽ sáng khi bạn sử dụng nguồn (ví dụ như 5V) và nối đất với bảng mạch điện.

Bước 4: Hàn MOSFET kênh N

Hàn MOSFET kênh N
Hàn MOSFET kênh N
Hàn MOSFET kênh N
Hàn MOSFET kênh N
Hàn MOSFET kênh N
Hàn MOSFET kênh N
Hàn MOSFET kênh N
Hàn MOSFET kênh N

Hàn MOSFET kênh N AO3400

MOSFET này nằm trong gói SOT-23. Chúng tôi cần phải "xếp chồng" nó trên đèn LED và thêm một dây:

  1. Đặt một ít keo hàn và thiếc cả ba thiết bị đầu cuối.
  2. Sử dụng nhíp để đặt MOSFET lên trên đèn LED 0805. Đầu nối S phải chạm vào đỉnh của tụ điện
  3. Hàn đầu S với đầu tụ điện, như trong hình.
  4. Cắt một đoạn nhỏ dây lõi đơn AWG # 30 và loại bỏ lớp phủ khoảng 1cm.
  5. Sử dụng mỏ hàn để làm chảy chất hàn trong lỗ XSHUT từ bên dưới và chèn dây số 30 từ bên trên, như trong hình.
  6. Hàn đầu trên của dây vào đầu cuối MOSFET D.
  7. Cắt bỏ dây thừa.

Lưu ý: Đầu cuối MOSFET S được kết nối với đầu tụ điện như trong hình. Đầu cuối này là đầu cuối mặt đất. Đầu cuối MOSFET D được kết nối với chân XSHUT ban đầu.

Nhà ga G không được kết nối tại thời điểm này. Vị trí của nó nằm ngay trên một số điện trở kéo lên. Đảm bảo rằng có một khoảng cách giữa chúng (N-MOS và điện trở) và không tiếp xúc với nhau.

Bước 5: Đấu dây cho mảng cảm biến

Đấu dây cho mảng cảm biến
Đấu dây cho mảng cảm biến
Đấu dây cho mảng cảm biến
Đấu dây cho mảng cảm biến
Đấu dây cho mảng cảm biến
Đấu dây cho mảng cảm biến

Hệ thống dây Bus chung

Xe buýt thông thường bao gồm:

  • Điện vcc. Màu đỏ trong ảnh. Tôi đang sử dụng arduino nano với logic 5v. Bảng đột phá có LDO và level-shifter. Nên cứ dùng 5v là Vin là an toàn rồi.
  • Đất. Màu đen trong ảnh.
  • SDA. Màu xanh lá cây trong ảnh.
  • SCL. Màu vàng trong ảnh.

Bốn dòng này là dòng chung. Cắt dây có độ dài thích hợp và hàn song song chúng vào tất cả các mô-đun cảm biến. Tôi đã sử dụng 20 cm từ arduino đến cảm biến đầu tiên và 5 cm mỗi sau đó.

Kết nối XSHUTN và GPIO

Dây trắng dài 20 cm là từ chân điều khiển arduino đến chân XSHUTN của cảm biến đầu tiên. Đây là dòng điều khiển cần thiết để đưa chip VL53L0X đầu tiên ra khỏi thiết lập lại và thay đổi địa chỉ I2C.

Dây trắng dài 5 cm giữa mỗi mô-đun là dây điều khiển chuỗi daisy. Tấm đệm GPIO của chip ngược dòng (ví dụ: chip # 3), được kết nối với chân xuống (ví dụ: chip # 4) XSHUTN (đầu cuối N-Channel MOSFET G).

Cẩn thận không để đầu cuối G tiếp xúc với điện trở bên dưới. Bạn có thể thêm một băng cách nhiệt vào khoảng trống. Có thể sử dụng lớp lót bảo vệ thường được cung cấp cùng với chip VL53L0X tại đây.

Dùng súng bắn nhiệt để dán dây điều khiển.

Keo nóng

Như bạn có thể thấy trong ảnh, có một vệt keo nóng trên dây điều khiển màu trắng, gần đầu cuối N-MOS G. Bước này rất quan trọng và vô cùng cần thiết. Mối hàn nổi trực tiếp vào chân của thành phần SMD là rất yếu. Ngay cả một áp lực nhỏ trên dây cũng có thể làm gãy chân. Thực hiện bước này một cách nhẹ nhàng.

Kiểm tra đèn LED

Khi bạn cấp nguồn (ví dụ: 3.3v-5v) và nối đất vào mảng cảm biến, đèn LED trên mô-đun đầu tiên sẽ phản hồi với mức logic dây XSHUTN. Nếu bạn kết nối XSHUTN với mức logic cao (ví dụ: 3,3v-5v), đèn LED sẽ tắt. Nếu bạn kết nối dây XSHUTN với mức thấp (đất), đèn LED trên mô-đun đầu tiên sẽ sáng.

Đối với tất cả các mô-đun tiếp theo, đèn LED phải tắt.

Thử nghiệm này được tiến hành trước khi kết nối với arduino.

Bước 6: Hoàn thành mảng cảm biến

Image
Image
Hoàn thành mảng cảm biến
Hoàn thành mảng cảm biến
Hoàn thành mảng cảm biến
Hoàn thành mảng cảm biến
Hoàn thành mảng cảm biến
Hoàn thành mảng cảm biến

Kiểm tra chuỗi Daisy

Bây giờ chúng ta muốn kiểm tra xem sự thay đổi địa chỉ I2C có hoạt động đối với tất cả các cảm biến trong mảng hay không. Như đã đề cập, con chip đầu tiên được điều khiển bởi arduino. Con chip thứ hai được điều khiển bởi con chip thứ nhất, v.v.

  1. Thiết lập bảng bánh mì. 5V và đường sắt nối đất được kết nối trực tiếp từ adriano 5V và mặt đất. Mức tiêu thụ hiện tại cho mỗi cảm biến được xếp hạng 19ma trong biểu dữ liệu.
  2. Thêm một tụ điện trên đường ray điện để giúp ổn định Vin.
  3. Kết nối Vin và Ground từ mảng cảm biến vào ray điện.
  4. Kết nối SDA với chân A4 arduino Nano (có thể khác đối với các bộ điều khiển vi mô khác).
  5. Kết nối SCL với arduino Nano pin A5 (có thể khác đối với các bộ điều khiển vi mô khác).
  6. Kết nối dây XSHUTN với chân D2 của arduino Nano. (Điều này có thể được thay đổi trong bản phác thảo).
  7. Truy cập github https://github.com/FuzzyNoodle/Fuzzy-Radar và tải xuống thư viện.
  8. Mở ví dụ "Daisy_Chain_Testing" và tải lên bản phác thảo.

Nếu mọi thứ hoạt động, bạn sẽ thấy các đèn LED trạng thái sáng lên từng cái một, tương tự như video clip ở trên.

Bạn cũng có thể mở Cửa sổ nối tiếp và xem tiến trình khởi tạo. Đầu ra sẽ xuất hiện như thế này:

Mở portPort mở Bắt đầu phác thảo. Đặt chip 0 vào chế độ đặt lại. Tất cả các đèn LED trạng thái phải tắt. Bây giờ cấu hình các cảm biến. Đèn LED sẽ sáng lên từng cái một. Cấu hình chip 0 - Đặt lại địa chỉ I2C thành 83 - Khởi tạo cảm biến. Cấu hình chip 1 - Đặt lại địa chỉ I2C thành 84 - Khởi tạo cảm biến. Cấu hình chip 2 - Đặt lại địa chỉ I2C thành 85 - Khởi tạo cảm biến. Đã hoàn tất cấu hình mảng radar.

Lắp ráp Giá đỡ và Khung

  1. Cẩn thận đặt từng mô-đun GY-530 lên giá đỡ bằng vít M2x10. Không nhấn MOSFET hoặc kéo dây XSHUTN.
  2. Đặt từng ngăn chứa vào khung hình tròn. Sử dụng một ít keo nóng để kết dính các bộ phận.

Một lần nữa, các vít M2, giá đỡ và khung hình tròn được sử dụng để đặt các cảm biến theo hình tròn. Bạn có thể sử dụng bất kỳ phương pháp nào khác, chẳng hạn như sử dụng bảng thẻ, gỗ mô hình, đất sét, hoặc thậm chí dùng keo nóng dán chúng lên lon.

Các tệp in 3D mà tôi đã sử dụng được cung cấp bên dưới. Khung hình tròn có 9 mô-đun, và cách nhau 10 độ. Nếu bạn có một con mắt tinh tường, có 10 mô-đun trong các bức ảnh trước đó. Nguyên nhân? Giải thích bên dưới…

Loại bỏ lớp lót bảo vệ

Nếu bạn đã làm theo các bước từ đầu, bây giờ là thời điểm tốt để tháo lớp lót bảo vệ trên chip VL53L0X. Trên các bức ảnh trước đây của tôi, chúng đã bị xóa vì tôi phải kiểm tra các mô-đun và đảm bảo rằng khái niệm hoạt động trước khi đăng tài liệu hướng dẫn này.

Về lớp lót bảo vệ, datasheet ghi: "Khách hàng phải tháo nó ra ngay trước khi lắp kính che". Hai lỗ nhỏ (bộ phát và bộ thu) trên chip VL53L0X dễ bị ô nhiễm, chẳng hạn như bụi, dầu mỡ, keo nóng, v.v.

Một khi bị ô nhiễm, phạm vi có thể bị giảm và các kết quả đọc có thể bị sai lệch một lượng rõ ràng. Một trong những mô-đun thử nghiệm của tôi vô tình bị ô nhiễm bởi đất sét keo, phạm vi giảm xuống còn 40cm và việc đọc khoảng cách bị sai lệch do phóng to 50%. Vì vậy, hãy cẩn thận!

Bước 7: Lấy dữ liệu

Image
Image
Laser Tracer (Trình diễn)
Laser Tracer (Trình diễn)

Sử dụng ví dụ Raw_Data_Serial_Output

Bây giờ chúng tôi thực sự muốn xem dữ liệu từ mảng cảm biến của chúng tôi. Trong thư viện arduino trên GitHub:

https://github.com/FuzzyNoodle/Fuzzy-Radar

Có một ví dụ được gọi là Raw_Data_Serial_Output. Ví dụ này minh họa đầu ra dữ liệu thô từ mảng cảm biến. Giá trị đầu ra tính bằng milimét.

Sau khi các cảm biến được khởi động, sẽ thấy một cái gì đó như thế này trong cửa sổ nối tiếp khi bạn vẫy tay qua các cảm biến:

Tham khảo video clip để biết trình diễn trực tiếp.

Sử dụng ví dụ Fuzzy_Radar_Serial_Output

Bước tiếp theo là lấy dữ liệu hữu ích từ các giá trị khoảng cách này. Những gì chúng tôi muốn từ một RADAR là khoảng cách và góc của đối tượng mục tiêu.

  • Khoảng cách tính bằng milimét, liên quan đến bề mặt cảm biến. Trả về 0 có nghĩa là mục tiêu nằm ngoài phạm vi.
  • Góc tính bằng độ, trên mặt phẳng nằm ngang. Mã hiện tại mong đợi các cảm biến được đặt cách đều nhau. Trả về 0 độ có nghĩa là mục tiêu nằm ở vị trí trung tâm của mảng.

Một số thuật toán lọc được áp dụng trong thư viện:

  • Loại bỏ tiếng ồn:

    • Các bài đọc ngắn (về số lượng mẫu) được coi là nhiễu và bị loại bỏ.
    • Các bài đọc khác xa giá trị trung bình sẽ bị loại bỏ.
  • Tính toán góc trọng lượng (xem hình minh họa ở trên)

    • Đối tượng đích được giả định là một bề mặt phẳng
    • Nếu nhiều cảm biến phát hiện đối tượng cùng một lúc, trọng lượng sẽ được tính cho mỗi cảm biến.
    • Trọng lượng của mỗi cảm biến tỷ lệ nghịch với khoảng cách của nó.
    • Thiên thần kết quả được tính toán từ góc có trọng số của mỗi cảm biến.
  • Lựa chọn mục tiêu chính:

    • Nếu có nhiều hơn một nhóm số đọc, nhóm rộng nhất (có nhiều số đọc cảm biến hơn) vẫn còn.
    • Ví dụ: nếu bạn đặt hai tay trước dãy cảm biến, thì bàn tay được nhiều cảm biến phát hiện hơn vẫn còn.
  • Lựa chọn mục tiêu gần nhất:

    • Nếu có nhiều hơn một nhóm được phát hiện có cùng chiều rộng, nhóm ở khoảng cách gần nhất vẫn còn.
    • Ví dụ: nếu bạn đặt hai tay trước dãy cảm biến và hai nhóm được phát hiện có cùng số lượng cảm biến, thì nhóm gần cảm biến vẫn còn.

Khoảng cách và góc đầu ra được làm mịn thông qua bộ lọc thông thấp

Trong Raw_Data_Serial_Output, giá trị khoảng cách thô được chuyển đổi thành giá trị khoảng cách và góc. Sau khi tải lên bản phác thảo, bạn có thể mở cửa sổ nối tiếp để xem kết quả tương tự như sau:

Không có đối tượng nào được phát hiện. Không có đối tượng nào được phát hiện. Không có đối tượng nào được phát hiện. Khoảng cách = 0056 Góc = 017 Khoảng cách = 0066 Góc = 014 Khoảng cách = 0077 Góc = 011 Khoảng cách = 0083 Góc = 010 Khoảng cách = 0081 Góc = 004 Khoảng cách = 0082 Góc = 000 Khoảng cách = 0092 Góc = 002 Khoảng cách = 0097 Góc = 001 Khoảng cách = 0096 Góc = 001 Khoảng cách = 0099 Góc = 000 Khoảng cách = 0101 Góc = -002 Khoảng cách = 0092 Góc = -004 Khoảng cách = 0095 Góc = -007 Khoảng cách = 0101 Góc = -008 Khoảng cách = 0112 Góc = -014 Khoảng cách = 0118 Góc = -017 Khoảng cách = 0122 Góc = -019 Khoảng cách = 0125 Góc = -019 Khoảng cách = 0126 Góc = -020 Khoảng cách = 0125 Góc = -022 Khoảng cách = 0124 Góc = -024 Khoảng cách = 0133 Góc = -027 Khoảng cách = 0138 Góc = - 031 Khoảng cách = 0140 Góc = -033 Khoảng cách = 0136 Góc = -033 Khoảng cách = 0125 Góc = -037 Khoảng cách = 0120 Góc = -038 Khoảng cách = 0141 Góc = -039 Không phát hiện đối tượng. Không có đối tượng nào được phát hiện. Không có đối tượng nào được phát hiện.

Vì vậy, bây giờ, bạn có một RADAR (LIDAR):

  • Nhỏ hơn mô-đun cảm biến siêu âm
  • Không có bộ phận chuyển động
  • Quét ở 40 Hz.
  • Có hình dạng như một chiếc thắt lưng, có thể gắn trên khung hình tròn
  • Chỉ sử dụng ba dây điều khiển, cộng với nguồn và đất.
  • Có phạm vi từ 30 mm đến khoảng 1000 mm.

Trong các bước sau, chúng tôi sẽ cho bạn thấy một số minh chứng thú vị!

Bước 8: Laser Tracer (Trình diễn)

Image
Image
Laser Tracer (Trình diễn)
Laser Tracer (Trình diễn)

Đây là một ví dụ về việc sử dụng Radar cố định mà chúng tôi đã xây dựng từ các bước trước. Bước này không được viết chi tiết, vì đây là phần trình diễn của Radar. Nói chung, bạn cần các mục bổ sung này để xây dựng dự án trình diễn này:

  • Hai Servos
  • Một đầu phát ra bút laser
  • Một Transistor MOSFET hoặc NPN để điều khiển đầu ra laser
  • Nguồn điện cho Servos. Nó phải được tách khỏi bộ điều khiển vi mô.

Mã có thể được tải xuống tại đây.

Vui lòng xem video được cung cấp.

Bước 9: Nhìn chằm chằm Poopeyes (Trình diễn)

Image
Image

Trình diễn việc sử dụng radar ở xa để theo dõi vị trí và khoảng cách của đối tượng.

Đề xuất: