Kazalo:

Izdelava daljinomera z laserjem in kamero: 6 korakov
Izdelava daljinomera z laserjem in kamero: 6 korakov

Video: Izdelava daljinomera z laserjem in kamero: 6 korakov

Video: Izdelava daljinomera z laserjem in kamero: 6 korakov
Video: Основные ошибки при возведении перегородок из газобетона #5 2024, Junij
Anonim
Izdelava daljinomera z laserjem in kamero
Izdelava daljinomera z laserjem in kamero

Trenutno načrtujem notranja dela za naslednjo pomlad, a ker sem pravkar kupil staro hišo, nimam načrta hiše. Začel sem meriti razdalje od stene do stene z ravnilom, vendar je počasen in nagnjen k napakam. Razmišljal sem o nakupu daljinomera, da bi olajšal postopek, potem pa sem našel star članek o gradnji lastnega daljinomera z laserjem in kamero. Izkazalo se je, da imam te komponente v svoji delavnici.

Projekt temelji na tem članku:

Edina razlika je v tem, da bom daljinomer gradil z uporabo Raspberry Pi Zero W, LCD -ja in modula Raspberry Pi Camera. Za sledenje laserju bom uporabil tudi OpenCV.

Predvidevam, da ste tehnično podkovani in da vam je udobno uporabljati Python in ukazno vrstico. V tem projektu uporabljam Pi v načinu brez glave.

Začnimo!

1. korak: Seznam materialov

Za ta projekt boste potrebovali:

  • poceni laser 6 mm 5mW
  • 220 Ω upor
  • tranzistor 2N2222A ali kaj podobnega
  • a Raspberry Pi Zero W
  • fotoaparat Raspberry Pi v2
  • LCD zaslon Nokia 5110 ali enakovreden
  • nekaj mostičnih žic in majhna plošča

S svojim 3D tiskalnikom sem natisnil pripomoček, ki mi je pomagal med poskusi. Načrtujem tudi uporabo 3D tiskalnika za izdelavo popolnega ohišja za merilnik razdalje. Lahko popolnoma brez.

2. korak: Izdelava laserskega in kamerskega sestavljanca

Izdelava laserskega in kamerskega sestavljanca
Izdelava laserskega in kamerskega sestavljanca
Izdelava laserskega in kamerskega sestavljanca
Izdelava laserskega in kamerskega sestavljanca
Izdelava laserja in fotoaparata
Izdelava laserja in fotoaparata

Sistem predpostavlja fiksno razdaljo med objektivom kamere in laserskim izhodom. Za olajšanje testov sem natisnil šablono, v katero lahko namestim kamero, laser in majhno pogonsko vezje za laser.

Za izdelavo nosilca za kamero sem uporabil dimenzije modula kamere. Za meritve sem uporabljal predvsem digitalno čeljust in natančno ravnilo. Za laser sem ustvaril 6 mm luknjo z malo ojačitve, da zagotovim, da se laser ne premakne. Poskusil sem ohraniti dovolj prostora, da sem na zadnji strani vložka namestil majhno ploščico.

Za izdelavo sem uporabil Tinkercad, model najdete tukaj:

Med središčem laserske leče in središčem leče fotoaparata je 3,75 cm razdalje.

3. korak: Vožnja laserja in LCD -zaslona

Vožnja laserja in LCD -zaslona
Vožnja laserja in LCD -zaslona
Vožnja laserja in LCD -zaslona
Vožnja laserja in LCD -zaslona

Sledil sem tej vadnici https://www.algissalys.com/how-to/nokia-5110-lcd-on-raspberry-pi za vožnjo LCD zaslona z Raspberry Pi Zero. Namesto urejanja datoteke /boot/config.txt lahko v ukazni vrstici omogočite vmesnik SPI z uporabo sudo raspi-config.

Raspberry Pi Zero uporabljam v brezglavnem načinu z uporabo najnovejšega, na dan, Raspbian Stretch. Namestitve v tem navodilu ne bom obravnaval, lahko pa sledite tem navodilom: https://medium.com/@danidudas/install-raspbian-jessie-lite-and-setup-wi-fi-without-access-to- command-line-or-using-the-network-97f065af722e

Za svetlo lasersko piko uporabljam 5V tirnico Pi. Za to bom uporabil tranzistor (2N2222a ali enakovreden) za pogon laserja z uporabo GPIO. 220 Ω upor na dnu tranzistorja omogoča dovolj toka skozi laser. Za manipulacijo s Pi GPIO uporabljam RPi. GPIO. Osnovo tranzistorja sem priključil na pin GPIO22 (15. pin), oddajnik na tla in zbiralnik na lasersko diodo.

Ne pozabite omogočiti vmesnika kamere z uporabo sudo raspi-config prek ukazne vrstice.

S to kodo lahko preizkusite svojo nastavitev:

Če je vse v redu, morate imeti datoteko dot.jpg, v kateri boste videli ozadje in lasersko piko.

