Spisu treści:

Tworzenie dalmierza za pomocą lasera i aparatu: 6 kroków
Tworzenie dalmierza za pomocą lasera i aparatu: 6 kroków

Wideo: Tworzenie dalmierza za pomocą lasera i aparatu: 6 kroków

Wideo: Tworzenie dalmierza za pomocą lasera i aparatu: 6 kroków
Wideo: Ups. 2024, Czerwiec
Anonim
Tworzenie dalmierza za pomocą lasera i aparatu
Tworzenie dalmierza za pomocą lasera i aparatu

Obecnie planuję prace wykończeniowe na wiosnę przyszłego roku, ale ponieważ właśnie nabyłem stary dom, nie mam żadnego planu. Zacząłem mierzyć odległości od ściany do ściany za pomocą linijki, ale jest to powolne i podatne na błędy. Myślałem o zakupie dalmierza, aby ułatwić ten proces, ale potem znalazłem stary artykuł o budowaniu własnego dalmierza za pomocą lasera i aparatu. Jak się okazuje, te podzespoły mam w swoim warsztacie.

Projekt oparty jest na tym artykule:

Jedyną różnicą jest to, że będę budować dalmierz za pomocą Raspberry Pi Zero W, LCD i modułu Raspberry Pi Camera. Użyję również OpenCV do śledzenia lasera.

Przypuszczam, że jesteś obeznany w technologii i swobodnie korzystasz z Pythona i wiersza poleceń. W tym projekcie używam Pi w trybie bezgłowym.

Zaczynajmy!

Krok 1: Lista materiałów

Do tego projektu będziesz potrzebować:

  • tani laser 6mm 5mW
  • rezystor 220 Ω
  • tranzystor 2N2222A lub coś równoważnego
  • Raspberry Pi Zero W
  • kamera Raspberry Pi v2
  • wyświetlacz LCD Nokia 5110 lub odpowiednik
  • kilka przewodów połączeniowych i mała płytka stykowa

Użyłem drukarki 3d do wydrukowania przyrządu, który pomógł mi podczas eksperymentów. Planuję też wykorzystać drukarkę 3d do zbudowania kompletnej obudowy dalmierza. Możesz się całkowicie obejść.

Krok 2: Budowa przyrządu laserowego i aparatu fotograficznego

Budowa przyrządu laserowego i aparatu fotograficznego
Budowa przyrządu laserowego i aparatu fotograficznego
Budowa przyrządu laserowego i aparatu fotograficznego
Budowa przyrządu laserowego i aparatu fotograficznego
Budowa przyrządu laserowego i aparatu fotograficznego
Budowa przyrządu laserowego i aparatu fotograficznego

System zakłada stałą odległość między obiektywem kamery a wyjściem lasera. Aby ułatwić testy, wydrukowałem przyrząd, w którym mogę zamontować kamerę, laser i mały obwód napędowy lasera.

Wykorzystałem wymiary modułu kamery do zbudowania mocowania do kamery. Do pomiarów używałem głównie suwmiarki cyfrowej i precyzyjnej linijki. W przypadku lasera stworzyłem otwór o średnicy 6 mm z niewielkim wzmocnieniem, aby zapewnić, że laser się nie poruszy. Starałem się zachować wystarczająco dużo miejsca, aby zamocować małą płytkę stykową z tyłu przyrządu.

Do budowy użyłem Tinkercada, model można znaleźć tutaj:

Odległość między środkiem soczewki lasera a środkiem soczewki aparatu wynosi 3,75 cm.

Krok 3: Prowadzenie lasera i wyświetlacza LCD

Sterowanie laserem i wyświetlaczem LCD
Sterowanie laserem i wyświetlaczem LCD
Sterowanie laserem i wyświetlaczem LCD
Sterowanie laserem i wyświetlaczem LCD

Śledziłem ten samouczek https://www.algissalys.com/how-to/nokia-5110-lcd-on-raspberry-pi, aby sterować wyświetlaczem LCD za pomocą Raspberry Pi Zero. Zamiast edytować plik /boot/config.txt, możesz włączyć interfejs SPI za pomocą sudo raspi-config za pomocą wiersza poleceń.

Używam Raspberry Pi Zero w trybie bezgłowym, korzystając z najnowszego Raspbian Stretch. Nie omówię instalacji w tym Instructable, ale możesz postępować zgodnie z tym przewodnikiem: https://medium.com/@danidudas/install-raspbian-jessie-lite-and-setup-wi-fi-without-access-to- linia-polecenia-lub-korzystanie-sieci-97f065af722e

Aby mieć jasną kropkę laserową, używam szyny 5V Pi. W tym celu będę używał tranzystora (2N2222a lub odpowiednika) do napędzania lasera za pomocą GPIO. Rezystor 220 Ω na podstawie tranzystora przepuszcza wystarczający prąd przez laser. Używam RPi. GPIO do manipulowania Pi GPIO. Podłączyłem bazę tranzystora do pinu GPIO22 (15. pin), emiter do masy, a kolektor do diody laserowej.

Nie zapomnij włączyć interfejsu kamery za pomocą sudo raspi-config z wiersza poleceń.

Możesz użyć tego kodu, aby przetestować swoją konfigurację:

Jeśli wszystko poszło dobrze, powinieneś mieć plik dot.jpg, w którym zobaczysz tło i kropkę laserową.

