Satura rādītājs:
- 1. solis: Materiālu saraksts
- 2. solis: Lāzera un kameras džiga izveide
- 3. solis: Lāzera un LCD vadīšana
- 4. solis: Lāzera noteikšana, izmantojot OpenCV
- 5. darbība: diapazona meklētāja kalibrēšana
- 6. darbība: attālumu mērīšana
Video: Tālmēra izveidošana, izmantojot lāzeru un kameru: 6 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:56
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
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
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
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
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:
- iespējojiet lāzera diode
- uzņemiet attēlu atmiņā
- atspējot lāzera diode
- izseko lāzeru, izmantojot HSV diapazona filtrus
- ierakstiet iegūto attēlu diskā atkļūdošanas nolūkos
- aprēķiniet attālumu, pamatojoties uz y koordinātu
- 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:
C tipa USB PD Powerbank izveidošana ļoti vienkāršā veidā: 5 soļi
C tipa USB PD Powerbank izveide ļoti vienkāršā veidā: Šajā mazajā projektā es jums parādīšu, kā izveidot vienkāršu C tipa USB tipa C Powerbank. Lai to izdarītu, es vispirms pārbaudīšu Powerbank PCB, kuras pamatā ir IP5328P IC, ko saņēmu no Aliexpress. Mērījumi parādīs, cik piemēroti ir
Izveidošana kļūdas dēļ: 11 soļi
Radīšana pēc kļūdas: Izveide pēc kļūdas izaicina un liek mums apšaubīt mūsu pieņēmumus par digitālo ierīču precizitāti un precizitāti un to, kā tās tiek izmantotas, lai interpretētu un izprastu fizisko vidi. Ar pielāgotu robotu, kas izstaro auru
Vecā maršrutētāja kārbas atkārtota izveidošana jūsu Arduino projektam: 3 soļi
Pārveidot veco maršrutētāja kārbu jūsu Arduino projektam: Šis projekts radās no nepieciešamības izvietot savu mājas automatizācijas projektu. Es nolēmu lietu pārveidot no veca kļūdaina PlusNet maršrutētāja (maršrutētājs Thomson TG585). korpuss bija :: Zema profila pie sienas piekarināma kaste Viegli noņemama vāka panna
Darba sākšana ar ESP32 CAM - Video straumēšana, izmantojot ESP CAM, izmantojot Wifi - ESP32 drošības kameru projekts: 8 soļi
Darba sākšana ar ESP32 CAM | Video straumēšana, izmantojot ESP CAM, izmantojot Wifi | ESP32 drošības kameru projekts: Šodien mēs uzzināsim, kā izmantot šo jauno ESP32 CAM plati un kā mēs varam to kodēt un izmantot kā drošības kameru un iegūt straumēšanas video, izmantojot WiFi
Datora vadīšana, izmantojot lāzeru vai IR pildspalvu: 4 soļi
Datora vadīšana, izmantojot lāzeru vai IR pildspalvu. Tas ir cits veids, kā kontrolēt datoru, izmantojot lāzeru. Atšķirībā no [https://www.instructables.com/id/Control-your-Computer…-with-a-LASER !/ icinnamon] veida, tas izmanto tīmekļa kameru un lāzeru, lai kontrolētu kursoru datorā. Jūs pat varat nokļūt