Satura rādītājs:

Tālmēra izveidošana, izmantojot lāzeru un kameru: 6 soļi
Tālmēra izveidošana, izmantojot lāzeru un kameru: 6 soļi

Video: Tālmēra izveidošana, izmantojot lāzeru un kameru: 6 soļi

Video: Tālmēra izveidošana, izmantojot lāzeru un kameru: 6 soļi
Video: 13 полезных товаров с Aliexpress, которые пригодятся любому мужику 2024, Novembris
Anonim
Attāluma meklētāja izgatavošana, izmantojot lāzeru un kameru
Attāluma meklētāja izgatavošana, izmantojot lāzeru un kameru

Pašlaik es plānoju dažus iekšdarbus nākamajam pavasarim, bet, tikko iegādājoties veco māju, man nav mājas plāna. Es sāku mērīt attālumus no sienas līdz sienai, izmantojot lineālu, bet tas ir lēns un pakļauts kļūdām. Es domāju iegādāties tālmēru, lai atvieglotu procesu, bet tad es atradu vecu rakstu par sava attāluma meklētāja izveidi, izmantojot lāzeru un kameru. Kā izrādās, man ir šīs sastāvdaļas manā darbnīcā.

Projekta pamatā ir šis raksts:

Vienīgā atšķirība ir tā, ka es būvēšu tālmēru, izmantojot Raspberry Pi Zero W, LCD un Raspberry Pi kameras moduli. Lāzera izsekošanai es izmantošu arī OpenCV.

Es pieņemu, ka jūs esat tehniski gudrs un jums ir ērti izmantot Python un komandrindu. Šajā projektā es izmantoju Pi bezgalvainā režīmā.

Sāksim!

1. solis: Materiālu saraksts

Šim projektam jums būs nepieciešams:

  • lēts 6 mm 5 mW lāzers
  • 220 Ω rezistors
  • 2N2222A tranzistors vai kaut kas līdzvērtīgs
  • a Raspberry Pi Zero W
  • aveņu Pi kamera v2
  • Nokia 5110 LCD displejs vai līdzvērtīgs
  • daži džemperu vadi un neliels maizes dēlis

Es izmantoju savu 3D printeri, lai izdrukātu džigu, kas man palīdzēja eksperimentu laikā. Es arī plānoju izmantot 3D printeri, lai izveidotu pilnīgu diapazona meklētāja korpusu. Jūs varat pilnīgi iztikt bez.

2. solis: Lāzera un kameras džiga izveide

Lāzera un fotokameras veidošana
Lāzera un fotokameras veidošana
Lāzera un fotokameras veidošana
Lāzera un fotokameras veidošana
Lāzera un fotokameras veidošana
Lāzera un fotokameras veidošana

Sistēma pieņem noteiktu attālumu starp kameras objektīvu un lāzera izvadi. Lai atvieglotu testus, es izdrukāju džigu, kurā es varu uzstādīt kameru, lāzeru un nelielu lāzera piedziņas ķēdi.

Es izmantoju kameras moduļa izmērus, lai izveidotu kameras stiprinājumu. Mērījumu veikšanai galvenokārt izmantoju digitālo suportu un precīzu lineālu. Lāzeram es izveidoju 6 mm caurumu ar nelielu pastiprinājumu, lai nodrošinātu, ka lāzers nekustēsies. Es centos atstāt pietiekami daudz vietas, lai džiga aizmugurē būtu salabots mazs maizes dēlis.

Būvēšanai izmantoju Tinkercad, modeli varat atrast šeit:

Starp lāzera objektīva centru un kameras objektīva centru ir 3,75 cm attālums.

3. solis: Lāzera un LCD vadīšana

Lāzera un LCD vadīšana
Lāzera un LCD vadīšana
Lāzera un LCD vadīšana
Lāzera un LCD vadīšana

Es sekoju šai apmācībai https://www.algissalys.com/how-to/nokia-5110-lcd-on-raspberry-pi, lai vadītu LCD displeju ar Raspberry Pi Zero. Tā vietā, lai rediģētu failu /boot/config.txt, varat iespējot SPI saskarni, izmantojot komandrindu, izmantojot sudo raspi-config.

Es izmantoju Raspberry Pi Zero bezgalvainā režīmā, izmantojot jaunāko datumu Raspbian Stretch. Es neattiecos uz instalēšanu šajā pamācībā, bet jūs varat sekot šai rokasgrāmatai: https://medium.com/@danidudas/install-raspbian-jessie-lite-and-setup-wi-fi-without-access-to- Command-line-or-using-the-network-97f065af722e

Lai būtu spilgts lāzera punkts, es izmantoju Pi 5V sliedi. Šim nolūkam es izmantošu tranzistoru (2N2222a vai līdzvērtīgu), lai vadītu lāzeru, izmantojot GPIO. 220 Ω rezistors tranzistora pamatnē ļauj pietiekami daudz strāvas caur lāzeru. Es izmantoju RPi. GPIO, lai manipulētu ar Pi GPIO. Es savienoju tranzistora pamatni ar GPIO22 tapu (15. tapa), emitētāju ar zemi un kolektoru ar lāzera diode.

Neaizmirstiet iespējot kameras saskarni, izmantojot komandrindu, izmantojot sudo raspi-config.

Varat izmantot šo kodu, lai pārbaudītu iestatījumus:

Ja viss gāja labi, jums vajadzētu būt failam dot.jpg, kurā redzēsit fonu un lāzera punktu.

Kodā mēs iestatām kameru un GPIO, pēc tam iespējojam lāzeru, uzņemam attēlu un atspējojam lāzeru. Tā kā es darbinu Pi bezgalvainā režīmā, pirms to parādīšanas man ir jāpārkopē attēli no sava Pi uz datoru.

