- VL6180X Senzor za merjenje časa (ToF)
- Shema vezja
- Dodajanje potrebnih knjižnic za senzor ToF VL6180
- Programiranje in delovna razlaga
TOF ali čas leta je pogosto uporabljena metoda za merjenje razdalje oddaljenih predmetov z različnimi senzorji za merjenje razdalje, kot je ultrazvočni senzor. Merjenje časa, ki ga porabi delček, val ali predmet, da prevozi razdaljo skozi medij, se imenuje Čas leta (TOF). To meritev lahko nato uporabimo za izračun hitrosti ali dolžine poti. Uporablja se lahko tudi za spoznavanje delcev ali lastnosti medija, kot sta sestava ali pretok. Potujoči predmet je mogoče zaznati neposredno ali posredno.
Ultrazvočne naprave za merjenje razdalje so ena najzgodnejših naprav, ki uporabljajo načelo časa leta. Te naprave oddajajo ultrazvočni impulz in merijo razdaljo do trdnega materiala glede na čas, ki ga val odbije nazaj do oddajnika. Za merjenje razdalje smo v mnogih aplikacijah uporabljali ultrazvočni senzor:
- Merjenje razdalje na osnovi arduino in ultrazvočnega senzorja
- Izmerite razdaljo z uporabo ultrazvočnega senzorja Raspberry Pi in HCSR04
- Kako izmeriti razdaljo med dvema ultrazvočnimi senzorji
Za oceno gibljivosti elektronov lahko uporabimo tudi metodo časa letenja. Pravzaprav je bil zasnovan za merjenje nizko prevodnih tankih filmov, kasneje pa je bil prilagojen za običajne polprevodnike. Ta tehnika se uporablja za tranzistorje z organskim poljskim učinkom in kovinsko-dielektrično-kovinske konstrukcije. Z uporabo laserja ali napetostnega impulza nastanejo presežni naboji.
Načelo TOF se uporablja za merjenje razdalje med senzorjem in predmetom. Izmeri se čas, potreben signalu, da doseže nazaj do senzorja po odboju od predmeta in se uporabi za izračun razdalje. Z načelom TOF se lahko uporabljajo različne vrste signalov (nosilcev), kot so zvok in svetloba. Ko se TOF uporablja za iskanje dosega, je zelo močan pri oddajanju svetlobe in ne zvoka. V primerjavi z ultrazvokom zagotavlja hitrejše branje, večjo natančnost in večji doseg, pri čemer ohranja nizko težo, majhnost in majhne značilnosti porabe energije.
Tu v tej vadnici bomo za izračun razdalje med senzorjem in objektom uporabili senzor za merjenje razdalje VL6180X TOF z Arduino. Ta senzor sporoča tudi vrednost jakosti svetlobe v LUX.
VL6180X Senzor za merjenje časa (ToF)
VL6180 se razlikuje od drugih senzorjev razdalje, saj z natančno uro meri čas, ki ga svetloba odbije od katere koli površine. To daje VL6180 prednost pred drugimi senzorji, ker je bolj natančen in odporen na hrup.
VL6180 je paket 3 v 1, ki vključuje IR oddajnik, senzor za zunanjo svetlobo in senzor za doseg. Komunicira preko vmesnika I 2 C. Ima vgrajeni regulator 2,8 V. Torej, tudi če priključimo napetost nad 2,8 V, se samodejno premakne navzdol, ne da bi poškodoval ploščo. To meri obseg do 25 cm. V njem sta na voljo dva programabilna GPIO-ja.
Shema vezja
Tu se zaslon Nokia 5110 uporablja za prikaz ravni svetlobe in razdalje. LCD Nokia 5110 deluje pri napetosti 3,3 V, zato ga ni mogoče neposredno povezati z digitalnimi nožicami Arduino Nano. Torej zaporedoma dodajte 10k uporov s podatkovnimi signali, da zaščitite 3,3V linije pred 5V digitalnimi zatiči. Preberite več o uporabi LCD-ja Nokia 5110 z Arduino.
VL6180 Senzor se lahko neposredno priključen na Arduino. Komunikacija med VL6180 in Arduino je I2C. Pravzaprav komunikacijski protokol I2C združuje najboljše lastnosti SPI in UART. Tu lahko povežemo več sužnjev z enim glavnim gonilnikom in imamo lahko več glavnih nadzornikov, ki nadzorujejo enega ali več suženj. Tako kot UART komunikacija tudi I2C uporablja dve žici za komunikacijo SDA (serijski podatki) in SCL (serijska ura), podatkovno linijo in urno linijo.
Shema vezja za povezavo senzorja merilnika razdalje VL6180 ToF z Arduino je prikazana spodaj:
- RST pin LCD priklopite na zatič 6 Arduino prek upora 10K.
- Preko upora 10K povežite CE-pin LCD-ja z zatičem 7 Arduina.
- Priključite enosmerni pin LCD-ja na zatič 5 Arduina prek upora 10K.
- Priključite DIN zatič LCD na zatič 4 Arduino prek upora 10K.
- Preko upora 10K povežite zatič CLK LCD na zatič 3 Arduina.
- Priključite VCC pin LCD na 3.3V pin Arduino.
- Priključite GND pin LCD na GND Arduino.
- Povežite zatič SCL VL6180 z zatičem A5 Arduino
- Povežite zatič SDA VL6180 z zatičem A4 Arduino
- Priključite VCC zatič VL6180 na 5V zatič Arduino
- Povežite zatič GND VL6180 z zatičem GND Arduino
Dodajanje potrebnih knjižnic za senzor ToF VL6180
Za povezovanje senzorja VL6180 z Arduinom bodo uporabljene tri knjižnice.
1. Adafruit_PCD8544
Adafruit_PCD8544 je knjižnica za enobarvne LCD-prikazovalnike Nokia 5110. Ti zasloni uporabljajo SPI za komunikacijo. Za povezavo tega LCD-ja je potrebnih štiri ali pet nožic. Povezava za prenos te knjižnice je navedena spodaj:
github.com/adafruit/Adafruit-PCD8544-Nokia-5110-LCD-library/archive/master.zip
2. Adafruit_GFX
Knjižnica Adafruit_GFX za Arduino je jedro grafične knjižnice za LCD zaslone, ki zagotavlja skupno sintakso in nabor grafičnih primitivov (točke, črte, krogi itd.) Seznaniti ga je treba s knjižnico, specifično za strojno opremo, za vsako prikazno napravo, ki jo uporabljamo (za obdelavo funkcij na nižji ravni). Povezava za prenos te knjižnice je navedena spodaj:
github.com/adafruit/Adafruit-GFX-Library
3. SparkFun VL6180
SparkFun_VL6180 je knjižnica Arduino z osnovno funkcionalnostjo senzorja VL6180. VL6180 je sestavljen iz IR oddajnika, senzorja dosega in senzorja zunanje svetlobe, ki komunicirajo prek vmesnika I2C. Ta knjižnica vam omogoča branje razdalje in izhodov svetlobe s senzorja, podatke pa oddaja prek serijske povezave. Povezava za prenos te knjižnice je navedena spodaj:
downloads.arduino.cc/libraries/github.com/sparkfun/SparkFun_VL6180_Sensor-1.1.0.zip
Dodajte vse knjižnice eno za drugo, tako da odprete Sketch >> Include library >> Dodaj.ZIP knjižnico v Arduino IDE. Nato naložite knjižnico, ki ste jo prenesli z zgornjih povezav.
Včasih vam ne bo treba dodati knjižnic žic in SPI, če pa se prikaže napaka, jih prenesite in dodajte v svoj Arduino IDE.
github.com/PaulStoffregen/SPI
github.com/PaulStoffregen/Wire
Programiranje in delovna razlaga
Popolna koda z delujočim videoposnetkom je podana na koncu te vadnice, tukaj razlagamo celoten program za razumevanje delovanja projekta.
V tem programu večino delov obdelujejo knjižnice, ki smo jih dodali, zato vam tega ni treba skrbeti.
V nastavitvah del je nastavitev hitrosti prenosa kot 115200 in inicializacijo knjižnice Wire za I2C. Nato preverite, ali senzor VL6180 deluje pravilno ali ne, če ne deluje, prikažite sporočilo o napaki.
V naslednjem delu nastavljamo zaslon, lahko spremenite kontrast na želeno vrednost, tukaj ga nastavim na 50
void setup () { Serial.begin (115200); // Začni serijsko pri 115200bps Wire.begin (); // Zaženi zamik knjižnice I2C (100); // zamuda. if (sensor.VL6180xInit ()! = 0) { Serial.println ("NI MOGOČE INITALIZIRATI"); // Inicializacija naprave in preverjanje napak }; sensor.VL6180xDefautSettings (); // Za začetek naložite privzete nastavitve. zamuda (1000); // zamuda 1s display.begin (); // init done // lahko spremenite kontrast naokoli, da prilagodite zaslon // za najboljši ogled! display.setContrast (50); display.display (); // pokaži splashscreen display.clearDisplay (); }
Pri nastavitvi dela praznine zanke navodila za prikaz vrednosti na LCD zaslonu. Tu prikazujemo dve vrednosti, ena je »Raven zunanje svetlobe v luksu« (en luks je dejansko en lumen na kvadratni meter površine), druga pa »Razdalja, merjena v mm«. Za prikaz različnih vrednosti na LCD zaslonu določite položaj vsakega besedila, ki naj se prikaže na LCD zaslonu, z uporabo “display.setCursor (0,0);”.
void loop () { display.clearDisplay (); // Pridobite raven zunanje svetlobe in poročite v LUX Serial.print ("Raven zunanje svetlobe (Lux) ="); Serial.println (sensor.getAmbientLight (GAIN_1)); display.setTextSize (1); display.setTextColor (ČRNA); display.setCursor (0,0); display.println ("Raven svetlobe"); display.setCursor (0,12); display.println (sensor.getAmbientLight (GAIN_1)); // Pridobite razdaljo in poročite v mm Serial.print ("Izmerjena razdalja (mm) ="); Serial.println (sensor.getDistance ()); display.setTextSize (1); display.setTextColor (ČRNA); display.setCursor (0, 24); display.println ("Razdalja (mm) ="); display.setCursor (0, 36); b = sensor.getDistance (); display.println (b); display.display (); zamuda (500); }
Po nalaganju programa odprite serijski monitor in prikazal bo izhod, kot je prikazano spodaj.
Iskalniki dometa VL6180 TOF se uporabljajo v pametnih telefonih, prenosnih napravah na dotik, tabličnih računalnikih, prenosnikih, igralnih napravah in gospodinjskih napravah / industrijskih napravah.
Tu prikazujemo raven svetlobe v luksusu in razdaljo v mm.
Spodaj poiščite celoten program in predstavitveni video. Preverite tudi, kako izmeriti razdaljo z ultrazvočnim senzorjem in nivo svetlobe s senzorjem zunanje svetlobe BH1750.