V kodi nastavimo kamero in GPIO, nato omogočimo laser, posnamemo sliko in onemogočimo laser. Ker uporabljam Pi v brezglavem načinu, moram pred prikazom kopirati slike iz svojega Pi v računalnik.

Na tej točki je treba konfigurirati strojno opremo.

4. korak: Odkrivanje laserja z uporabo OpenCV

Najprej moramo namestiti OpenCV na Pi. V bistvu imate tri načine za to. Staro zapakirano različico lahko namestite z apt. Lahko sestavite želeno različico, vendar v tem primeru lahko čas namestitve traja do 15 ur in večina za dejansko kompilacijo. Ali, moj prednostni pristop, lahko uporabite vnaprej sestavljeno različico za Pi Zero, ki jo zagotovi tretja oseba.

Ker je enostavnejši in hitrejši, sem uporabil paket tretjih oseb. Korake za namestitev najdete v tem članku: https://yoursunny.com/t/2018/install-OpenCV3-PiZero/ Poskusil sem veliko drugih virov, vendar njihovi paketi niso bili posodobljeni.

Za sledenje laserskemu kazalcu sem posodobil kodo s spletnega mesta https://github.com/bradmontgomery/python-laser-tracker in uporabil modul kamere Pi namesto naprave USB. Kodo lahko uporabite neposredno, če nimate modula kamere Pi in želite uporabiti kamero USB.

Celotno kodo najdete tukaj:

Za zagon te kode boste morali namestiti pakete Python: blazino in pikamero (sudo pip3 namestite vzglavnik picamera).

5. korak: Umerjanje daljinomera

Umerjanje daljinomera
Umerjanje daljinomera
Umerjanje daljinomera
Umerjanje daljinomera
Umerjanje daljinomera
Umerjanje daljinomera

V izvirnem članku je avtor zasnoval postopek umerjanja, da bi dobil zahtevane parametre za pretvorbo koordinat y na dejansko razdaljo. Svojo dnevno mizo sem uporabil za umerjanje in star kos krafta. Vsakih 10 cm sem koordinate x in y zapisal v preglednico: https://docs.google.com/spreadsheets/d/1OTGu09GLAt… Da bi vse delovalo pravilno, sem na vsakem koraku preveril zajete slike laser je bil pravilno sleden. Če uporabljate zeleni laser ali če njegovemu laserju niste pravilno sledili, boste morali ustrezno prilagoditi odtenek, nasičenost in prag vrednosti programa.

Ko je faza merjenja končana, je čas, da dejansko izračunamo parametre. Tako kot avtor sem uporabil linearno regresijo; pravzaprav mi je Google preglednica naredila delo. Nato sem te parametre ponovno uporabil za izračun ocenjene razdalje in jo preveril glede na dejansko razdaljo.

Zdaj je čas, da v program daljinomera vnesete parametre za merjenje razdalj.

6. korak: Merjenje razdalj

Merjenje razdalj
Merjenje razdalj

V kodi: https://gist.github.com/kevinlebrun/e767a46855e5fd501d820e1c5fcc527c sem spremenil spremenljivke HEIGHT, GAIN in OFFSET glede na kalibracijske meritve. Za oceno razdalje sem uporabil formulo za razdaljo v izvirnem članku in jo natisnil z LCD zaslonom.

Koda bo najprej nastavila kamero in GPIO, nato želimo osvetliti osvetlitev zaslona LCD, da bomo bolje videli meritve. Vhod LCD je priključen na GPIO14. Vsakih 5 sekund bomo:

  1. omogočite lasersko diodo
  2. posneti sliko v spomin
  3. onemogočite lasersko diodo
  4. sledite laserju s filtri za območje HSV
  5. nastalo sliko napišite na disk za namene odpravljanja napak
  6. izračunajte razdaljo na podlagi koordinate y
  7. na LCD zaslon zapišite razdaljo.

V vsakem primeru so ukrepi zelo natančni in dovolj natančni za moj primer uporabe, obstaja veliko prostora za izboljšave. Na primer, laserska pika je zelo slabe kakovosti in laserska črta v resnici ni centrirana. Z laserjem boljše kakovosti bodo koraki umerjanja natančnejši. Tudi fotoaparat v moji napravi ni dobro nameščen, nagne se na dno.

Ločljivost daljinomera lahko povečam tudi tako, da kamero zavrtim za 90 stopinj s polno tipko in povečam ločljivost do največje vrednosti, ki jo podpira kamera. S trenutno izvedbo smo omejeni na obseg od 0 do 384 slikovnih pik, zgornjo mejo bi lahko povečali na 1640, kar je 4 -krat večja od trenutne ločljivosti. Razdalja bo še natančnejša.

Kot nadaljnje ukrepe bom moral delati na izboljšavah natančnosti, ki sem jih omenil zgoraj, in zgraditi ohišje za daljinomer. Ohišje mora biti natančne globine, da olajša meritve od stene do stene.

Skratka, sedanji sistem mi zadostuje in mi bo prihranil nekaj dolarjev pri načrtovanju hiše!

Priporočena: