Tartalomjegyzék:

Távolságmérő készítése lézer és kamera használatával: 6 lépés
Távolságmérő készítése lézer és kamera használatával: 6 lépés

Videó: Távolságmérő készítése lézer és kamera használatával: 6 lépés

Videó: Távolságmérő készítése lézer és kamera használatával: 6 lépés
Videó: REVAN - THE COMPLETE STORY 2024, Június
Anonim
Távolságmérő készítése lézer és kamera segítségével
Távolságmérő készítése lézer és kamera segítségével

Jelenleg tervezek néhány belső munkát jövő tavaszra, de mivel most szereztem egy régi házat, nincs háztervem. Elkezdtem mérni a faltól a falig terjedő távolságokat vonalzóval, de lassú és hibalehetőséget mutat. Arra gondoltam, hogy veszek egy távolságmérőt, hogy megkönnyítsem a folyamatot, de aztán találtam egy régi cikket a saját távolságmérő építéséről lézer és kamera segítségével. Mint kiderült, ezek a komponensek a műhelyemben vannak.

A projekt ezen a cikken alapul:

Az egyetlen különbség az, hogy a távolságmérőt Raspberry Pi Zero W, LCD és Raspberry Pi Camera modul segítségével fogom elkészíteni. OpenCV -t fogok használni a lézer követésére is.

Feltételezem, hogy technikailag jártas vagy, és kényelmesen használod a Python -t és a parancssort. Ebben a projektben a Pi -t fej nélküli módban használom.

Kezdjük!

1. lépés: Az anyagok listája

Ehhez a projekthez szüksége lesz:

  • egy olcsó 6 mm -es 5 mW -os lézer
  • 220 Ω -os ellenállás
  • 2N2222A tranzisztor vagy valami ezzel egyenértékű
  • a Raspberry Pi Zero W
  • egy Raspberry Pi kamera v2
  • Nokia 5110 LCD kijelző vagy azzal egyenértékű
  • néhány áthidaló vezeték és egy kis kenyérsütő

A 3D -s nyomtatóm segítségével kinyomtattam egy jig -et, ami segített a kísérletek során. Azt is tervezem, hogy a 3D nyomtatót felhasználva egy teljes házat építek a távolságmérőhöz. Teljesen meg tudod csinálni anélkül.

2. lépés: Lézer és fényképezőgép készítése

Lézer és fényképezőgép kiépítése
Lézer és fényképezőgép kiépítése
Lézer és fényképezőgép kiépítése
Lézer és fényképezőgép kiépítése
Lézer és fényképezőgép kiépítése
Lézer és fényképezőgép kiépítése

A rendszer rögzített távolságot vesz fel a kamera lencséje és a lézerkimenet között. A tesztek megkönnyítése érdekében kinyomtattam egy szúrógépet, amelybe felszerelhetem a kamerát, a lézert és egy kis meghajtó áramkört a lézerhez.

A kameramodul méreteit használtam fel a kamera rögzítésére. Főleg digitális féknyerget és precíziós vonalzót használtam a mérésekhez. A lézerhez készítettem egy 6 mm -es lyukat egy kis megerősítéssel, hogy a lézer ne mozduljon el. Próbáltam elegendő helyet tartani ahhoz, hogy egy kis kenyérsütőt rögzítsek a gép hátulján.

A felépítéshez Tinkercad-ot használtam, a modell itt található:

3,75 cm távolság van a lézerlencse és a kamera lencséje középpontja között.

3. lépés: A lézer és az LCD vezérlése

A lézer és az LCD vezetése
A lézer és az LCD vezetése
A lézer és az LCD vezetése
A lézer és az LCD vezetése

Követtem ezt az oktatóanyagot: https://www.algissalys.com/how-to/nokia-5110-lcd-on-raspberry-pi, hogy megvezessem az LCD kijelzőt a Raspberry Pi Zero segítségével. A /boot/config.txt fájl szerkesztése helyett engedélyezheti az SPI felületet a sudo raspi-config parancssorból.

A Raspberry Pi Zero -t fejetlen módban használom, a legújabb, a Raspbian Stretch használatával. Nem foglalkozom a telepítéssel ebben az utasításban, de követheti ezt az útmutatót: https://medium.com/@danidudas/install-raspbian-jessie-lite-and-setup-wi-fi-without-access-to- parancssori vagy a hálózat használatával-97f065af722e

Ahhoz, hogy fényes lézerpontot kapjak, a Pi 5V -os sínjét használom. Ehhez tranzisztort (2N2222a vagy azzal egyenértékű) fogok használni a lézer meghajtásához a GPIO segítségével. A 220 Ω -os ellenállás a tranzisztor alján elegendő áramot enged át a lézeren. Az RPi. GPIO -t használom a Pi GPIO manipulálásához. A tranzisztor bázisát a GPIO22 érintkezőhöz (a 15. érintkezőt), az emittert a földhöz, a kollektorot a lézerdiódához kötöttem.

Ne felejtse el engedélyezni a kamera felületét a sudo raspi-config használatával a parancssoron keresztül.

Ezt a kódot használhatja a beállítás tesztelésére:

Ha minden jól ment, legyen egy dot-j.webp

A kódban beállítjuk a kamerát és a GPIO -t, majd engedélyezzük a lézert, rögzítjük a képet és letiltjuk a lézert. Mivel a Pi -t fej nélküli módban futtatom, a Pi -ről a számítógépre kell másolnom a képeket, mielőtt megmutatnám őket.

Ezen a ponton a hardvert konfigurálni kell.

4. lépés: A lézer észlelése OpenCV használatával

Először telepítenünk kell az OpenCV -t a Pi -re. Alapvetően három módja van erre. Telepítheti a régi csomagolt verziót az apt segítségével. Összeállíthatja a kívánt verziót, de ebben az esetben a telepítési idő akár 15 óra is lehet, és a legtöbb a tényleges fordításhoz. Vagy előnyben részesített megközelítésem szerint használhat egy előre összeállított verziót a Pi Zero számára, amelyet egy harmadik fél biztosít.

Mivel egyszerűbb és gyorsabb, harmadik féltől származó csomagot használtam. A telepítési lépéseket ebben a cikkben találja: https://yoursunny.com/t/2018/install-OpenCV3-PiZero/ Sok más forrást is kipróbáltam, de a csomagjaik nem voltak naprakészek.

A lézermutató követéséhez frissítettem a kódot a https://github.com/bradmontgomery/python-laser-tracker webhelyen, hogy a Pi kamera modult használjam USB-eszköz helyett. Közvetlenül használhatja a kódot, ha nem rendelkezik Pi kamera modullal, és USB kamerát szeretne használni.

A teljes kódot itt találja:

A kód futtatásához telepítenie kell a Python csomagokat: párna és picamera (sudo pip3 install pillow picamera).

5. lépés: A távolságmérő kalibrálása

A távolságmérő kalibrálása
A távolságmérő kalibrálása
A távolságmérő kalibrálása
A távolságmérő kalibrálása
A távolságmérő kalibrálása
A távolságmérő kalibrálása

Az eredeti cikkben a szerző kalibrálási eljárást tervezett, hogy megkapja a szükséges paramétereket az y koordináták tényleges távolságra való átalakításához. A nappalim asztalát használtam a kalibráláshoz és egy régi kraftdarabot. Körülbelül 10 cm -enként táblázatba jegyeztem az x és y koordinátákat: https://docs.google.com/spreadsheets/d/1OTGu09GLAt… Annak érdekében, hogy minden megfelelően működjön, minden lépésnél ellenőriztem a rögzített képeket, hogy a lézert helyesen követték. Ha zöld lézert használ, vagy ha a lézer nyomkövetése nem megfelelő, akkor ennek megfelelően kell módosítania a program színárnyalatát, telítettségét és értékküszöbét.

A mérési fázis befejezése után ideje kiszámítani a paramétereket. A szerzőhöz hasonlóan én is lineáris regressziót használtam; valójában a Google Táblázat végezte helyettem a munkát. Ezután újra felhasználtam ezeket a paramétereket, hogy kiszámítsam a becsült távolságot, és összehasonlítsam a tényleges távolsággal.

Itt az ideje, hogy beadja a paramétereket a távolságmérő programba a távolságok mérésére.

6. lépés: A távolságok mérése

Távolságok mérése
Távolságok mérése

A kódban: https://gist.github.com/kevinlebrun/e767a46855e5fd501d820e1c5fcc527c Frissítettem a HEIGHT, GAIN és OFFSET változókat a kalibrációs méréseknek megfelelően. Az eredeti cikkben szereplő távolságképletet használtam a távolság becsléséhez, és kinyomtattam a távolságot az LCD kijelző segítségével.

A kód először beállítja a kamerát és a GPIO -t, majd meg akarjuk világítani az LCD háttérvilágítását, hogy jobban lássuk a méréseket. Az LCD bemenet csatlakoztatva van a GPIO14 -hez. Körülbelül 5 másodpercenként:

  1. engedélyezze a lézer diódát
  2. rögzítse a képet a memóriában
  3. kapcsolja ki a lézer diódát
  4. nyomon követheti a lézert a HSV tartomány szűrőivel
  5. írja be a kapott képet a lemezre hibakeresés céljából
  6. számítsa ki a távolságot az y koordináta alapján
  7. írja be a távolságot az LCD kijelzőre.

Az események ellenére az intézkedések rendkívül pontosak és elég pontosak az én esetemben, sok lehetőség van a fejlesztésre. Például a lézerpont nagyon rossz minőségű, és a lézervonal nincs igazán középre állítva. Jobb minőségű lézerrel a kalibrálási lépések pontosabbak lesznek. Még a kamera sincs igazán jól elhelyezve a jig -omban, az aljára dől.

Azt is megnövelhetem a távolságmérő felbontását, ha a fényképezőgépet 90 ° -kal elforgatom a teljes gombbal, és növelhetem a felbontást a kamera által támogatott maximális értékig. A jelenlegi megvalósítással 0 és 384 képpont közötti tartományra vagyunk korlátozva, a felső határt 1640 -re növelhetjük, ami a jelenlegi felbontás négyszerese. A távolság még pontosabb lesz.

Követésként dolgoznom kell a fent említett pontossági fejlesztéseken, és házat kell építenem a távolságmérőhöz. A burkolatnak pontos mélységűnek kell lennie, hogy megkönnyítse a falról falra történő mérést.

Összességében a jelenlegi rendszer elegendő számomra, és megtakaríthat néhány dollárt a ház tervezésével!

Ajánlott: