Mục lục:
- Bước 1: Danh sách vật liệu
- Bước 2: Chế tạo Đồ gá máy ảnh và Laser
- Bước 3: Điều khiển Laser và màn hình LCD
- Bước 4: Phát hiện tia laser bằng OpenCV
- Bước 5: Hiệu chỉnh Range Finder
- Bước 6: Đo khoảng cách
Video: Chế tạo máy đo khoảng cách bằng tia laser và máy ảnh: 6 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:34
Tôi hiện đang lên kế hoạch cho một số công việc nội thất cho mùa xuân tới nhưng vì tôi vừa mua lại một ngôi nhà cũ nên tôi không có bất kỳ kế hoạch xây dựng nhà nào. Tôi bắt đầu đo khoảng cách từ tường đến tường bằng thước nhưng rất chậm và dễ bị lỗi. Tôi đã nghĩ đến việc mua một máy đo khoảng cách để giảm bớt quy trình nhưng sau đó tôi tìm thấy một bài báo cũ về việc chế tạo máy đo khoảng cách của riêng nó bằng cách sử dụng tia laser và máy ảnh. Hóa ra, tôi có những thành phần đó trong xưởng của mình.
Dự án dựa trên bài viết này:
Sự khác biệt duy nhất là tôi sẽ xây dựng máy đo khoảng cách bằng Raspberry Pi Zero W, màn hình LCD và mô-đun Máy ảnh Raspberry Pi. Tôi cũng sẽ sử dụng OpenCV để theo dõi tia laser.
Tôi sẽ cho rằng bạn là một người hiểu biết về công nghệ và bạn cảm thấy thoải mái khi sử dụng Python và dòng lệnh. Trong dự án này, tôi đang sử dụng Pi ở chế độ không đầu.
Hãy bắt đầu!
Bước 1: Danh sách vật liệu
Đối với dự án này, bạn sẽ cần:
- một tia laser 5mm 5mW giá rẻ
- một điện trở 220 Ω
- một bóng bán dẫn 2N2222A hoặc thứ gì đó tương đương
- một Raspberry Pi Zero W
- một Máy ảnh Raspberry Pi v2
- màn hình LCD Nokia 5110 hoặc tương đương
- một số dây jumper và một breadboard nhỏ
Tôi đã sử dụng máy in 3d của mình để in một đồ gá đã giúp tôi trong quá trình thí nghiệm. Tôi cũng dự định sử dụng máy in 3d để xây dựng một vỏ bọc hoàn chỉnh cho công cụ tìm phạm vi. Bạn hoàn toàn có thể làm mà không cần.
Bước 2: Chế tạo Đồ gá máy ảnh và Laser
Hệ thống giả định một khoảng cách cố định giữa ống kính máy ảnh và đầu ra laser. Để dễ kiểm tra, tôi đã in một đồ gá để tôi có thể lắp máy ảnh, tia laser và một mạch dẫn động nhỏ cho tia laser.
Tôi đã sử dụng kích thước mô-đun máy ảnh để xây dựng giá đỡ cho máy ảnh. Tôi chủ yếu sử dụng thước cặp kỹ thuật số và thước đo độ chính xác để thực hiện các phép đo. Đối với tia laser, tôi tạo một lỗ 6mm với một chút gia cố để đảm bảo tia laser không di chuyển. Tôi cố gắng giữ đủ chỗ để có một bảng bánh mì nhỏ cố định ở phía sau đồ gá.
Tôi đã sử dụng Tinkercad cho bản dựng, bạn có thể tìm thấy mô hình tại đây:
Có khoảng cách 3,75 cm giữa tâm của thấu kính laze và tâm của thấu kính máy ảnh.
Bước 3: Điều khiển Laser và màn hình LCD
Tôi đã làm theo hướng dẫn này https://www.algissalys.com/how-to/nokia-5110-lcd-on-raspberry-pi để điều khiển màn hình LCD với Raspberry Pi Zero. Thay vì chỉnh sửa tệp /boot/config.txt, bạn có thể bật giao diện SPI bằng sudo raspi-config thông qua dòng lệnh.
Tôi đang sử dụng Raspberry Pi Zero ở chế độ không sử dụng phiên bản mới nhất, tại thời điểm hiện tại, Raspbian Stretch. Tôi sẽ không đề cập đến việc cài đặt trong Hướng dẫn này nhưng bạn có thể làm theo hướng dẫn này: https://medium.com/@danidudas/install-raspbian-jessie-lite-and-setup-wi-fi-without-access-to- command-line-or-using-the-network-97f065af722e
Để có một chấm laser sáng, tôi đang sử dụng đường ray 5V của Pi. Đối với điều đó, tôi sẽ sử dụng một bóng bán dẫn (2N2222a hoặc tương đương) để điều khiển tia laser bằng GPIO. Một điện trở 220 Ω ở chân của bóng bán dẫn cho phép đủ dòng điện qua tia laser. Tôi đang sử dụng RPi. GPIO để thao tác Pi GPIO. Tôi đã kết nối đế của bóng bán dẫn với chân GPIO22 (chân thứ 15), bộ phát với mặt đất và bộ thu với diode laser.
Đừng quên bật giao diện camera bằng sudo raspi-config thông qua dòng lệnh.
Bạn có thể sử dụng mã này để kiểm tra thiết lập của mình:
Nếu mọi thứ suôn sẻ, bạn nên có một tệp dot-j.webp
Trong đoạn mã, chúng tôi thiết lập máy ảnh và GPIO, sau đó chúng tôi kích hoạt laser, chúng tôi chụp ảnh và tắt laser. Vì tôi đang chạy Pi ở chế độ không đầu, tôi cần sao chép hình ảnh từ Pi vào máy tính của mình trước khi hiển thị chúng.
Tại thời điểm này, phần cứng của bạn sẽ được cấu hình.
Bước 4: Phát hiện tia laser bằng OpenCV
Đầu tiên, chúng ta cần cài đặt OpenCV trên Pi. Về cơ bản, bạn có ba cách để làm điều đó. Bạn có thể cài đặt phiên bản đóng gói cũ với apt. Bạn có thể biên dịch phiên bản bạn muốn nhưng trong trường hợp này, thời gian cài đặt có thể lên đến 15 giờ và hầu hết là cho quá trình biên dịch thực tế. Hoặc, cách tiếp cận ưa thích của tôi, bạn có thể sử dụng phiên bản được biên dịch trước cho Pi Zero do bên thứ ba cung cấp.
Bởi vì nó đơn giản hơn và nhanh hơn, tôi đã sử dụng gói của bên thứ ba. Bạn có thể tìm thấy các bước cài đặt trong bài viết này: https://yoursunny.com/t/2018/install-OpenCV3-PiZero/ Tôi đã thử nhiều nguồn khác nhưng gói của họ không được cập nhật.
Để theo dõi con trỏ laser, tôi đã cập nhật mã từ https://github.com/bradmontgomery/python-laser-tracker để sử dụng mô-đun máy ảnh Pi thay vì thiết bị USB. Bạn có thể trực tiếp sử dụng mã nếu bạn không có mô-đun máy ảnh Pi và muốn sử dụng máy ảnh USB.
Bạn có thể tìm thấy mã hoàn chỉnh tại đây:
Để chạy mã này, bạn sẽ cần cài đặt các gói Python: gối và picamera (sudo pip3 cài đặt gối picamera).
Bước 5: Hiệu chỉnh Range Finder
Trong bài báo gốc, tác giả đã thiết kế một quy trình hiệu chuẩn để có được các tham số cần thiết để biến đổi tọa độ y thành một khoảng cách thực tế. Tôi đã sử dụng bàn phòng khách của mình để hiệu chuẩn và một mảnh vải kraft cũ. Cứ sau khoảng 10 cm, tôi ghi lại tọa độ x và y vào một bảng tính: https://docs.google.com/spreadsheets/d/1OTGu09GLAt… Để đảm bảo mọi thứ hoạt động chính xác, ở mỗi bước, tôi đều kiểm tra các hình ảnh đã chụp để xem có tia laser đã được theo dõi chính xác. Nếu bạn sử dụng tia laser màu xanh lá cây hoặc nếu tia laser của bạn không được theo dõi chính xác, bạn sẽ cần phải điều chỉnh ngưỡng sắc độ, độ bão hòa và giá trị của chương trình cho phù hợp.
Khi giai đoạn đo được thực hiện, đã đến lúc thực sự tính toán các thông số. Giống như tác giả, tôi đã sử dụng một hồi quy tuyến tính; thực sự Google Spreadsheet đã thực hiện công việc cho tôi. Sau đó, tôi sử dụng lại các thông số đó để tính toán khoảng cách ước tính và kiểm tra nó với khoảng cách thực tế.
Bây giờ là lúc để đưa các thông số vào chương trình máy đo khoảng cách để đo khoảng cách.
Bước 6: Đo khoảng cách
Trong mã: https://gist.github.com/kevinlebrun/e767a46855e5fd501d820e1c5fcc527c, tôi đã cập nhật các biến HEIGHT, GAIN và OFFSET theo các phép đo hiệu chuẩn. Tôi đã sử dụng công thức khoảng cách trong bài viết gốc để ước tính khoảng cách và tôi đã in khoảng cách bằng màn hình LCD.
Đầu tiên, đoạn mã sẽ thiết lập máy ảnh và GPIO, sau đó chúng tôi muốn chiếu sáng đèn nền LCD để xem rõ hơn các phép đo. Đầu vào LCD được cắm vào GPIO14. Cứ sau 5 giây hoặc lâu hơn, chúng tôi sẽ:
- kích hoạt diode laser
- ghi lại hình ảnh trong bộ nhớ
- vô hiệu hóa diode laser
- theo dõi tia laser bằng bộ lọc phạm vi HSV
- ghi hình ảnh kết quả vào đĩa cho mục đích gỡ lỗi
- tính toán khoảng cách dựa trên tọa độ y
- ghi khoảng cách trên màn hình LCD.
Mặc dù vậy, các phép đo có độ chính xác cao và đủ chính xác cho trường hợp sử dụng của tôi, vẫn còn rất nhiều chỗ để cải tiến. Ví dụ, điểm laser có chất lượng rất kém và đường laser không thực sự chính giữa. Với tia laser có chất lượng tốt hơn, các bước hiệu chỉnh sẽ chính xác hơn. Ngay cả máy ảnh cũng không thực sự được định vị tốt trong đồ gá của tôi, nó nghiêng về phía dưới.
Tôi cũng có thể tăng độ phân giải của máy đo khoảng cách bằng cách xoay máy ảnh 90º bằng cách sử dụng toàn bộ và tăng độ phân giải lên mức tối đa mà máy ảnh hỗ trợ. Với việc triển khai hiện tại, chúng tôi bị giới hạn trong phạm vi 0 đến 384 pixel, chúng tôi có thể tăng giới hạn trên lên 1640, gấp 4 lần độ phân giải hiện tại. Khoảng cách sẽ chính xác hơn.
Khi tiếp theo, tôi sẽ cần làm việc trên các cải tiến về độ chính xác mà tôi đã đề cập ở trên và xây dựng một vỏ bọc cho máy đo khoảng cách. Vỏ bọc sẽ cần có độ sâu chính xác để dễ dàng đo từ tường đến tường.
Tất cả trong tất cả các hệ thống hiện tại là đủ cho tôi và sẽ giúp tôi tiết kiệm một số đô la khi lập kế hoạch ngôi nhà của tôi!
Đề xuất:
Đo khoảng cách khoảng cách với cảm biến cử chỉ APDS9960: 6 bước
Đo khoảng cách bằng cảm biến cử chỉ APDS9960: Trong hướng dẫn này, chúng ta sẽ học cách đo khoảng cách bằng cảm biến cử chỉ APDS9960, arduino và Visuino. Hãy xem video
Hướng dẫn: Cách xây dựng mô-đun cảm biến đo khoảng cách bằng tia laser VL53L0X bằng cách sử dụng Arduino UNO: 3 bước
Hướng dẫn: Cách xây dựng Mô-đun cảm biến đo khoảng cách bằng tia laser VL53L0X bằng cách sử dụng Arduino UNO: Mô tả: Hướng dẫn này sẽ hiển thị chi tiết cho tất cả các bạn về cách xây dựng máy dò khoảng cách bằng cách sử dụng Mô-đun cảm biến đo khoảng cách bằng tia laser VL53L0X và Arduino UNO và nó sẽ chạy giống như bạn muốn. Làm theo hướng dẫn và bạn sẽ hiểu gia sư này
Phơi nhiễm tia cực tím PCB bằng cách tái chế một máy quét cũ: 6 bước (có hình ảnh)
Phơi nhiễm tia cực tím PCB bằng cách tái chế một máy quét cũ: Xin chào, đây là cách tôi thực hiện việc tiếp xúc với tia UV PCB của mình bằng cách tái chế một máy quét cũ
Làm một chiếc vòng cổ bằng tia chớp bằng cách sử dụng vật liệu tái chế: 5 bước (có hình ảnh)
Làm một chiếc vòng cổ bằng tia chớp bằng cách sử dụng vật liệu tái chế: Xin chào tất cả, Khoảng một tháng trước, tôi đã mua một số đèn LED dải giá cả phải chăng từ Bangood.com. Bạn có thể thấy rằng dải đèn LED được sử dụng trong các thiết kế nội thất / ngoại thất của ngôi nhà / sân vườn, v.v. Tôi đã quyết định làm một chiếc vòng cổ để phát sáng khi
Hệ thống báo động bằng tia laser với pin sạc cho tia laser: 10 bước
Hệ thống báo động bằng tia laser có pin sạc cho tia laser: Xin chào mọi người … Tôi là Revhead, và đây là người hướng dẫn đầu tiên của tôi, vì vậy vui lòng cho tôi lời khuyên và chỉ ra những điểm cần cải thiện. Nguồn cảm hứng cho dự án này đến từ Kipkay, người đã đăng một phiên bản tương tự (BẢO VỆ NGÔI NHÀ CỦA BẠN BẰNG LASE