Obsah:
- Krok 1: Zoznam materiálov
- Krok 2: Zostavenie laserového a kamerového prípravku
- Krok 3: Ovládanie lasera a LCD
- Krok 4: Detekcia lasera pomocou OpenCV
- Krok 5: Kalibrácia diaľkomeru
- Krok 6: Meranie vzdialeností
Video: Výroba diaľkomera pomocou lasera a fotoaparátu: 6 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:59
Aktuálne plánujem vnútorné práce na budúcu jar, ale keďže som práve získal starý dom, nemám žiadny plán domu. Začal som merať vzdialenosti od steny k stene pomocou pravítka, ale je to pomalé a náchylné na chyby. Rozmýšľal som nad kúpou diaľkomera, aby som tento proces zjednodušil, ale potom som našiel starý článok o stavbe vlastného diaľkomera pomocou lasera a fotoaparátu. Ako sa ukazuje, tieto komponenty mám vo svojej dielni.
Projekt je založený na tomto článku:
Jediným rozdielom je, že diaľkomer budem stavať pomocou modulu Raspberry Pi Zero W, LCD a modulu Raspberry Pi Camera. Na sledovanie lasera budem používať aj OpenCV.
Budem predpokladať, že ste technicky zdatný a že vám vyhovuje používanie Pythonu a príkazového riadka. V tomto projekte používam Pi v bezhlavom režime.
Začnime!
Krok 1: Zoznam materiálov
Na tento projekt budete potrebovať:
- lacný 6mm 5mW laser
- odpor 220 Ω
- tranzistor 2N2222A alebo niečo podobné
- Raspberry Pi Zero W
- kamera Raspberry Pi v2
- LCD displej Nokia 5110 alebo ekvivalent
- nejaké prepojovacie káble a malú dosku na chlieb
Svojou 3D tlačiarňou som vytlačil prípravok, ktorý mi pomohol počas experimentov. Plánujem tiež použiť 3D tlačiareň na vybudovanie kompletného krytu pre diaľkomer. Bez toho sa úplne zaobídete.
Krok 2: Zostavenie laserového a kamerového prípravku
Systém predpokladá pevnú vzdialenosť medzi objektívom fotoaparátu a laserovým výstupom. Na uľahčenie testov som vytlačil prípravok, do ktorého môžem namontovať fotoaparát, laser a malý pohonný obvod pre laser.
Na zostavenie držiaka kamery som použil rozmery modulu kamery. Na meranie som používal hlavne digitálny posuvný meradlo a presné pravítko. Pre laser som vytvoril 6 mm otvor s malou výstužou, aby sa zaistilo, že sa laser nebude pohybovať. Snažil som sa zachovať dostatok miesta na to, aby som mal vzadu v prípravku pripevnené malé doštičku.
Na zostavenie som použil Tinkercad, model nájdete tu:
Medzi stredom laserového objektívu a stredom objektívu fotoaparátu je vzdialenosť 3,75 cm.
Krok 3: Ovládanie lasera a LCD
Nasledoval som tento návod https://www.algissalys.com/how-to/nokia-5110-lcd-on-raspberry-pi na ovládanie LCD displeja Raspberry Pi Zero. Namiesto úpravy súboru /boot/config.txt môžete povoliť rozhranie SPI pomocou sudo raspi-config prostredníctvom príkazového riadka.
Používam Raspberry Pi Zero v bezhlavom režime s použitím najnovšieho k dátumu Raspbian Stretch. Nebudem popisovať inštaláciu v tomto návode, ale môžete sa riadiť týmto sprievodcom: https://medium.com/@danidudas/install-raspbian-jessie-lite-and-setup-wi-fi-without-access-to- príkazový riadok alebo pomocou siete 97f065af722e
Aby som mal jasný laserový bod, používam 5V lištu Pi. Na to budem používať tranzistor (2N2222a alebo ekvivalent) na poháňanie lasera pomocou GPIO. Rezistor 220 Ω v spodnej časti tranzistora umožňuje dostatočný prúd cez laser. Na manipuláciu s Pi GPIO používam RPi. GPIO. Základňu tranzistora som spojil s pinom GPIO22 (15. pin), vysielač so zemou a kolektor s laserovou diódou.
Nezabudnite povoliť rozhranie kamery pomocou sudo raspi-config prostredníctvom príkazového riadka.
Tento kód môžete použiť na otestovanie svojho nastavenia:
Ak všetko prebehlo dobre, mali by ste mať súbor dot.jpg, v ktorom uvidíte pozadie a laserovú bodku.
V kóde nastavíme kameru a GPIO, potom povolíme laser, zachytíme obraz a laser vypneme. Keďže Pi prevádzkujem v bezhlavom režime, musím pred zobrazením skopírovať obrázky z môjho Pi do počítača.
V tomto okamihu by mal byť váš hardvér nakonfigurovaný.
Krok 4: Detekcia lasera pomocou OpenCV
Najprv musíme na Pi nainštalovať OpenCV. V zásade máte tri spôsoby, ako to urobiť. Starú zabalenú verziu môžete nainštalovať buď pomocou apt. Môžete skompilovať požadovanú verziu, ale v tomto prípade môže doba inštalácie trvať až 15 hodín a väčšinou aj pre skutočnú kompiláciu. Alebo, môj preferovaný prístup, môžete použiť vopred zostavenú verziu pre Pi Zero, ktorú poskytuje tretia strana.
Pretože je to jednoduchšie a rýchlejšie, použil som balík tretej strany. Postup inštalácie nájdete v tomto článku: https://yoursunny.com/t/2018/install-OpenCV3-PiZero/ Skúšal som mnoho ďalších zdrojov, ale ich balíky neboli aktuálne.
Aby som sledoval laserové ukazovátko, aktualizoval som kód z https://github.com/bradmontgomery/python-laser-tracker, aby som namiesto USB zariadenia používal kamerový modul Pi. Ak nemáte kamerový modul Pi a chcete použiť USB kameru, môžete kód použiť priamo.
Kompletný kód nájdete tu:
Na spustenie tohto kódu budete musieť nainštalovať balíky Pythonu: pillow a picamera (sudo pip3 install pillow picamera).
Krok 5: Kalibrácia diaľkomeru
V pôvodnom článku autor navrhol postup kalibrácie, aby sa získali požadované parametre na transformáciu súradníc y na skutočnú vzdialenosť. Na kalibrácie som použil svoj obývačkový stôl a starý kus kraftu. Každých asi 10 cm som zaznamenal súradnice x a y do tabuľky: https://docs.google.com/spreadsheets/d/1OTGu09GLAt… Aby som zaistil, že všetko funguje správne, v každom kroku som skontroloval nasnímané obrázky, aby som zistil, či laser bol správne sledovaný. Ak používate zelený laser alebo ak váš laser nie je správne sledovaný, budete musieť podľa toho upraviť odtieň, sýtosť a prahovú hodnotu programu.
Akonáhle je fáza merania dokončená, je čas skutočne vypočítať parametre. Rovnako ako autor som použil lineárnu regresiu; v skutočnosti prácu za mňa urobila tabuľka Google. Potom som tieto parametre znova použil na výpočet odhadovanej vzdialenosti a jej porovnanie so skutočnou vzdialenosťou.
Teraz je čas vložiť parametre do programu diaľkomeru na meranie vzdialeností.
Krok 6: Meranie vzdialeností
V kóde: https://gist.github.com/kevinlebrun/e767a46855e5fd501d820e1c5fcc527c som aktualizoval premenné HEIGHT, GAIN a OFFSET podľa kalibračných meraní. Na odhad vzdialenosti som použil vzorec vzdialenosti v pôvodnom článku a vzdialenosť som vytlačil pomocou LCD displeja.
Kód najskôr nastaví fotoaparát a GPIO, potom chceme rozsvietiť podsvietenie LCD, aby sme lepšie videli merania. Vstup LCD je zapojený do GPIO14. Asi každých 5 sekúnd vykonáme:
- zapnite laserovú diódu
- zachytiť obrázok do pamäte
- vypnite laserovú diódu
- sledujte laser pomocou filtrov rozsahu HSV
- zapíšte výsledný obrázok na disk na účely ladenia
- vypočítajte vzdialenosť na základe súradnice y
- vzdialenosť napíšte na LCD displej.
Napriek tomu sú opatrenia veľmi presné a dostatočne presné pre môj prípad použitia, existuje veľa priestoru na zlepšenie. Napríklad laserový bod má veľmi nízku kvalitu a laserová čiara nie je v skutočnosti vycentrovaná. S laserom vyššej kvality budú kroky kalibrácie presnejšie. Dokonca ani fotoaparát nie je v mojom prípravku dobre umiestnený, nakláňa sa dnu.
Rozlíšenie diaľkomera môžem tiež zvýšiť otočením fotoaparátu o 90 ° pomocou režimu Full with a zvýšením rozlíšenia na maximum, ktoré fotoaparát podporuje. Pri súčasnej implementácii sme obmedzení na rozsah 0 až 384 pixelov, mohli by sme hornú hranicu zvýšiť na 1640, teda 4 -násobok súčasného rozlíšenia. Vzdialenosť bude ešte presnejšia.
V nadväznosti na to budem musieť zapracovať na vylepšeniach presnosti, ktoré som spomenul vyššie, a postaviť kryt pre diaľkomer. Na uľahčenie meraní od steny k stene bude musieť mať box presnú hĺbku.
Celkovo mi súčasný systém stačí a ušetrí mi peniaze pri plánovaní môjho domu!
Odporúča:
Autonómna výroba paralelného parkovacieho auta pomocou Arduina: 10 krokov (s obrázkami)
Autonómne paralelné parkovanie pomocou Arduina: Pri autonómnom parkovaní musíme vytvoriť algoritmy a snímače polohy podľa určitých predpokladov. Naše predpoklady budú v tomto projekte nasledujúce. V tomto scenári bude ľavá strana cesty pozostávať z múrov a parkových plôch. Ako ty
Rádiové ovládanie RF 433MHZ pomocou HT12D HT12E - Výroba diaľkového ovládania RF pomocou HT12E a HT12D s frekvenciou 433 MHz: 5 krokov
Rádiové ovládanie RF 433MHZ pomocou HT12D HT12E | Výroba diaľkového ovládania RF pomocou HT12E a HT12D s frekvenciou 433 MHz: V tomto návode vám ukážem, ako vytvoriť diaľkový ovládač RADIO pomocou modulu prijímača vysielača s frekvenciou 433 MHz s kódovaním HT12E & IC dekodér HT12D. V tomto návode budete môcť odosielať a prijímať údaje pomocou veľmi lacných KOMPONENTOV, AKO: HT
Výroba hodín pomocou M5stick C pomocou Arduino IDE - Hodiny RTC v reálnom čase s M5stack M5stick-C: 4 kroky
Výroba hodín pomocou M5stick C pomocou Arduino IDE | Hodiny RTC v reálnom čase s M5stack M5stick-C: Ahoj chlapci, v tomto návode sa naučíme, ako vyrobiť hodiny s vývojovou doskou m5stick-C m5stack pomocou Arduino IDE. Takže m5stick zobrazí dátum, čas a týždeň v mesiaci na displeji
Meranie vzdialenosti pomocou lasera: 5 krokov
Meranie vzdialenosti pomocou laserov: V tomto projekte som vyrobil jednoduché zariadenie, ktoré dokáže merať vzdialenosť medzi sebou a akýmkoľvek fyzickým objektom. Zariadenie funguje najlepšie na vzdialenosť asi 2 až 4 metre a je pomerne presné
Výroba DPS pomocou farby Photoresist a UV: 7 krokov (s obrázkami)
Výroba dosiek plošných spojov pomocou farby Photoresist a UV: Ako vyrobiť kvalitnú dosku PCBI ospravedlňujúcu sa za fotografie s nízkym rozlíšením, domov dvoch PRO kamier. Oba fotoaparáty, ktoré moja rodina vytiahla z prípravy townpcb, pozostávajú z niekoľkých fáz: 1. Pripravte si počítačový program s programami EAGLE, Sprint-Layout, Prot