Përmbajtje:

Bërja e Rangefinder duke përdorur një lazer dhe një aparat fotografik: 6 hapa
Bërja e Rangefinder duke përdorur një lazer dhe një aparat fotografik: 6 hapa

Video: Bërja e Rangefinder duke përdorur një lazer dhe një aparat fotografik: 6 hapa

Video: Bërja e Rangefinder duke përdorur një lazer dhe një aparat fotografik: 6 hapa
Video: Основные ошибки при возведении перегородок из газобетона #5 2024, Nëntor
Anonim
Bërja e Rangefinder duke përdorur një lazer dhe një aparat fotografik
Bërja e Rangefinder duke përdorur një lazer dhe një aparat fotografik

Aktualisht jam duke planifikuar disa punë të brendshme për pranverën e ardhshme, por pasi sapo bleva një shtëpi të vjetër nuk kam ndonjë plan shtëpie. Fillova të mas distancat mur me mur duke përdorur një vizore, por është i ngadalshëm dhe i prirur ndaj gabimeve. Mendova për të blerë një distancë për të lehtësuar procesin, por më pas gjeta një artikull të vjetër në lidhje me ndërtimin e distancuesit të tij duke përdorur një lazer dhe një aparat fotografik. Siç doli, unë i kam ato përbërës në punëtorinë time.

Projekti bazohet në këtë artikull:

Dallimi i vetëm është se unë do të ndërtoj distancën duke përdorur një Raspberry Pi Zero W, një LCD dhe modulin Raspberry Pi Camera. Unë gjithashtu do të përdor OpenCV për të gjetur lazer.

Unë do të supozoj se ju jeni një specialist i teknologjisë dhe se jeni të kënaqur duke përdorur Python dhe vijën e komandës. Në këtë projekt unë jam duke përdorur Pi në mënyrë pa kokë.

Le të fillojmë!

Hapi 1: Lista e materialeve

Për këtë projekt, do t'ju duhet:

  • një lazer i lirë 6mm 5mW
  • një rezistencë 220 Ω
  • një transistor 2N2222A ose diçka ekuivalente
  • një Raspberry Pi Zero W
  • një Kamera Raspberry Pi v2
  • një ekran Nokia 5110 LCD ose ekuivalent
  • disa tela kërcyes dhe një dërrasë e vogël buke

Kam përdorur printerin tim 3d për të shtypur një pjesë që më ndihmoi gjatë eksperimenteve. Unë gjithashtu planifikoj të përdor printerin 3d për të ndërtuar një mbyllje të plotë për gjetësin e diapazonit. Ju mund të bëni plotësisht pa.

Hapi 2: Ndërtimi i një shtrëngimi me lazer dhe kamera

Ndërtimi i një kompresori me lazer dhe kamera
Ndërtimi i një kompresori me lazer dhe kamera
Ndërtimi i një kompresori me lazer dhe kamera
Ndërtimi i një kompresori me lazer dhe kamera
Ndërtimi i një kompresori me lazer dhe kamera
Ndërtimi i një kompresori me lazer dhe kamera

Sistemi supozon një distancë fikse midis lenteve të kamerës dhe daljes së lazerit. Për të lehtësuar testet, unë printova një kompresë në të cilën mund të montoja kamerën, lazerin dhe një qark të vogël drejtimi për lazerin.

Kam përdorur dimensionet e modulit të kamerës për të ndërtuar bazën për kamerën. Kam përdorur kryesisht një caliper dixhital dhe një vizore precize për të bërë matjet. Për lazer, krijova një vrimë 6 mm me pak përforcim për të siguruar që lazeri nuk do të lëvizë. Unë u përpoqa të mbaja hapësirë të mjaftueshme për të rregulluar një dërrasë të vogël buke në pjesën e prapme të figurës.

Kam përdorur Tinkercad për ndërtimin, modelin mund ta gjeni këtu:

Ekziston një distancë prej 3.75 cm midis qendrës së lentes lazer dhe qendrës së lenteve të kamerës.

Hapi 3: Drejtimi i Laser dhe LCD

Drejtimi i Laser dhe LCD
Drejtimi i Laser dhe LCD
Drejtimi i Laser dhe LCD
Drejtimi i Laser dhe LCD

Ndoqa këtë tutorial https://www.algissalys.com/how-to/nokia-5110-lcd-on-raspberry-pi për të drejtuar ekranin LCD me Raspberry Pi Zero. Në vend që të redaktoni skedarin /boot/config.txt, mund të aktivizoni ndërfaqen SPI duke përdorur sudo raspi-config përmes vijës së komandës.

Unë jam duke përdorur Raspberry Pi Zero në mënyrë pa kokë duke përdorur më të fundit, në datën, Raspbian Stretch. Unë nuk do të mbuloj instalimin në këtë Instructable, por ju mund të ndiqni këtë udhëzues: https://medium.com/@danidudas/install-raspbian-jessie-lite-and-setup-wi-fi-without-access-to- linja e komandës-ose-përdorimi-i-rrjetit-97f065af722e

Për të pasur një pikë lazeri të ndritshme, unë jam duke përdorur binarët 5V të Pi. Për këtë, unë do të përdor një transistor (2N2222a ose ekuivalent) për të drejtuar lazerin duke përdorur GPIO. Një rezistencë 220 Ω në bazën e tranzistorit lejon rrymë të mjaftueshme përmes lazerit. Unë jam duke përdorur RPi. GPIO për të manipuluar Pi GPIO. Unë e lidha bazën e tranzistorit me kunjin GPIO22 (kunja e 15 -të), emetuesin në tokë dhe kolektorin me diodën lazer.

Mos harroni të aktivizoni ndërfaqen e kamerës duke përdorur sudo raspi-config përmes vijës së komandës.

Ju mund ta përdorni këtë kod për të testuar konfigurimin tuaj:

Nëse gjithçka shkoi mirë, duhet të keni një skedar dot-j.webp

Në kod, ne konfigurojmë kamerën dhe GPIO, pastaj aktivizojmë lazerin, kapim imazhin dhe çaktivizojmë lazerin. Ndërsa jam duke punuar me Pi në mënyrë pa kokë, më duhet të kopjoj imazhet nga Pi im në kompjuterin tim para se t'i shfaq ato.

Në këtë pikë, pajisja juaj duhet të konfigurohet.

Hapi 4: Zbulimi i lazerit duke përdorur OpenCV

Së pari, ne duhet të instalojmë OpenCV në Pi. Në thelb keni tre mënyra për ta bërë atë. Ju ose mund të instaloni versionin e vjetër të paketuar me apt. Ju mund të përpiloni versionin që dëshironi, por në këtë rast koha e instalimit mund të shkojë deri në 15 orë dhe shumica e tij për përpilimin aktual. Ose, qasja ime e preferuar, mund të përdorni një version të përpiluar paraprakisht për Pi Zero që ofrohet nga një palë e tretë.

Për shkak se është më e thjeshtë dhe më e shpejtë, kam përdorur një paketë të palëve të treta. Ju mund të gjeni hapat e instalimit në këtë artikull: https://yoursunny.com/t/2018/install-OpenCV3-PiZero/ Provova shumë burime të tjera, por paketat e tyre nuk ishin të përditësuara.

Për të gjurmuar një tregues lazer, azhurnova kodin nga https://github.com/bradmontgomery/python-laser-tracker për të përdorur modulin e kamerës Pi në vend të një pajisjeje USB. Ju mund të përdorni drejtpërdrejt kodin nëse nuk keni një modul kamera Pi dhe dëshironi të përdorni një aparat USB.

Kodin e plotë mund ta gjeni këtu:

Për të ekzekutuar këtë kod do t'ju duhet të instaloni paketat Python: jastëk dhe picamera (sudo pip3 instaloni jastëk picamera).

Hapi 5: Kalibrimi i Range Finder