Šajā brīdī jūsu aparatūra ir jākonfigurē.

4. solis: Lāzera noteikšana, izmantojot OpenCV

Pirmkārt, mums ir jāinstalē OpenCV uz Pi. Būtībā jums ir trīs veidi, kā to izdarīt. Varat vai nu instalēt veco iepakoto versiju ar apt. Jūs varat apkopot vēlamo versiju, taču šajā gadījumā instalēšanas laiks var ilgt līdz 15 stundām, un lielākā daļa no tā ir paredzēta faktiskajai apkopošanai. Vai, mana vēlamā pieeja, jūs varat izmantot Pi Zero iepriekš apkopotu versiju, ko nodrošina trešā puse.

Tā kā tas ir vienkāršāk un ātrāk, es izmantoju trešās puses paketi. Instalēšanas darbības varat atrast šajā rakstā: https://yoursunny.com/t/2018/install-OpenCV3-PiZero/ Es izmēģināju daudzus citus avotus, taču to pakotnes nebija atjauninātas.

Lai izsekotu lāzera rādītāju, es atjaunināju kodu vietnē https://github.com/bradmontgomery/python-laser-tracker, lai USB ierīces vietā izmantotu Pi kameras moduli. Jūs varat tieši izmantot kodu, ja jums nav Pi kameras moduļa un vēlaties izmantot USB kameru.

Pilnu kodu varat atrast šeit:

Lai palaistu šo kodu, jums būs jāinstalē Python pakotnes: spilvens un picamera (sudo pip3 install spilvens picamera).

5. darbība: diapazona meklētāja kalibrēšana

Diapazona meklētāja kalibrēšana
Diapazona meklētāja kalibrēšana
Diapazona meklētāja kalibrēšana
Diapazona meklētāja kalibrēšana
Diapazona meklētāja kalibrēšana
Diapazona meklētāja kalibrēšana

Sākotnējā rakstā autors izstrādāja kalibrēšanas procedūru, lai iegūtu nepieciešamos parametrus, lai y koordinātas pārveidotu par faktisko attālumu. Kalibrēšanai izmantoju savu viesistabas galdu un veco kraft gabalu. Apmēram ik pēc 10 cm es izklājlapā atzīmēju x un y koordinātas: https://docs.google.com/spreadsheets/d/1OTGu09GLAt… Lai nodrošinātu, ka viss darbojas pareizi, katrā solī es pārbaudīju uzņemtos attēlus, lai redzētu, vai lāzers tika pareizi izsekots. Ja izmantojat zaļo lāzeru vai ja lāzers netiek pareizi izsekots, jums attiecīgi jāpielāgo programmas nokrāsa, piesātinājums un vērtību slieksnis.

Kad mērīšanas fāze ir pabeigta, ir pienācis laiks faktiski aprēķināt parametrus. Tāpat kā autors, es izmantoju lineāru regresiju; patiesībā Google izklājlapa paveica darbu manā vietā. Pēc tam es atkārtoti izmantoju šos parametrus, lai aprēķinātu aptuveno attālumu un pārbaudītu to pret faktisko attālumu.

Ir pienācis laiks ievadīt parametrus attāluma meklētāja programmā, lai izmērītu attālumus.

6. darbība: attālumu mērīšana

Attālumu mērīšana
Attālumu mērīšana

Kodā: https://gist.github.com/kevinlebrun/e767a46855e5fd501d820e1c5fcc527c es atjaunināju mainīgos HEIGHT, GAIN un OFFSET atbilstoši kalibrēšanas mērījumiem. Es izmantoju attāluma formulu sākotnējā rakstā, lai novērtētu attālumu, un es drukāju attālumu, izmantojot LCD displeju.

Kods vispirms iestatīs kameru un GPIO, pēc tam mēs vēlamies iedegt LCD apgaismojumu, lai labāk redzētu mērījumus. LCD ieeja ir pievienota GPIO14. Ik pēc 5 sekundēm mēs:

  1. iespējojiet lāzera diode
  2. uzņemiet attēlu atmiņā
  3. atspējot lāzera diode
  4. izseko lāzeru, izmantojot HSV diapazona filtrus
  5. ierakstiet iegūto attēlu diskā atkļūdošanas nolūkos
  6. aprēķiniet attālumu, pamatojoties uz y koordinātu
  7. ierakstiet attālumu LCD displejā.

Tomēr pasākums ir ļoti precīzs un pietiekami precīzs manam lietošanas gadījumam, ir daudz iespēju uzlabot. Piemēram, lāzera punkts ir ļoti sliktas kvalitātes un lāzera līnija nav īsti centrēta. Izmantojot labākas kvalitātes lāzeru, kalibrēšanas soļi būs precīzāki. Pat kamera manā džigā nav īsti labi novietota, tā noliecas uz leju.

Es varu arī palielināt attāluma meklētāja izšķirtspēju, pagriežot kameru par 90º, pilnībā izmantojot, un palielināt izšķirtspēju līdz maksimālajai kameras atbalstītajai. Izmantojot pašreizējo ieviešanu, mēs ierobežojam diapazonu no 0 līdz 384 pikseļiem, mēs varam palielināt augšējo robežu līdz 1640, kas ir 4 reizes lielāka par pašreizējo izšķirtspēju. Attālums būs vēl precīzāks.

Kā papildu pasākumi man būs jāstrādā pie iepriekšminētajiem precizitātes uzlabojumiem un jāizveido attāluma meklētāja korpuss. Lai atvieglotu mērījumus no sienas līdz sienai, korpusam jābūt precīzam dziļumam.

Kopumā ar pašreizējo sistēmu man pietiek un ietaupīšu dažus dolārus, veidojot mājas plānu!

Ieteicams: