- VL6180X lidojuma laika (ToF) diapazona meklētāja sensors
- Ķēdes shēma
- Nepieciešamo bibliotēku pievienošana VL6180 ToF sensoram
- Programmēšana un darba skaidrojums
TOF jeb lidojuma laiks ir bieži izmantota metode, lai izmērītu attālinātu objektu attālumu ar dažādiem attāluma mērīšanas sensoriem, piemēram, ultraskaņas sensoru. Laika mērīšana, kas daļiņai, vilnim vai objektam vajadzīgs, lai nobrauktu attālumu caur barotni, tiek saukts par lidojuma laiku (TOF). Pēc tam šo mērījumu var izmantot ātruma vai ceļa garuma aprēķināšanai. To var izmantot arī, lai uzzinātu par barotnes daļiņām vai īpašībām, piemēram, sastāvu vai plūsmas ātrumu. Ceļojošo objektu var noteikt tieši vai netieši.
Ultraskaņas attāluma mērīšanas ierīces ir vienas no agrākajām ierīcēm, kas izmanto lidojuma laika principu. Šīs ierīces izstaro ultraskaņas impulsu un mēra attālumu līdz cietam materiālam, pamatojoties uz viļņa laiku, lai atgrieztos atpakaļ pie izstarotāja. Lai izmērītu attālumu, daudzās mūsu lietojumprogrammās izmantojām ultraskaņas sensoru:
- Arduino un ultraskaņas sensoru attāluma mērīšana
- Izmēriet attālumu, izmantojot Raspberry Pi un HCSR04 ultraskaņas sensoru
- Kā izmērīt attālumu starp diviem ultraskaņas sensoriem
Lidojuma laika metodi var izmantot arī elektronu mobilitātes novērtēšanai. Faktiski tas tika paredzēts zemu vadītspēju plānu plēvju mērīšanai, vēlāk tas tika pielāgots parastajiem pusvadītājiem. Šo metodi izmanto organiskiem lauka tranzistoriem, kā arī metāla-dielektrisko-metāla konstrukcijām. Izmantojot lāzera vai sprieguma impulsu, rodas liekie lādiņi.
TOF princips tiek izmantots, lai mērītu attālumu starp sensoru un objektu. Tiek mērīts laiks, kāds signālam vajadzīgs, lai atgrieztos pie sensora pēc atstarošanas no objekta, un to izmanto attāluma aprēķināšanai. Ar TOF principu var izmantot dažāda veida signālus (nesējus), piemēram, skaņu, gaismu. Ja diapazonu izmanto TOF, tas ir ļoti spēcīgs, ja izstaro gaismu, nevis skaņu. Salīdzinot ar ultraskaņu, tā nodrošina ātrāku nolasīšanu, lielāku precizitāti un lielāku diapazonu, saglabājot tā zemo svaru, mazo izmēru un zemās enerģijas patēriņa īpašības.
Šajā apmācībā mēs izmantosim VL6180X TOF diapazona meklētāja sensoru ar Arduino, lai aprēķinātu attālumu starp sensoru un objektu. Šis sensors arī norāda gaismas intensitātes vērtību LUX.
VL6180X lidojuma laika (ToF) diapazona meklētāja sensors
VL6180 atšķiras no citiem attāluma sensoriem, jo tas izmanto precīzu pulksteni, lai izmērītu laiku, kas vajadzīgs gaismai, lai atstarotos no jebkuras virsmas. Tas dod VL6180 priekšrocību salīdzinājumā ar citiem sensoriem, jo tas ir precīzāks un neaizsargātāks pret troksni.
VL6180 ir 3-in-1 pakete, kas ietver infrasarkano staru izstarotāju, apkārtējās gaismas sensoru un diapazona sensoru. Tas sazinās, izmantojot I 2 C saskarni. Tam ir borta 2.8V regulators. Tātad, pat ja mēs pievienojam spriegumu, kas lielāks par 2,8 V, tas tiks automātiski pārvietots uz leju, nesabojājot dēli. Tas mēra diapazonu līdz 25 cm. Tajā ir paredzēti divi programmējami GPIO.
Ķēdes shēma
Šeit Nokia 5110 LCD tiek izmantots, lai parādītu apgaismojuma līmeni un attālumu. Nokia 5110 LCD darbojas ar 3,3 V, tāpēc to nevar tieši savienot ar Arduino Nano digitālajām tapām. Tāpēc pievienojiet 10k rezistorus virknē ar datu signāliem, lai aizsargātu 3.3V līnijas no 5V digitālajām tapām. Uzziniet vairāk par Nokia 5110 LCD izmantošanu ar Arduino.
VL6180 Sensoru var tieši savienots ar Arduino. Saziņa starp VL6180 un Arduino ir I2C. Patiesībā I2C sakaru protokols apvieno labākās SPI un UART īpašības. Šeit mēs varam savienot vairākus vergus ar vienu kapteini, un mums var būt vairāki kapteiņi, kas kontrolē vienu vai vairākus vergus. Tāpat kā UART sakari, arī I2C izmanto divus vadus saziņai SDA (sērijas dati) un SCL (sērijas pulkstenis), datu līniju un pulksteņa līniju.
Ķēdes shēma VL6180 ToF diapazona meklētāja sensora savienošanai ar Arduino ir parādīta zemāk:
- Caur 10K rezistoru savienojiet LCD RST tapu ar Arduino 6. kontaktu.
- Caur 10K rezistoru savienojiet LCD CE kontaktu ar Arduino 7. kontaktu.
- Caur 10K rezistoru savienojiet LCD līdzstrāvas tapu ar Arduino 5. kontaktu.
- Caur 10K rezistoru savienojiet LCD DIN kontaktu ar Arduino 4. kontaktu.
- Caur 10K rezistoru savienojiet LCD CLK tapu ar Arduino tapu 3.
- Savienojiet LCD VCC tapu ar Arduino 3,3 V tapu.
- Savienojiet LCD GND tapu ar Arduino GND.
- Pievienojiet VL6180 SCL tapu ar Arduino A5 tapu
- Pievienojiet VDA6180 SDA tapu ar Arduino A4 tapu
- Pievienojiet VL6180 VCC tapu ar Arduino 5V tapu
- Pievienojiet VL6180 GND tapu ar Arduino GND tapu
Nepieciešamo bibliotēku pievienošana VL6180 ToF sensoram
Saskaroties ar VL6180 sensoru ar Arduino, tiks izmantotas trīs bibliotēkas.
1. Adafruit_PCD8544
Adafruit_PCD8544 ir vienkrāsainu Nokia 5110 LCD displeju bibliotēka. Šajos displejos saziņai tiek izmantota SPI. Šī LCD saskarnei ir nepieciešamas četras vai piecas tapas. Saite šīs bibliotēkas lejupielādei ir sniegta zemāk:
github.com/adafruit/Adafruit-PCD8544-Nokia-5110-LCD-library/archive/master.zip
2. Adafruit_GFX
Arduino bibliotēka Adafruit_GFX ir LCD displeju galvenā grafikas bibliotēka, kas nodrošina kopēju sintaksi un grafikas primitīvu kopumu (punkti, līnijas, apļi utt.) Katrai displeja ierīcei, kuru izmantojam (lai apstrādātu zemākā līmeņa funkcijas), tā ir jāapvieno ar aparatūras specifisku bibliotēku. Saite šīs bibliotēkas lejupielādei ir sniegta zemāk:
github.com/adafruit/Adafruit-GFX-Library
3. SparkFun VL6180
SparkFun_VL6180 ir Arduino bibliotēka ar VL6180 sensora pamata funkcionalitāti. VL6180 sastāv no IR izstarotāja, diapazona sensora un apkārtējās gaismas sensora, kas sazinās, izmantojot I2C saskarni. Šī bibliotēka ļauj nolasīt sensora attālumu un gaismas izvadi, kā arī datus izvadīt, izmantojot seriālo savienojumu. Saite šīs bibliotēkas lejupielādei ir sniegta zemāk:
downloads.arduino.cc/libraries/github.com/sparkfun/SparkFun_VL6180_Sensor-1.1.0.zip
Pievienojiet visas bibliotēkas pa vienai, dodoties uz Sketch >> Iekļaut bibliotēku >> Pievienot.ZIP bibliotēku Arduino IDE. Pēc tam augšupielādējiet bibliotēku, kuru lejupielādējāt no iepriekš minētajām saitēm.
Dažreiz jums nebūs jāpievieno vadu un SPI bibliotēkas, bet, ja rodas kļūda, lūdzu, lejupielādējiet un pievienojiet tās savam Arduino IDE.
github.com/PaulStoffregen/SPI
github.com/PaulStoffregen/Wire
Programmēšana un darba skaidrojums
Šīs apmācības beigās ir norādīts pilnīgs kods ar darba video, šeit mēs izskaidrojam visu programmu, lai saprastu projekta darbību.
Šajā programmā lielāko daļu daļu strādā bibliotēkas, kuras pievienojām, tāpēc jums par to nav jāuztraucas.
Jo uzstādīšanas daļa s noteikt bodu likmi par 115200, un inicializēt Wire bibliotēku I2C. Pēc tam pārbaudiet, vai VL6180 sensors darbojas pareizi vai nedarbojas, ja tas nedarbojas, pēc tam parādiet kļūdas ziņojumu.
Nākamajā daļā mēs iestatām displeju. Šeit jūs varat mainīt kontrastu uz vēlamo vērtību. Es to iestatu kā 50
void setup () { Serial.begin (115200); // Sākt sēriju ar ātrumu 115200bps Wire.begin (); // Start I2C bibliotēkas aizkave (100); // kavēšanās. if (sensors.VL6180xInit ()! = 0) { Serial.println ("NEIZDEVĀS INICIATĒT"); // Inicializējiet ierīci un pārbaudiet, vai nav kļūdu }; sensors.VL6180xDefautSettings (); // Lai sāktu, ielādējiet noklusējuma iestatījumus. kavēšanās (1000); // aizkavēt 1s display.begin (); // init done // varat mainīt kontrastu, lai pielāgotu displeju // labākai apskatei! display.setContrast (50); display.display (); // rādīt splashscreen display.clearDisplay (); }
Jo neesošu cilpas daļa uzstādīšanas instrukcijas, lai parādītu vērtības uz LCD ekrāna. Šeit mēs parādām divas vērtības, viena ir “Apkārtējās gaismas līmenis luksos” (viens lukss faktiski ir viens lūmens uz kvadrātmetru laukumu), bet otrs - “Attālums mēra mm”. Lai parādītu dažādas vērtības LCD ekrānā, izmantojiet “display.setCursor (0,0);” definējiet katra teksta pozīciju, kas jāparāda LCD ekrānā.
void loop () { display.clearDisplay (); // Iegūt apkārtējā apgaismojuma līmeni un ziņot LUX Serial.print ("Apkārtējās gaismas līmenis (Lux) ="); Serial.println (sensors.getAmbientLight (GAIN_1)); display.setTextSize (1); display.setTextColor (MELNA); display.setCursor (0,0); display.println ("Gaismas līmenis"); display.setCursor (0,12); display.println (sensors.getAmbientLight (GAIN_1)); // Iegūt attālumu un ziņot mm Serial.print ("Izmērītais attālums (mm) ="); Serial.println (sensors.getDistance ()); display.setTextSize (1); display.setTextColor (BLACK); display.setCursor (0, 24); display.println ("Attālums (mm) ="); display.setCursor (0, 36); b = sensors.getDistance (); display.println (b); display.display (); kavēšanās (500); }
Pēc programmas augšupielādes atveriet sērijveida monitoru, un tam jāparāda izeja, kā parādīts zemāk.
VL6180 TOF diapazona meklētāji tiek izmantoti viedtālruņos, pārnēsājamās skārienekrāna ierīcēs, planšetdatoros, klēpjdatoros, spēļu ierīcēs un sadzīves tehnikā / rūpniecības ierīcēs.
Šeit mēs parādām apkārtējās gaismas līmeni luksos un attālumu mm.
Zemāk atrodiet visu programmu un demonstrācijas video. Pārbaudiet arī to, kā izmērīt attālumu, izmantojot ultraskaņas sensoru un gaismas līmeni, izmantojot apkārtējās gaismas sensoru BH1750.