Sisukord:

Kaugusmõõtja tegemine laseriga ja kaameraga: 6 sammu
Kaugusmõõtja tegemine laseriga ja kaameraga: 6 sammu

Video: Kaugusmõõtja tegemine laseriga ja kaameraga: 6 sammu

Video: Kaugusmõõtja tegemine laseriga ja kaameraga: 6 sammu
Video: Cat S61 ülevaade - Laseri lisamine teeb telefoni paremaks? 2024, November
Anonim
Kaugusmõõtja tegemine laseriga ja kaameraga
Kaugusmõõtja tegemine laseriga ja kaameraga

Plaanin järgmiseks kevadeks sisetöid, kuid kuna ma just omandasin vana maja, pole mul ühtegi majaplaani. Hakkasin joonlaua abil mõõtma kaugust seinast seina, kuid see on aeglane ja vigade suhtes altid. Mõtlesin protsessi hõlbustamiseks osta kaugusmõõtja, kuid siis leidsin vana artikli oma kaugusmõõturi ehitamise kohta, kasutades laserit ja kaamerat. Nagu selgub, on mul need komponendid minu töökojas olemas.

Projekt põhineb sellel artiklil:

Ainus erinevus on see, et ehitan kaugusmõõtja Raspberry Pi Zero W, LCD ja Raspberry Pi kaamera mooduli abil. Laseri jälgimiseks kasutan ka OpenCV -d.

Ma eeldan, et olete tehnikateadlane ja teil on Pythoni ja käsurea kasutamine mugav. Selles projektis kasutan Pi -d peata režiimis.

Alustame!

Samm: materjalide loend

Selle projekti jaoks vajate:

  • odav 6mm 5mW laser
  • 220 Ω takisti
  • 2N2222A transistor või midagi samaväärset
  • a Raspberry Pi Zero W
  • Raspberry Pi kaamera v2
  • Nokia 5110 LCD -ekraan või samaväärne
  • mõned hüppajajuhtmed ja väike leivalaud

Kasutasin oma 3D -printerit jigi printimiseks, mis aitas mind katsetuste ajal. Kavatsen kasutada 3D -printerit ka kaugusmõõtja jaoks täieliku korpuse ehitamiseks. Saate täiesti ilma hakkama.

2. samm: ehitage laser- ja kaamerakang

Laseri- ja kaameratehnika ehitamine
Laseri- ja kaameratehnika ehitamine
Laseri- ja kaameratehnika ehitamine
Laseri- ja kaameratehnika ehitamine
Laseri- ja kaameratehnika ehitamine
Laseri- ja kaameratehnika ehitamine

Süsteem eeldab kaamera objektiivi ja laserväljundi vahel kindlat kaugust. Katsete hõlbustamiseks printisin jigi, millesse saan paigaldada kaamera, laseri ja laseri jaoks väikese juhtimisahela.

Kasutasin kaamera kinnituse ehitamiseks kaameramooduli mõõtmeid. Mõõtmiste tegemiseks kasutasin peamiselt digitaalset nihikut ja täppisjoonlauda. Laseri jaoks lõin 6 mm augu, millel oli natuke tugevdust, et laser ei liiguks. Püüdsin hoida piisavalt ruumi, et jig tagaküljel oleks väike leivalaud kinnitatud.

Kasutasin ehitamiseks Tinkercadi, mudeli leiate siit:

Laserläätse ja kaamera objektiivi keskosa vahel on 3,75 cm kaugus.

3. samm: laseri ja vedelkristallekraani juhtimine

Laseri ja LCD juhtimine
Laseri ja LCD juhtimine
Laseri ja LCD juhtimine
Laseri ja LCD juhtimine

Järgisin seda õpetust https://www.algissalys.com/how-to/nokia-5110-lcd-on-raspberry-pi, et juhtida LCD-ekraani Raspberry Pi Zero abil. Faili /boot/config.txt redigeerimise asemel saate SPI liidese lubada käsurealt sudo raspi-config abil.

Kasutan Raspberry Pi Zero'i peata režiimis, kasutades uusimat Raspbian Stretchi. Ma ei hõlma selle juhendi installimist, kuid saate seda juhendit järgida: https://medium.com/@danidudas/install-raspbian-jessie-lite-and-setup-wi-fi-without-access-to- käsurealt või võrku kasutades 97f065af722e

Ereda laserpunkti saamiseks kasutan Pi 5V rööpa. Selleks kasutan laserit GPIO abil juhtimiseks transistorit (2N2222a või samaväärne). 220 Ω takisti transistori aluses võimaldab laserist piisavalt voolu. Kasutan Pi GPIO manipuleerimiseks RPi. GPIO -d. Ühendasin transistori aluse GPIO22 tihvtiga (15. tihvt), emitteri maapinnaga ja kollektori laserdioodiga.

Ärge unustage lubada kaamera liidest, kasutades käsurealt sudo raspi-config.

Selle koodi abil saate oma seadistusi testida:

Kui kõik läks hästi, peaks teil olema fail dot.jpg, milles näete tausta ja laserpunkti.

Koodis seadistame kaamera ja GPIO, seejärel lubame laseri, jäädvustame pildi ja lülitame laser välja. Kuna ma kasutan Pi -d peata režiimis, pean enne nende kuvamist pildid oma Pi -st arvutisse kopeerima.

Sel hetkel peaks teie riistvara olema konfigureeritud.

Samm 4: Laseri tuvastamine OpenCV abil

Esiteks peame installima OpenCV Pi -le. Teil on põhimõtteliselt kolm võimalust seda teha. Võite installida vana pakitud versiooni apt. Saate koostada soovitud versiooni, kuid sel juhul võib installimise aeg kesta kuni 15 tundi ja enamiku sellest tegeliku kompileerimise jaoks. Või minu eelistatud lähenemisviis, võite kasutada Pi Zero jaoks eelkompileeritud versiooni, mille pakub kolmas osapool.

Kuna see on lihtsam ja kiirem, kasutasin kolmanda osapoole paketti. Paigaldamisetapid leiate sellest artiklist: https://yoursunny.com/t/2018/install-OpenCV3-PiZero/ Proovisin paljusid teisi allikaid, kuid nende paketid ei olnud ajakohased.

Laserkursori jälgimiseks uuendasin koodi saidilt https://github.com/bradmontgomery/python-laser-tracker, et kasutada USB-seadme asemel Pi-kaamera moodulit. Saate koodi otse kasutada, kui teil pole Pi -kaamera moodulit ja soovite kasutada USB -kaamerat.

Täieliku koodi leiate siit:

Selle koodi käivitamiseks peate installima Pythoni paketid: padi ja picamera (sudo pip3 install padja picamera).

Samm 5: Vahemikuotsija kalibreerimine

Vahemikuotsija kalibreerimine
Vahemikuotsija kalibreerimine
Vahemikuotsija kalibreerimine
Vahemikuotsija kalibreerimine
Vahemikuotsija kalibreerimine
Vahemikuotsija kalibreerimine

Esialgses artiklis kavandas autor kalibreerimisprotseduuri, et saada vajalikud parameetrid y -koordinaatide tegelikuks kauguseks muutmiseks. Kalibreerimiseks kasutasin oma elutoa lauda ja vana kraftitükki. Umbes iga 10 cm järel märkisin arvutustabelisse x- ja y -koordinaadid: https://docs.google.com/spreadsheets/d/1OTGu09GLAt… Et kõik toimiks õigesti, kontrollisin igal sammul tehtud pilte, et näha, kas laserit jälgiti õigesti. Kui kasutate rohelist laserit või kui teie laserit ei jälgita õigesti, peate vastavalt kohandama programmi tooni, küllastust ja väärtuse läve.

Kui mõõtmisetapp on tehtud, on aeg parameetrid tegelikult välja arvutada. Nagu autorgi, kasutasin ma lineaarset regressiooni; tegelikult tegi Google'i arvutustabel selle töö minu eest ära. Seejärel kasutasin neid parameetreid hinnangulise kauguse arvutamiseks ja tegeliku vahemaa suhtes.

Nüüd on aeg sisestada parameetrid kaugusmõõtja programmi kauguste mõõtmiseks.

6. samm: kauguste mõõtmine

Kauguste mõõtmine
Kauguste mõõtmine

Koodis: https://gist.github.com/kevinlebrun/e767a46855e5fd501d820e1c5fcc527c uuendasin muutujaid HEIGHT, GAIN ja OFFSET vastavalt kalibreerimismõõtmistele. Kauguse hindamiseks kasutasin esialgses artiklis esitatud kaugusvalemit ja printisin kauguse LCD -ekraani abil.

Kood seadistab kõigepealt kaamera ja GPIO, seejärel soovime mõõtmiste paremaks nägemiseks LCD -taustvalgustuse süüdata. LCD sisend on ühendatud GPIO14 -ga. Iga 5 sekundi tagant teeme järgmist.

  1. lubage laserdiood
  2. jäädvustage pilt mällu
  3. lülitage laserdiood välja
  4. jälgige laserit HSV vahemiku filtrite abil
  5. kirjutage saadud pilt silumiseks kettale
  6. arvutage kaugus y -koordinaadi põhjal
  7. kirjutage kaugus LCD -ekraanile.

Kuigi sündmused on minu jaoks väga täpsed ja piisavalt täpsed, on arenguruumi palju. Näiteks laserpunkt on väga halva kvaliteediga ja laserjoon ei ole tegelikult tsentreeritud. Parema kvaliteediga laseriga on kalibreerimisetapid täpsemad. Isegi kaamera pole minu džigis päris hästi paigutatud, see kallutab põhja.

Samuti võin kaugusmõõtja eraldusvõimet suurendada, pöörates kaamerat 90 kraadi võrra täisväärtusega, ja suurendada eraldusvõimet kaamera toetatud maksimumini. Praeguse rakendamisega piirdume vahemikus 0 kuni 384 pikslit, võime suurendada ülempiiri 1640 -ni, mis on 4 korda suurem kui praegune eraldusvõime. Vahemaa saab olema veelgi täpsem.

Järeltegevustena pean töötama ülalmainitud täpsustäiustuste kallal ja ehitama kaugusmõõtjale korpuse. Seinast seinale mõõtmise hõlbustamiseks peab korpus olema täpselt sügav.

Kokkuvõttes piisab mulle praegusest süsteemist ja see säästab mu maja planeerimise eest raha!

Soovitan: