Obsah:

Výroba diaľkomera pomocou lasera a fotoaparátu: 6 krokov
Výroba diaľkomera pomocou lasera a fotoaparátu: 6 krokov

Video: Výroba diaľkomera pomocou lasera a fotoaparátu: 6 krokov

Video: Výroba diaľkomera pomocou lasera a fotoaparátu: 6 krokov
Video: Emobility - Автоматизация в аккумуляторных технологиях 2024, Jún
Anonim
Výroba diaľkomera pomocou lasera a fotoaparátu
Výroba diaľkomera pomocou lasera a fotoaparátu

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

Stavba laserového a kamerového prípravku
Stavba laserového a kamerového prípravku
Stavba laserového a kamerového prípravku
Stavba laserového a kamerového prípravku
Stavba laserového a kamerového prípravku
Stavba 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

Ovládanie lasera a LCD
Ovládanie lasera a LCD
Ovládanie lasera a LCD
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

Kalibrácia diaľkomeru
Kalibrácia diaľkomeru
Kalibrácia diaľkomeru
Kalibrácia diaľkomeru
Kalibrácia diaľkomeru
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í

Meranie vzdialeností
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:

  1. zapnite laserovú diódu
  2. zachytiť obrázok do pamäte
  3. vypnite laserovú diódu
  4. sledujte laser pomocou filtrov rozsahu HSV
  5. zapíšte výsledný obrázok na disk na účely ladenia
  6. vypočítajte vzdialenosť na základe súradnice y
  7. 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: