Mõnes oma projektis peate mõõtma vahemaid. Noh, sa peaksid teadma, et VL53L0X on seade, mis võimaldab neid väga täpselt mõõta. Lisaks muudab selle väike suurus ja madal hind ideaalseks teie isetegemisprojektide jaoks, eriti Arduinoga integreerimiseks.
Vahemike mõõtmiseks on palju seadmeid, mõned neist on ultraheli põhjal kaugusemõõtjad, mis kiirgavad heli ja objektiga põrgatades võimaldab see piisavalt täpselt teada olemasolevat kaugust. Kuid kui soovite suurimat täpsust, vajate selleks a optilise kauguse mõõtja. Seda tüüpi mõõteseadmed põhineb laseril, nagu VL53L0X puhul.
Mis on ToF?
Lennuaeg või ToF (Time-of-Flight) kaamera see on tehnika, mida kasutatakse kauguste mõõtmiseks. See põhineb optikal, mõõtes valgusvihu kiirguse ja vastuvõtu vahel kulunud aega. Need võivad olla CCD, CMOS andurid ja impulsid võivad olla infrapuna, laser jne. Süsteem sünkroniseeritakse aja mõõtmise alustamiseks just siis, kui impulss käivitub, ja peatab loenduri, kui nad saavad andurilt põrke.
Selles suunas kaugust saab arvutada üsna täpselt. Arvutuste tegemiseks alates valgusvihu tulekust kuni selle vastuvõtmiseni ja seega kauguse määramiseks on vaja ainult kiibi integreeritud täiendavat loogikalülitust. Põhimõte on üsna sirgjooneline.
Seda tüüpi seadmeid kasutatakse robootika võimaldada robotil või droonil takistusi vältida, teada saada, kui kaugel nad sihtmärgist asuvad, tuvastada liikumist või lähedust, erinevate rakenduste jaoks kasutatavate autoandurite jaoks, rakendada elektroonilist arvesti, näiteks Arduino ajam midagi teha kui see tuvastab objekti teatud läheduse jne.
Mis on VL53L0X ja andmeleht
El VL53L0X kasutab seda põhimõtet kauguste mõõtmiseks infrapuna laseriga. viimane põlvkond. Koos protsessoriga, nagu Arduino, võib see olla võimas tööriist mõõtmiseks. Täpsemalt suudab kiip hõivata vahemaid 50–2000 mm, see tähendab 5 sentimeetri ja 2 meetri vahel.
Lähemate vahemaade mõõtmiseks vajate tõenäoliselt selle kiibi varianti VL6180X, mis võimaldab teil mõõta vahemikku 5 kuni 200 mm, see tähendab poole sentimeetri ja 20 sentimeetri vahel. Kui soovite leida sarnast seadet, kuid mis põhineb mingil tehnilisel põhjusel ultrahelil, peaksite vaatama veel ühte üsna odavat moodulite seas populaarset moodulit HC-SR04.
El VL53L0X kiip on loodud selleks töötab ka siis, kui ümbritsev valgus on üsna kõrge. Pidage meeles, et optiliselt töötades on keskkonna suurem valgusreostus, seda keerulisem on signaali põrkumist adekvaatselt tabada. Kuid sel juhul ei tekita see liiga palju probleeme. Lisaks võimaldab selle integreeritav kompensatsioonisüsteem mõõta isegi siis, kui kasutate seda kaitseklaasi taga.
See teeb sellest ühe parimatest kaugusanduritest mille leiate turult. Palju suurema täpsusega kui ultrahelil või infrapunal (IR) põhinevad andurid. Nii täpse olemise põhjus on see, et lasereid ei mõjuta objektide kajad ega peegeldus nagu teistel juhtudel.
Praegu leiate selle integreerituna muuladesse koos lisatasuga umbes 16 euro eest või lihtsamatel plaatidel, mis on veidi üle 1 euro või muudel juhtudel 3 eurot. Teate juba, et leiate selle sellistest poodidest nagu eBay, AliExpress, Amazon jne. Nende seadmete tootjad on erinevad, nii et kui peate teadma ostetud mudeli üksikasju, on kõige parem kontrollida tootja andmeleht mille olete valinud. Näiteks:
El VL53L0X Kiibi sees on laserimpulsi kiirgaja ja andur tagasikiire püüdmiseks. Sellisel juhul on emitter 940 nm lainepikkusega laser ja VCSEL tüüpi (vertikaalset õõnsust pinda emiteeriv laser). Mis puutub püüdmisandurisse, siis see on SPAD (Single Photon Avalanche Diodes). See integreerib ka sisemise elektroonika nimega FlightSenseTM, mis arvutab kauguse.
El mõõtenurk või FOV (vaateväli) see on sel juhul 25º. See tähendab 0,44 m läbimõõduga mõõtmisala 1 m kaugusel. Kuigi mõõtepiirkond sõltub ümbritsevatest tingimustest. Kui seda tehakse siseruumides, on see veidi kõrgem kui õues. See sõltub ka osutatava objekti peegelduvusest:
Sihtpeegelduvus | Tingimused | Interjöör | Värvivalik |
---|---|---|---|
Valge sihtmärk | Tüüpiline | 200cm | 80cm |
Matkima | 120cm | 60cm | |
Hall sihtmärk | Tüüpiline | 80cm | 50cm |
minimo | 70cm | 40cm |
Lisaks on VL53L0X-l mitu töörežiimid mis võib tulemusi varieerida. Need režiimid on kokku võetud järgmises tabelis:
Modo | Ajastamine | Saavuta | Täpsus |
---|---|---|---|
Vaikimisi | 30ms | 1.2m | Vaadake allolevat tabelit |
Suur täpsus | 200ms | 1.2m | +/- 3% |
Pikamaa | 33ms | 2m | Vaadake allolevat tabelit |
Suur kiirus | 20ms | 1.2m | +/- 5% |
Nende režiimide järgi on meil mitu standard- ja pikamaa täpsus mis teil selles tabelis on:
Interjöör | Värvivalik | |||||
---|---|---|---|---|---|---|
Sihtpeegelduvus | Kaugus | 33ms | 66ms | Kaugus | 33ms | 66ms |
Valge sihtmärk | 120cm juures | 4% | 3% | 60cm juures | 7% | 6% |
Hall sihtmärk | 70cm juures | 7% | 6% | 40cm juures | 12% | 9% |
Pinout ja ühendus
Selle kõige nõuetekohaseks toimimiseks on vaja liides välismaailmaga. Ja see saavutatakse mõne tihvti või ühenduse kaudu. VL53L0X kinnitamine on üsna lihtne, sellel on ainult 6 tihvti. Selle integreerimiseks Arduinoga saab suhelda I2C kaudu.
Selle toitmiseks saate seda teha ühendage tihvtid Niisiis:
- VCC kuni 5v Arduinost
- Arduino GND kuni GND
- SCL Arduino analoognõelale. Näiteks A5
- SDA teisele analoognõelale. Näiteks A4
- GPI01 ja XSHUT tihvte ei pea praegu kasutama.
Integreerimine Arduinoga
Nagu paljude teiste moodulite puhul, on ka VL53L0X puhul ka teegid (nt Adafruit) saadaolevast koodist, mida saate kirjutamise ajal kasutada teatud funktsioonidega lähtekood teie projekti käsitlemiseks Arduino IDE-s. Kui olete Arduinoga esimest korda, soovitan meie programmeerimisjuhend.
Näide Lihtne kood mõõtmiste tegemiseks ja mõõteväärtuse kuvamiseks jadapordi kaudu nii et näete seda oma arvutiekraanilt, kui olete ühendatud Arduino pardal:
#include "Adafruit_VL53L0X.h" Adafruit_VL53L0X lox = Adafruit_VL53L0X(); void setup() { Serial.begin(9600); // Iniciar sensor Serial.println("VL53L0X test"); if (!lox.begin()) { Serial.println(F("Error al iniciar VL53L0X")); while(1); } } void loop() { VL53L0X_RangingMeasurementData_t measure; Serial.print("Leyendo sensor... "); lox.rangingTest(&measure, false); // si se pasa true como parametro, muestra por puerto serie datos de debug if (measure.RangeStatus != 4) { Serial.print("Distancia (mm): "); Serial.println(measure.RangeMilliMeter); } else { Serial.println(" Fuera de rango "); } delay(100); }
Adafruit'i enda raamatukogus on vajaduse korral rohkem näiteid kasutamisest ...