Kalibrimi i Range Finder
Kalibrimi i Range Finder
Kalibrimi i Range Finder
Kalibrimi i Range Finder
Kalibrimi i Range Finder
Kalibrimi i Range Finder

Në artikullin origjinal, autori hartoi një procedurë kalibrimi për të marrë parametrat e kërkuar për të transformuar koordinatat y në një distancë aktuale. Kam përdorur tryezën e dhomës time të jetesës për kalibrimet dhe një copë të vjetër kraft. Çdo 10 cm ose më shumë vura re koordinatat x dhe y në një spreadsheet: https://docs.google.com/spreadsheets/d/1OTGu09GLAt… Për të siguruar që gjithçka ka funksionuar si duhet, në çdo hap, kam kontrolluar imazhet e kapura për të parë nëse lazeri u gjurmua saktë. Nëse përdorni një lazer të gjelbër ose nëse lazeri juaj nuk është gjurmuar saktë, do t'ju duhet të rregulloni ngjyrën, ngopjen dhe pragun e vlerës së programit në përputhje me rrethanat.

Pasi të bëhet faza e matjes, është koha për të llogaritur në fakt parametrat. Ashtu si autori kam përdorur një regresion linear; në fakt Google Spreadsheet bëri punën për mua. Pastaj i ripërdori ato parametra për të llogaritur një distancë të vlerësuar dhe për ta kontrolluar atë me distancën aktuale.

Tani është koha për të injektuar parametrat në programin e distancës për të matur distancat.

Hapi 6: Matja e Distancave

Matja e Distancave
Matja e Distancave

Në kodin: https://gist.github.com/kevinlebrun/e767a46855e5fd501d820e1c5fcc527c I përditësova variablat HEIGHT, GAIN dhe OFFSET sipas matjeve të kalibrimit. Kam përdorur formulën e distancës në artikullin origjinal për të vlerësuar distancën dhe kam shtypur distancën duke përdorur ekranin LCD.

Kodi së pari do të konfigurojë kamerën dhe GPIO, pastaj ne duam të ndezim dritën e pasme të LCD për të parë më mirë matjet. Hyrja LCD është e kyçur në GPIO14. Çdo 5 sekonda ose më shumë, ne do të:

  1. aktivizoni diodën lazer
  2. kapni imazhin në kujtesë
  3. çaktivizoni diodën lazer
  4. gjurmoni lazerin duke përdorur filtrat e gamës HSV
  5. shkruani imazhin që rezulton në disk për qëllim të korrigjimit
  6. njehsoni distancën bazuar në koordinatën y
  7. shkruani distancën në ekranin LCD.

Sidoqoftë, masat janë shumë të sakta dhe mjaft të sakta për rastin tim të përdorimit, ka shumë vend për përmirësime. Për shembull, pika lazer është e një cilësie shumë të dobët dhe linja lazer nuk është me të vërtetë e përqendruar. Me një lazer të cilësisë më të mirë, hapat e kalibrimit do të jenë më të saktë. Edhe kamera nuk është vërtet e pozicionuar mirë në kompresën time, ajo anon në fund.

Unë gjithashtu mund të rris rezolucionin e distancuesit duke e rrotulluar kamerën me 90º duke përdorur të plotë me dhe për të rritur rezolucionin në maksimumin e mbështetur nga kamera. Me zbatimin aktual ne jemi të kufizuar në një gamë 0 deri në 384 piksele, ne mund të rrisim kufirin e sipërm në 1640, 4 herë më shumë se rezolucioni aktual. Distanca do të jetë edhe më e saktë.

Si vazhdime, do të më duhet të punoj në përmirësimet e sakta që përmenda më lart dhe të ndërtoj një rrethim për distancuesin. Rrethimi do të duhet të jetë i një thellësie të saktë për të lehtësuar matjet nga muri në mur.

Në tërësi sistemi aktual është i mjaftueshëm për mua dhe do të më kursejë disa dollarë duke bërë planin e shtëpisë time!

Recommended: