EDIT: Câu trả lời mà tôi tham chiếu ban đầu đã bị xóa, vì vậy tôi sẽ chỉnh sửa để kết hợp thông tin từ cả hai ...
Một cách tiếp cận phổ biến để tìm khoảng cách là sử dụng cảm biến hồng ngoại, ví dụ như phương pháp tìm kiếm ở đây ( https://www.sparkfun.com/products/8958 ). Về cơ bản, đây là đèn LED hồng ngoại và cảm biến hình ảnh 1 chiều kết hợp với một số DSP trên bo mạch. Cảm biến hình ảnh 1 chiều thu nhận ánh sáng phản xạ ở một góc phụ thuộc vào khoảng cách của vật thể đến cảm biến, như được hiển thị ở đây: AFAIK, cảm biến khoảng cách IR chỉ khả dụng với thông số điện áp tương tự, vì vậy bạn sẽ cần một khoảng trống Pin A / D trên vi điều khiển của bạn.
Một cách khác là cảm biến siêu âm. Có những lựa chọn thay thế rẻ hơn, nhưng một trong những học sinh của tôi đã thành công là: https://www.sparkfun.com/products/9495 .
Thiết bị đặc biệt này thuận tiện vì có 3 phương pháp đọc khác nhau. Bạn có thể sử dụng điện áp tương tự (mà bạn có thể số hóa bằng bộ chuyển đổi A / D trên vi điều khiển) hoặc đọc trực tiếp dữ liệu nối tiếp. Bạn cũng có thể cho nó xuất ra một PWM, có thể hữu ích nếu bạn đang lái một số động cơ servo trực tiếp (không chắc nó có thực sự tương thích với servo không).
Có một số ưu điểm và nhược điểm của việc sử dụng siêu âm so với hồng ngoại. Siêu âm mạnh hơn đối với các bề mặt khác nhau và chiều rộng chùm tia có thể thay đổi bằng cách chọn một cảm biến cụ thể (vì vậy bạn có thể nhận nó ở chướng ngại vật trong khu vực rộng hơn hoặc hẹp hơn). Mặt khác, việc có nhiều cảm biến có thể gây nhiễu, mặc dù có nhiều cách để khắc phục điều này. Ngoài ra, cảm biến siêu âm có xu hướng đắt hơn các cảm biến hồng ngoại được đề cập trước đây.
Ngoài ra, các cảm biến siêu âm Maxbotix có tính năng Jesus (xem kỹ trên PCB). Đây có thể là một lợi thế hoặc bất lợi tùy thuộc vào ứng dụng của bạn.