W kodzie konfigurujemy kamerę i GPIO, następnie włączamy laser, przechwytujemy obraz i wyłączamy laser. Ponieważ uruchamiam Pi w trybie bezgłowym, muszę skopiować obrazy z mojego Pi na komputer przed ich wyświetleniem.

W tym momencie twój sprzęt powinien zostać skonfigurowany.

Krok 4: Wykrywanie lasera za pomocą OpenCV

Najpierw musimy zainstalować OpenCV na Pi. Zasadniczo masz na to trzy sposoby. Możesz zainstalować starą wersję spakowaną za pomocą apt. Możesz skompilować wybraną wersję, ale w tym przypadku czas instalacji może wynieść do 15 godzin, z czego większość na samą kompilację. Lub, moim preferowanym podejściem, możesz użyć wstępnie skompilowanej wersji Pi Zero dostarczonej przez stronę trzecią.

Ponieważ jest prostszy i szybszy, skorzystałem z pakietu innej firmy. Kroki instalacji znajdziesz w tym artykule: https://yoursunny.com/t/2018/install-OpenCV3-PiZero/ Próbowałem wielu innych źródeł, ale ich pakiety nie były aktualne.

Aby śledzić wskaźnik laserowy, zaktualizowałem kod z https://github.com/bradmontgomery/python-laser-tracker, aby używać modułu kamery Pi zamiast urządzenia USB. Możesz bezpośrednio użyć kodu, jeśli nie masz modułu kamery Pi i chcesz użyć kamery USB.

Pełny kod można znaleźć tutaj:

Aby uruchomić ten kod, musisz zainstalować pakiety Pythona: pillow i picamera (sudo pip3 install pillow picamera).

Krok 5: Kalibracja dalmierza

Kalibracja dalmierza
Kalibracja dalmierza
Kalibracja dalmierza
Kalibracja dalmierza
Kalibracja dalmierza
Kalibracja dalmierza

W oryginalnym artykule autor zaprojektował procedurę kalibracji w celu uzyskania wymaganych parametrów do przekształcenia współrzędnych y na rzeczywistą odległość. Do kalibracji użyłem mojego stołu w salonie i starego krafta. Co około 10 cm zapisywałem współrzędne x i y w arkuszu kalkulacyjnym: https://docs.google.com/spreadsheets/d/1OTGu09GLAt… Aby upewnić się, że wszystko działa poprawnie, na każdym kroku sprawdzałem przechwycone obrazy, aby sprawdzić, czy laser był prawidłowo śledzony. Jeśli używasz zielonego lasera lub jeśli laser nie jest prawidłowo śledzony, musisz odpowiednio dostosować odcień, nasycenie i próg wartości programu.

Po zakończeniu fazy pomiaru nadszedł czas na obliczenie parametrów. Podobnie jak autor zastosowałem regresję liniową; właściwie arkusz kalkulacyjny Google wykonał za mnie pracę. Następnie ponownie wykorzystałem te parametry, aby obliczyć szacunkową odległość i porównać ją z rzeczywistą odległością.

Teraz nadszedł czas, aby wprowadzić parametry do programu dalmierza w celu pomiaru odległości.

Krok 6: Pomiar odległości

Pomiar odległości
Pomiar odległości

W kodzie: https://gist.github.com/kevinlebrun/e767a46855e5fd501d820e1c5fcc527c zaktualizowałem zmienne HEIGHT, GAIN i OFFSET zgodnie z pomiarami kalibracyjnymi. Użyłem wzoru na odległość w oryginalnym artykule, aby oszacować odległość i wydrukowałem odległość za pomocą wyświetlacza LCD.

Kod najpierw skonfiguruje kamerę i GPIO, następnie chcemy podświetlić podświetlenie LCD, aby lepiej widzieć pomiary. Wejście LCD jest podłączone do GPIO14. Co około 5 sekund:

  1. włącz diodę laserową;
  2. uchwycić obraz w pamięci
  3. wyłącz diodę laserową;
  4. śledzenie lasera za pomocą filtrów z zakresu HSV
  5. zapisz wynikowy obraz na dysku w celu debugowania
  6. obliczyć odległość na podstawie współrzędnej y
  7. napisz odległość na wyświetlaczu LCD.

Mimo to, miary są bardzo precyzyjne i wystarczająco dokładne dla mojego przypadku użycia, jest dużo miejsca na ulepszenia. Na przykład kropka lasera jest bardzo słabej jakości, a linia lasera nie jest naprawdę wyśrodkowana. Dzięki laserowi o lepszej jakości etapy kalibracji będą bardziej precyzyjne. Nawet kamera nie jest zbyt dobrze ustawiona w moim przyrządzie, przechyla się w dół.

Rozdzielczość dalmierza mogę też zwiększyć obracając kamerę o 90º korzystając z pełnego zakresu i zwiększyć rozdzielczość do maksymalnej obsługiwanej przez kamerę. Przy obecnej implementacji jesteśmy ograniczeni do zakresu od 0 do 384 pikseli, możemy zwiększyć górny limit do 1640, czyli 4-krotności obecnej rozdzielczości. Odległość będzie jeszcze dokładniejsza.

Jako kontynuację będę musiał popracować nad ulepszeniami precyzji, o których wspomniałem powyżej i zbudować obudowę dla dalmierza. Obudowa będzie musiała mieć dokładną głębokość, aby ułatwić pomiary od ściany do ściany.

W sumie obecny system jest dla mnie wystarczający i zaoszczędzi mi trochę dolców przy planowaniu domu!

Zalecana: