- VL6180X Lentoaika (ToF) -etäisyysmittari
- Piirikaavio
- Vaadittavien kirjastojen lisääminen VL6180 ToF -anturille
- Ohjelmointi ja toiminta Selitys
TOF tai lentoaika on yleisesti käytetty menetelmä etäisten kohteiden etäisyyden mittaamiseksi erilaisilla etäisyysmittausantureilla, kuten ultraäänianturilla. Ajan mittaamiseen, jonka hiukkanen, aalto tai esine kuljettaa matkan väliaineen läpi, kutsutaan lentoaikaksi (TOF). Tätä mittausta voidaan sitten käyttää nopeuden tai reitin pituuden laskemiseen. Sitä voidaan käyttää myös oppia väliaineen hiukkasista tai ominaisuuksista, kuten koostumuksesta tai virtausnopeudesta. Matkakohde voidaan tunnistaa suoraan tai epäsuorasti.
Ultraäänimatkan mittauslaitteet ovat yksi varhaisimmista lentoaikaperiaatetta käyttävistä laitteista. Nämä laitteet lähettävät ultraäänipulssin ja mittaavat etäisyyden kiinteään materiaaliin sen ajan perusteella, jonka aalto viipyy takaisin emitteriin. Käytimme ultraäänianturia monissa sovelluksissamme etäisyyden mittaamiseen:
- Arduino- ja ultraäänianturipohjainen etäisyyden mittaus
- Mittaa etäisyys Vadelma Pi- ja HCSR04-ultraäänianturilla
- Kahden etäisyysanturin välisen etäisyyden mittaaminen
Lentoaikamenetelmää voidaan käyttää myös elektronien liikkuvuuden arvioimiseen. Itse asiassa se on suunniteltu matalajohtavien ohutkalvojen mittaamiseen, myöhemmin se sovitettiin tavallisille puolijohteille. Tätä tekniikkaa käytetään orgaanisissa kenttätransistoreissa sekä metalli-dielektriset-metallirakenteissa. Laseri- tai jännitepulssin avulla ylimääräiset varaukset syntyvät.
TOF periaate käytetään mittaamaan välinen etäisyys anturin ja kohteen. Mitataan aika, jonka signaali vie takaisin anturiin esineestä heijastumisen jälkeen, ja sitä käytetään etäisyyden laskemiseen. TOF-periaatteella voidaan käyttää erityyppisiä signaaleja (kantoaaltoja), kuten ääntä, valoa. Kun TOF: ää käytetään etäisyyden löytämiseen, se on erittäin tehokas, kun se antaa enemmän valoa kuin ääntä. Ultraääniin verrattuna se tarjoaa nopeamman lukemisen, suuremman tarkkuuden ja suuremman kantaman, mutta säilyttää edelleen sen pienen painon, pienen koon ja matalan virrankulutuksen ominaisuudet.
Tässä opetusohjelmassa käytämme VL6180X TOF -etäisyysanturia Arduinolla anturin ja kohteen välisen etäisyyden laskemiseksi. Tämä anturi kertoo myös valon voimakkuuden arvon LUX-muodossa.
VL6180X Lentoaika (ToF) -etäisyysmittari
VL6180 eroaa muista etäisyysantureista, koska se mittaa tarkan kellon avulla valon kuluttaman ajan takaisin kaikilta pinnoilta. Tämä antaa VL6180: lle edun muihin antureihin verrattuna, koska se on tarkempi ja immuuni melulle.
VL6180 on 3-in-1-paketti, joka sisältää IR-emitterin, ympäröivän valon anturin ja etäisyysanturin. Se kommunikoi I 2 C -liitännän kautta. Siinä on sisäinen 2.8V-säädin. Joten vaikka liitämme yli 2,8 V: n jännitteen, se siirtyy automaattisesti alas vahingoittamatta levyä. Se mittaa jopa 25 cm: n etäisyyden. Siinä on kaksi ohjelmoitavaa GPIO: ta.
Piirikaavio
Tässä Nokia 5110 LCD -näyttöä käytetään valon tason ja etäisyyden näyttämiseen. Nokia 5110 LCD toimii 3,3 V: n jännitteellä, joten sitä ei voida yhdistää suoraan Arduino Nano -digitaalipintoihin. Joten lisää 10k vastuksia sarjaan datasignaalien kanssa 3,3 V: n johtojen suojaamiseksi 5 V: n digitaalisilta nastoilta. Lisätietoja Nokia 5110 LCD -näytön käytöstä Arduinon kanssa.
VL6180 anturi voidaan kytkeä suoraan Arduino. VL6180: n ja Arduinon välinen tiedonsiirto on I2C. Itse asiassa I2C-yhteyskäytäntö yhdistää SPI: n ja UART: n parhaat ominaisuudet. Täällä voimme liittää useita orjia yhteen isäntään ja meillä voi olla useita isäntiä, jotka ohjaavat yhtä tai useampaa orjaa. Kuten UART-tietoliikenne, I2C käyttää kahta johtoa tiedonsiirtoon SDA (Serial Data) ja SCL (Serial Clock), datalinjaan ja kellolinjaan.
Kytkentäkaavio VL6180 ToF -etäisyysmittarin ja Arduinon yhdistämiseksi on esitetty alla:
- Liitä nestekidenäytön RST-nasta Arduinon nastaan 6 10K-vastuksen kautta.
- Liitä nestekidenäytön CE-nasta Arduinon nastaa 7 10K-vastuksen kautta.
- Liitä nestekidenäytön DC-nasta Arduinon nastaan 5 10K-vastuksen kautta.
- Liitä nestekidenäytön DIN-nasta Arduinon nastaa 4 10K-vastuksen kautta.
- Liitä LCD-näytön CLK-nasta Arduinon nastaa 3 10K-vastuksen kautta.
- Liitä LCD-näytön VCC-nasta Arduinon 3,3 V: n nastaan.
- Liitä nestekidenäytön GND-nasta Arduinon GND: hen.
- Liitä VL6180: n SCL-tappi Arduinon A5-nastaan
- Liitä VL6180: n SDA-tappi Arduinon A4-nastaa
- Liitä VL6180: n VCC-nasta Arduinon 5 V: n nastaan
- Liitä VL6180: n GND-tappi Arduinon GND-nastaan
Vaadittavien kirjastojen lisääminen VL6180 ToF -anturille
Kolme kirjastoa käytetään liitettäessä VL6180-anturi Arduinoon.
1. Adafruit_PCD8544
Adafruit_PCD8544 on yksiväristen Nokia 5110 LCD -näyttöjen kirjasto. Nämä näytöt käyttävät SPI: tä viestintään. Tämän LCD-näytön liittämiseen tarvitaan neljä tai viisi nastaa. Linkki tämän kirjaston lataamiseen on annettu alla:
github.com/adafruit/Adafruit-PCD8544-Nokia-5110-LCD-library/archive/master.zip
2. Adafruit_GFX
Arduinon Adafruit_GFX-kirjasto on LCD-näyttöjen ydingrafiikkakirjasto, joka tarjoaa yhteisen syntaksin ja joukon grafiikan primitiivejä (pisteet, viivat, ympyrät jne.). Se on yhdistettävä laitteistokohtaisen kirjaston kanssa kullekin näyttölaitteelle, jota käytämme (alemman tason toimintojen käsittelemiseksi). Linkki tämän kirjaston lataamiseen on annettu alla:
github.com/adafruit/Adafruit-GFX-Library
3. SparkFun VL6180
SparkFun_VL6180 on Arduino-kirjasto, jossa on VL6180-anturin perustoiminnot. VL6180 koostuu IR-lähettimestä, etäisyysanturista ja ympäristön valoanturista, jotka kommunikoivat I2C-liitännän kautta. Tämän kirjaston avulla voit lukea etäisyyden ja valon ulostulot anturista ja lähettää tiedot sarjayhteyden kautta. Linkki tämän kirjaston lataamiseen on annettu alla:
downloads.arduino.cc/libraries/github.com/sparkfun/SparkFun_VL6180_Sensor-1.1.0.zip
Lisää kaikki kirjastot yksitellen siirtymällä Sketch >> Sisällytä kirjasto >> Lisää.ZIP-kirjasto Arduino IDE -ohjelmaan. Lataa sitten kirjasto, jonka olet ladannut yllä olevista linkeistä.
Joskus sinun ei tarvitse lisätä johto- ja SPI-kirjastoja, mutta jos saat virheilmoituksen, lataa ja lisää ne Arduino IDE -laitteeseesi.
github.com/PaulStoffregen/SPI
github.com/PaulStoffregen/Wire
Ohjelmointi ja toiminta Selitys
Täydellinen koodi toimivalla videolla on tämän opetusohjelman lopussa, tässä selitämme koko ohjelmaa projektin toiminnan ymmärtämiseksi.
Tässä ohjelmassa suurimman osan osista käsittelevät lisäämämme kirjastot, joten sinun ei tarvitse huolehtia siitä.
Että asennus osassa s asettaa siirtonopeus kuin 115200 ja alustaa Wire kirjasto I2C. Tarkista sitten, toimiiko VL6180-anturi oikein vai ei, jos se ei toimi, näytä virheilmoitus.
Seuraavassa osassa asetamme näyttöä, voit muuttaa kontrastin haluamaasi arvoon tässä asetan arvoksi 50
void setup () { Sarja.alku (115200); // Aloita sarja sarja 115200bps Wire.begin (); // Käynnistä I2C-kirjastoviive (100); // viive. if (anturi.VL6180xInit ()! = 0) { Sarja.println ("ALUSTETTU ALUSTAMAAN"); // Alusta laite ja tarkista virheet }; anturi.VL6180xDefautSettings (); // Aloita lataamalla oletusasetukset. viive (1000); // delay 1s display.begin (); // init done // voit muuttaa kontrastia näytön mukauttamiseksi // parhaan katselun varmistamiseksi! display.setContrast (50); display.display (); // näytä splashscreen display.clearDisplay (); }
Määritä tyhjän silmukan osan ohjeet arvojen näyttämiseksi LCD-näytöllä. Tässä näytetään kaksi arvoa, yksi on "Ympäristön valon taso Luxissa" (Yksi lux on itse asiassa yksi lumen neliömetriä kohti) ja toinen on "Etäisyys mitattuna millimetreinä". Jos haluat näyttää erilaisia arvoja LCD-näytöllä, määritä jokaisen tekstin, jonka pitäisi näkyä LCD-näytöllä, sijainti käyttämällä “display.setCursor (0,0);”.
void loop () { display.clearDisplay (); // Hanki ympäröivän valon taso ja raportoi LUX Serial.print -ohjelmassa ("Ympäristön valon taso (Lux) ="); Serial.println (anturi.getAmbientLight (GAIN_1)); display.setTextSize (1); display.setTextColor (MUSTA); display.setCursor (0,0); display.println ("Valon taso"); display.setCursor (0,12); display.println (anturi.getAmbientLight (GAIN_1)); // Hae etäisyys ja ilmoita millimetreinä Serial.print ("Mitattu etäisyys (mm) ="); Serial.println (anturi.getDistance ()); display.setTextSize (1); display.setTextColor (MUSTA); display.setCursor (0, 24); display.println ("Etäisyys (mm) ="); display.setCursor (0, 36); b = anturi.getDistance (); display.println (b); display.display (); viive (500); }
Kun olet ladannut ohjelman, avaa sarjamonitori, ja sen pitäisi näyttää lähtö alla olevan kuvan mukaisesti.
VL6180 TOF -mittareita käytetään älypuhelimissa, kannettavissa kosketusnäyttölaitteissa, tableteissa, kannettavissa tietokoneissa, pelilaitteissa ja kodinkoneissa / teollisuuslaitteissa.
Tässä näytetään ympäristön valaistustaso luksina ja etäisyys millimetreinä.
Löydä koko ohjelma ja esittelyvideo alla. Tarkista myös etäisyyden mittaaminen ultraäänianturilla ja valotaso BH1750-ympäristövaloanturilla.