- VL6180X Skrydžio laiko (ToF) nuotolio ieškiklio jutiklis
- Grandinės schema
- Pridedamos reikalingos VL6180 ToF jutiklio bibliotekos
- Programavimas ir darbo paaiškinimas
TOF arba skrydžio laikas yra dažniausiai naudojamas būdas matuoti tolimų objektų atstumą įvairiais atstumo matavimo jutikliais, tokiais kaip ultragarso jutiklis. Laiko, kurį dalelė, banga ar objektas praeina atstumu per terpę, matavimas vadinamas skrydžio laiku (TOF). Šis matavimas gali būti naudojamas apskaičiuojant greitį ar kelio ilgį. Jis taip pat gali būti naudojamas norint sužinoti apie terpės daleles ar savybes, tokias kaip sudėtis ar srautas. Keliaujantį objektą galima aptikti tiesiogiai arba netiesiogiai.
Ultragarsiniai atstumo matavimo prietaisai yra vieni ankstyviausių prietaisų, naudojančių skrydžio laiko principą. Šie prietaisai skleidžia ultragarso impulsą ir matuoja atstumą iki kietos medžiagos, atsižvelgdami į laiką, per kurį banga grįžta atgal į spinduolį. Norėdami matuoti atstumą, daugelyje mūsų programų naudojome ultragarso jutiklį:
- „Arduino“ ir ultragarsinių jutiklių atstumo matavimas
- Išmatuokite atstumą naudodami Raspberry Pi ir HCSR04 ultragarso jutiklį
- Kaip išmatuoti atstumą tarp dviejų ultragarso jutiklių
Skrydžio laiko metodas taip pat gali būti naudojamas elektronų judrumui įvertinti. Tiesą sakant, jis buvo suprojektuotas mažai laidžių plonų plėvelių matavimui, vėliau buvo pritaikytas įprastiems puslaidininkiams. Ši technika naudojama organiniams lauko tranzistoriams, taip pat metalo-dielektriko-metalo konstrukcijoms. Taikant lazerio ar įtampos impulsą, susidaro pertekliniai krūviai.
TOF principas yra naudojamas išmatuoti atstumą tarp jutiklio ir objekto. Išmatuojamas laikas, per kurį signalas grįžta prie jutiklio, atsispindėjęs nuo objekto, ir jis naudojamas atstumui apskaičiuoti. TOF principu gali būti naudojami įvairūs signalų tipai (nešėjai), pavyzdžiui, garsas, šviesa. Kai TOF naudojamas diapazonui rasti, jis yra labai galingas, kai skleidžia šviesą, o ne garsą. Palyginti su ultragarsu, jis užtikrina greitesnį skaitymą, didesnį tikslumą ir didesnį diapazoną, vis tiek išlaikant mažą svorį, mažą dydį ir mažas energijos sąnaudas.
Čia, šioje pamokoje, naudosime „ VL6180X TOF Range Finder Sensor“ su „Arduino“, kad apskaičiuotume atstumą tarp jutiklio ir objekto. Šis jutiklis taip pat nurodo šviesos intensyvumo vertę LUX.
VL6180X Skrydžio laiko (ToF) nuotolio ieškiklio jutiklis
VL6180 skiriasi nuo kitų atstumo jutiklių, nes jis naudoja tikslų laikrodį, kad matuotų laiką, per kurį šviesa atsispindi nuo bet kokio paviršiaus. Tai suteikia VL6180 pranašumų, palyginti su kitais jutikliais, nes jis yra tikslesnis ir atsparesnis triukšmui.
VL6180 yra „3 viename“ paketas, kuriame yra IR spinduolis, aplinkos šviesos jutiklis ir nuotolio jutiklis. Jis bendrauja per I 2 C sąsają. Jame yra įmontuotas 2,8 V reguliatorius. Taigi, net jei prijungsime didesnę nei 2,8 V įtampą, ji bus automatiškai perjungta žemyn, nepažeidžiant plokštės. Jis matuoja diapazoną iki 25 cm. Jame yra du programuojami GPIO.
Grandinės schema
Čia „ Nokia 5110“ skystųjų kristalų ekranas naudojamas šviesos lygiui ir atstumui rodyti. „Nokia 5110“ skystųjų kristalų ekranas veikia esant 3,3 V įtampai, todėl jo negalima tiesiogiai prijungti prie „Arduino Nano“ skaitmeninių kaiščių. Taigi pridėkite 10k rezistorių nuosekliai su duomenų signalais, kad apsaugotumėte 3,3 V linijas nuo 5 V skaitmeninių kaiščių. Sužinokite daugiau apie „ Nokia 5110 LCD“ naudojimą su „Arduino“.
VL6180 jutiklis gali būti tiesiogiai prijungtas prie Arduino. Ryšys tarp „VL6180“ ir „Arduino“ yra I2C. Tiesą sakant, „I2C“ ryšio protokolas sujungia geriausias SPI ir UART savybes. Čia mes galime prijungti kelis vergus prie vieno šeimininko ir mes galime turėti kelis šeimininkus, valdančius vieną ar kelis vergus. Kaip ir UART ryšys, „I2C“ naudoja du laidus ryšiui SDA (nuoseklūs duomenys) ir SCL (nuoseklus laikrodis), duomenų liniją ir laikrodžio liniją.
Žemiau parodyta VL6180 ToF nuotolio ieškiklio jutiklio su „Arduino“ jungimo schema:
- Per 10K rezistorių prijunkite LCD RST kaištį prie „Arduino“ 6 kaiščio.
- Per 10K rezistorių prijunkite „LCD“ CE kaištį prie „Arduino“ kaiščio 7.
- Per 10K rezistorių prijunkite nuolatinės srovės LCD kaištį prie „Arduino“ 5 kaiščio.
- Per 10K rezistorių prijunkite LCD DIN kaištį prie „Arduino“ 4 kaiščio.
- Prijunkite LCD CLK kaištį prie „Arduino“ 3 kaiščio per 10K rezistorių.
- Prijunkite LCD VCC kaištį prie 3,3 V „Arduino“ kaiščio.
- Prijunkite LCD GND kaištį prie „Arduino“ GND.
- Prijunkite VL6180 SCL kaištį prie „Arduino“ A5 kaiščio
- Prijunkite VL6180 SDA kaištį prie „Arduino“ A4 kaiščio
- Prijunkite VL6180 VCC kaištį prie „Arduino“ 5 V kaiščio
- Prijunkite VL6180 GND kaištį prie „Arduino“ GND kaiščio
Pridedamos reikalingos VL6180 ToF jutiklio bibliotekos
Trys bibliotekos bus naudojamos susiejant VL6180 jutiklį su „Arduino“.
1. „Adafruit_PCD8544“
„Adafruit_PCD8544“ yra nespalvotų „Nokia 5110“ LCD ekranų biblioteka. Šiuose ekranuose bendravimui naudojamas SPI. Norint susieti šį LCD, reikia keturių ar penkių kaiščių. Žemiau pateikiama nuoroda į šios bibliotekos atsisiuntimą:
github.com/adafruit/Adafruit-PCD8544-Nokia-5110-LCD-library/archive/master.zip
2. „Adafruit_GFX“
„Arduino“ „Adafruit_GFX“ biblioteka yra pagrindinė LCD ekranų grafikos biblioteka, teikianti bendrą sintaksę ir grafikos pradmenų rinkinį (taškus, linijas, apskritimus ir kt.). Kiekvienam naudojamam ekrano įrenginiui (norint tvarkyti žemesnio lygio funkcijas), jį reikia susieti su aparatine įranga. Žemiau pateikiama nuoroda į šios bibliotekos atsisiuntimą:
github.com/adafruit/Adafruit-GFX-Library
3. „SparkFun VL6180“
„SparkFun_VL6180“ yra „Arduino“ biblioteka, turinti pagrindinį VL6180 jutiklio funkcionalumą. VL6180 sudaro IR spinduolis, nuotolio jutiklis ir aplinkos šviesos jutiklis, kurie bendrauja per I2C sąsają. Ši biblioteka leidžia nuskaityti jutiklio atstumą ir šviesos spindulius bei duomenis išleisti per nuoseklųjį ryšį. Žemiau pateikiama nuoroda į šios bibliotekos atsisiuntimą:
downloads.arduino.cc/libraries/github.com/sparkfun/SparkFun_VL6180_Sensor-1.1.0.zip
Pridėkite visas bibliotekas po vieną, eidami į „ Sketch >> Include library“ >> Pridėti.ZIP biblioteką „Arduino IDE“. Tada įkelkite biblioteką, kurią atsisiuntėte iš anksčiau pateiktų nuorodų.
Kartais jums nereikės pridėti laidų ir SPI bibliotekų, bet jei gaunate klaidą, atsisiųskite ir pridėkite jas prie „Arduino IDE“.
github.com/PaulStoffregen/SPI
github.com/PaulStoffregen/Wire
Programavimas ir darbo paaiškinimas
Pilnas kodas su darbiniu vaizdo įrašu pateikiamas šios pamokos pabaigoje, čia mes paaiškiname visą programą, kad suprastume projekto darbą.
Šioje programoje daugumą dalių tvarko bibliotekos, kurias pridėjome, todėl jums nereikia dėl to jaudintis.
Į sąrankos dalis -ai nustatyti spartą kaip 115200 inicijuoti ir vielos biblioteka I2C. Tada patikrinkite, ar VL6180 jutiklis veikia tinkamai, ar ne, jei jis neveikia, tada parodykite klaidos pranešimą.
Kitoje dalyje mes nustatome ekraną. Čia galite pakeisti kontrastą iki norimos vertės. Aš jį nustatau kaip 50
negaliojanti sąranka () { Serial.begin (115200); // Pradėti nuoseklų greitį 115200bps Wire.begin (); // Pradėti „I2C“ bibliotekos vėlavimą (100); // delsimas. if (jutiklis.VL6180xInit ()! = 0) { Serial.println ("NEĮVYKDYTA"); // Inicijuoti įrenginį ir patikrinti, ar nėra klaidų }; jutiklis.VL6180xDefautSettings (); // Norėdami pradėti, įkelkite numatytuosius nustatymus. vėlavimas (1000); // atidėkite 1s display.begin (); // init done // galite pakeisti kontrastą, kad pritaikytumėte ekraną // geriausiam žiūrėjimui! display.setContrast (50); display.display (); // rodyti splashscreen display.clearDisplay (); }
Į void loop dalis sąrankos instrukcijas, kad būtų rodomas reikšmes LCD ekrane. Čia pateikiamos dvi vertės: viena yra „Aplinkos šviesos lygis liuksuose“ (vienas liuksas iš tikrųjų yra vienas liumenas kvadratiniam metrui ploto), o antrasis - „Atstumas matuojamas mm“. Norėdami rodyti skirtingas vertes LCD ekrane, naudodami „display.setCursor (0,0);“ nustatykite kiekvieno teksto, kuris turėtų būti rodomas LCD ekrane, padėtį.
void loop () { display.clearDisplay (); // Gauti aplinkos šviesos lygį ir pranešti LUX Serial.print ("Aplinkos šviesos lygis (liuksai) ="); Serial.println (sensor.getAmbientLight (GAIN_1)); display.setTextSize (1); display.setTextColor (JUODA); display.setCursor (0,0); display.println ("Šviesos lygis"); display.setCursor (0,12); display.println (sensor.getAmbientLight (GAIN_1)); // Gauti atstumą ir pranešti mm Serial.print ("Išmatuotas atstumas (mm) ="); Serial.println (jutiklis.getDistance ()); display.setTextSize (1); display.setTextColor (JUODA); display.setCursor (0, 24); display.println ("Atstumas (mm) ="); display.setCursor (0, 36); b = jutiklis.getDistance (); display.println (b); display.display (); vėlavimas (500); }
Įkėlę programą, atidarykite nuoseklųjį monitorių ir jame turėtų būti rodoma išvestis, kaip parodyta žemiau.
„VL6180 TOF“ diapazono ieškikliai naudojami išmaniesiems telefonams, nešiojamiesiems jutiklinio ekrano įrenginiams, planšetiniams kompiuteriams, nešiojamiesiems kompiuteriams, žaidimų įrenginiams ir buitiniams / pramoniniams prietaisams.
Čia mes parodome aplinkos šviesos lygį liuksais ir atstumą mm.
Žemiau rasite visą programą ir demonstracinį vaizdo įrašą. Taip pat patikrinkite, kaip matuoti atstumą naudojant ultragarso jutiklį ir šviesos lygį naudojant BH1750 aplinkos šviesos jutiklį.