Sisällysluettelo:

Etäisyysmittarin tekeminen laserin ja kameran avulla: 6 vaihetta
Etäisyysmittarin tekeminen laserin ja kameran avulla: 6 vaihetta

Video: Etäisyysmittarin tekeminen laserin ja kameran avulla: 6 vaihetta

Video: Etäisyysmittarin tekeminen laserin ja kameran avulla: 6 vaihetta
Video: Deti-detik pesawat jatuh 2024, Marraskuu
Anonim
Etäisyysmittarin tekeminen laserin ja kameran avulla
Etäisyysmittarin tekeminen laserin ja kameran avulla

Suunnittelen parhaillaan sisätöitä ensi keväänä, mutta kun hankin juuri vanhan talon, minulla ei ole mitään talosuunnitelmaa. Aloin mitata etäisyyksiä seinästä seinään viivaimella, mutta se on hidas ja altis virheille. Ajattelin ostaa etäisyysmittarin prosessin helpottamiseksi, mutta sitten löysin vanhan artikkelin oman etäisyysmittarin rakentamisesta laserin ja kameran avulla. Kuten käy ilmi, minulla on nämä komponentit työpajassani.

Projekti perustuu tähän artikkeliin:

Ainoa ero on, että aion rakentaa etäisyysmittarin käyttämällä Raspberry Pi Zero W: tä, nestekidenäyttöä ja Raspberry Pi Camera -moduulia. Käytän myös OpenCV: tä laserin seurantaan.

Oletan, että olet teknisesti taitava ja että olet mukava käyttää Pythonia ja komentoriviä. Tässä projektissa käytän Pi: tä päättömässä tilassa.

Aloitetaan!

Vaihe 1: Materiaaliluettelo

Tätä projektia varten tarvitset:

  • halpa 6 mm 5 mW laser
  • 220 Ω vastus
  • 2N2222A -transistori tai vastaava
  • Raspberry Pi Zero W
  • Raspberry Pi -kamera v2
  • Nokia 5110 LCD -näyttö tai vastaava
  • joitakin hyppyjohtoja ja pieni leipälauta

Tulostin 3D -tulostimella jigin, joka auttoi minua kokeiden aikana. Aion myös käyttää 3D -tulostinta rakentaaksesi täydellisen kotelon etäisyysmittarille. Voit täysin ilman.

Vaihe 2: Laser- ja kameratyökalun rakentaminen

Laser- ja kamerajigin rakentaminen
Laser- ja kamerajigin rakentaminen
Laser- ja kamerajigin rakentaminen
Laser- ja kamerajigin rakentaminen
Laser- ja kamerajigin rakentaminen
Laser- ja kamerajigin rakentaminen

Järjestelmä ottaa kiinteän etäisyyden kameran linssin ja laserlähdön välillä. Testien helpottamiseksi tulostin jigin, johon voin asentaa kameran, laserin ja pienen ajopiirin laserille.

Käytin kameramoduulin mittoja rakentaaksesi kameran telineen. Käytin mittauksissa pääasiassa digitaalista jarrusatulaa ja tarkkuusviivainta. Laseria varten tein 6 mm: n reiän, jossa oli hieman vahvistusta, jotta laser ei liiku. Yritin pitää tarpeeksi tilaa, jotta jigin takaosaan kiinnitettiin pieni leipälauta.

Käytin Tinkercadia rakentamiseen, malli löytyy täältä:

Laserlinssin keskikohdan ja kameran linssin keskipisteen välillä on 3,75 cm: n etäisyys.

Vaihe 3: Laserin ja nestekidenäytön käyttäminen

Laserin ja nestekidenäytön käyttö
Laserin ja nestekidenäytön käyttö
Laserin ja nestekidenäytön käyttö
Laserin ja nestekidenäytön käyttö

Seurain tätä opetusohjelmaa https://www.algissalys.com/how-to/nokia-5110-lcd-on-raspberry-pi ajaakseni nestekidenäyttöä Raspberry Pi Zero -laitteen kanssa. Tiedoston /boot/config.txt muokkaamisen sijaan voit ottaa SPI-käyttöliittymän käyttöön sudo raspi-config -sovelluksella komentorivin kautta.

Käytän Raspberry Pi Zerota päättömässä tilassa käyttäen viimeisintä, Raspbian Stretchia. En kata asennusta tässä Instructable-ohjelmassa, mutta voit seurata tätä opasta: https://medium.com/@danidudas/install-raspbian-jessie-lite-and-setup-wi-fi-without-access-to- command-line-or-using-the-network-97f065af722e

Saadaksesi kirkkaan laserpisteen käytän Pi: n 5V -kiskoa. Tätä varten käytän transistoria (2N2222a tai vastaava) ajamaan laseria GPIO: n avulla. 220 Ω: n vastus transistorin pohjassa sallii riittävän virran laserin läpi. Käytän RPi. GPIO: ta Pi GPIO: n käsittelyyn. Yhdistin transistorin pohjan GPIO22 -nastaan (15. nasta), lähettimen maahan ja keräimen laserdiodiin.

Älä unohda ottaa kameran käyttöliittymää käyttöön sudo raspi-config -sovelluksella komentorivin kautta.

Voit testata asetuksiasi tällä koodilla:

Jos kaikki meni hyvin, sinulla pitäisi olla dot-j.webp

Koodissa asetamme kameran ja GPIO: n, otamme laserin käyttöön, otamme kuvan ja poistamme laserin käytöstä. Kun käytän Pi: tä päättömässä tilassa, minun on kopioitava kuvat Pi: stä tietokoneelleni ennen niiden näyttämistä.

Tässä vaiheessa laitteistosi on määritettävä.

Vaihe 4: Laserin tunnistaminen OpenCV: n avulla

Ensinnäkin meidän on asennettava OpenCV Pi: hen. Sinulla on periaatteessa kolme tapaa tehdä se. Voit joko asentaa vanhan pakatun version apt. Voit kääntää haluamasi version, mutta tässä tapauksessa asennusaika voi olla jopa 15 tuntia ja suurin osa todellisesta kokoamisesta. Tai suosittelemani lähestymistapa, voit käyttää kolmannen osapuolen tarjoamaa Pi Zeron valmiiksi koottua versiota.

Koska se on yksinkertaisempaa ja nopeampaa, käytin kolmannen osapuolen pakettia. Löydät asennusvaiheet tästä artikkelista: https://yoursunny.com/t/2018/install-OpenCV3-PiZero/ Kokeilin monia muita lähteitä, mutta niiden paketit eivät olleet ajan tasalla.

Voit seurata laserosoitinta päivittämällä koodin osoitteesta https://github.com/bradmontgomery/python-laser-tracker, jotta voin käyttää Pi-kameramoduulia USB-laitteen sijaan. Voit käyttää koodia suoraan, jos sinulla ei ole Pi -kameramoduulia ja haluat käyttää USB -kameraa.

Löydät koko koodin täältä:

Tämän koodin suorittamiseksi sinun on asennettava Python -paketit: tyyny ja picamera (sudo pip3 asenna tyyny picamera).

Vaihe 5: Etäisyysmittarin kalibrointi

Etäisyysmittarin kalibrointi
Etäisyysmittarin kalibrointi
Etäisyysmittarin kalibrointi
Etäisyysmittarin kalibrointi
Etäisyysmittarin kalibrointi
Etäisyysmittarin kalibrointi

Alkuperäisessä artikkelissa kirjoittaja suunnitteli kalibrointimenettelyn saadakseen tarvittavat parametrit y -koordinaattien muuttamiseksi todelliseksi etäisyydeksi. Käytin olohuoneen pöytää kalibrointeihin ja vanhaan voimakappaleeseen. Merkitsin noin 10 cm: n välein x- ja y -koordinaatit laskentataulukkoon: https://docs.google.com/spreadsheets/d/1OTGu09GLAt… Varmistaakseni, että kaikki toimi oikein, tarkistin otetut kuvat joka vaiheessa. laseria seurattiin oikein. Jos käytät vihreää laseria tai jos laseria ei seurata oikein, sinun on säädettävä ohjelman sävyä, kylläisyyttä ja arvoa vastaavasti.

Kun mittausvaihe on suoritettu, on aika todella laskea parametrit. Kirjoittajan tavoin käytin lineaarista regressiota; itse asiassa Google -laskentataulukko teki työn puolestani. Käytin sitten näitä parametreja uudelleen arvioidun etäisyyden laskemiseen ja tarkistin sen todellisen etäisyyden suhteen.

Nyt on aika syöttää parametrit etäisyysmittausohjelmaan etäisyyksien mittaamiseksi.

Vaihe 6: Etäisyyksien mittaaminen

Etäisyyksien mittaaminen
Etäisyyksien mittaaminen

Koodissa: https://gist.github.com/kevinlebrun/e767a46855e5fd501d820e1c5fcc527c Päivitin muuttujat HEIGHT, GAIN ja OFFSET kalibrointimittausten mukaan. Arvioin etäisyyden alkuperäisen artikkelin etäisyyskaavalla ja tulostin etäisyyden LCD -näytön avulla.

Koodi määrittää ensin kameran ja GPIO: n, sitten haluamme sytyttää nestekidenäytön taustavalon, jotta mittaukset näkyvät paremmin. LCD -tulo on kytketty GPIO14: een. Noin 5 sekunnin välein teemme:

  1. ota laserdiodi käyttöön
  2. tallentaa kuvan muistiin
  3. poista laserdiodi käytöstä
  4. seurata laseria HSV -alueen suodattimien avulla
  5. kirjoita tuloksena oleva kuva levylle virheenkorjausta varten
  6. laske etäisyys y -koordinaatin perusteella
  7. kirjoita etäisyys LCD -näyttöön.

Tapahtuma kuitenkin, toimenpiteet ovat erittäin tarkkoja ja riittävän tarkkoja käyttötapaukselleni, paljon parannettavaa. Esimerkiksi laserpiste on erittäin huonolaatuinen eikä laserlinja ole oikeastaan keskitetty. Paremman laadun laserilla kalibrointivaiheet ovat tarkempia. Jopa kamera ei ole oikein sijoitettu jigini, se kallistuu pohjaan.

Voin myös lisätä etäisyysmittarin resoluutiota kääntämällä kameraa 90 astetta täysillä ja nostaa tarkkuuden kameran tukemaan maksimirajaan. Nykyisellä toteutuksella olemme rajoittuneet 0–384 pikselin alueelle, ja voimme nostaa ylärajan 1640: een, 4 -kertaiseksi nykyiseen resoluutioon. Etäisyys on vielä tarkempi.

Jatkotoimina minun on työskenneltävä edellä mainittujen tarkkuusparannusten parissa ja rakennettava etäisyysmittarin kotelo. Kotelon on oltava syvä, jotta seinästä seinään mittaaminen on helppoa.

Kaiken kaikkiaan nykyinen järjestelmä riittää minulle ja säästää rahaa, kun teen kotisuunnitelmani!

Suositeltava: