In sommige van u projekte het u die afstand nodig om te meet. Wel, u moet weet dat die VL53L0X is 'n toestel waarmee u dit met hoë presisie kan meet. Daarbenewens maak die klein grootte en die lae prys dit ideaal vir u DIY-projekte, veral om met Arduino te integreer.
Daar is baie toestelle wat afstande kan meet, sommige is afstandmeters gebaseer op ultraklank wat 'n geluid uitstraal en wanneer dit met die voorwerp bons, kan dit die afstand wat daar is, met genoeg presisie ken. Maar as u die hoogste presisie wil hê, benodig u a optiese afstandmeter. Hierdie tipe meettoestelle is gebaseer op laser, soos die geval is met die VL53L0X.
Index
Wat is die ToF?
Time of Flight of ToF (Time-of-Flight) kamera dit is 'n tegniek wat gebruik word om afstande te meet. Dit is gebaseer op optika en meet die tyd wat verloop het tussen die emissie van 'n ligstraal en die ontvangs daarvan. Dit kan CCD-, CMOS-sensors wees, en die pulse kan infrarooi, laser, ens. Die stelsel sal gesinchroniseer word om die tydmeting te begin net wanneer die pols geaktiveer word en die teller te stop wanneer hulle die weiering deur die sensor ontvang.
Op daardie manier afstand kan redelik akkuraat bereken word. Daar is slegs 'n bykomende logiese stroombaan nodig wat in die skyfie geïntegreer is om die berekeninge uit te voer vanaf die oomblik dat die balk afgevuur word totdat dit ontvang is en sodoende te bepaal wat die afstand is. Die beginsel is redelik eenvoudig.
Hierdie tipe toestel word gebruik in robotika om die robot of hommeltuig toe te laat om hindernisse te vermy, om te weet hoe ver dit van 'n teiken af is, om beweging of nabyheid op te spoor, vir motorsensors wat vir verskillende toepassings gebruik word, om 'n elektroniese meter soos 'n aandrywer te implementeer, sodat Arduino iets doen wanneer dit bespeur sekere nabyheid van 'n voorwerp, ens.
Wat is die VL53L0X en die datablad
El VL53L0X gebruik hierdie beginsel om afstande met laser-infrarooi te meet. laaste geslag. Saam met 'n verwerker, soos Arduino, kan dit 'n kragtige instrument wees om te meet. Spesifiek, die chip kan afstande vang tussen 50mm en 2000mm, dit wil sê tussen 5 sentimeter en 2 meter.
Om nader afstande te meet, benodig u waarskynlik 'n variant van hierdie chip genaamd VL6180X waarmee u 'n reikafstand van tussen 5 en 200 mm kan meet, dit wil sê tussen 'n halwe sentimeter en 20 sentimeter. As u om enige tegniese rede 'n soortgelyke, maar ultraklank-gebaseerde toestel wil vind, moet u na die HC-SR04 kyk, 'n ander redelik goedkoop module wat gewild is onder vervaardigers.
El VL53L0X-skyfie is ontwerp om werk selfs as die omgevingslig redelik hoog is. Hou in gedagte dat wanneer opties gewerk word, hoe groter die ligte "besoedeling" van die omgewing is, hoe moeiliker sal die weiering van die sein voldoende wees. Maar in hierdie geval bied dit nie te veel probleme nie. Daarbenewens kan die vergoedingstelsel waarmee dit geïntegreer word, meet, selfs as u dit agter die beskermende glas gebruik.
Dit maak dit een van die beste afstandsensors wat u in die mark sal vind. Met 'n baie hoër presisie as sensors gebaseer op ultraklank of infrarooi (IR). Die rede waarom ons so presies is, is dat die laser nie beïnvloed sal word deur eggo's of weerkaatsing van voorwerpe soos in die ander gevalle nie.
Tans kan u dit vir ongeveer € 16 in muilezels geïntegreer kry, of in ander gevalle in eenvoudiger borde van net meer as € 1 of € 3. U weet reeds dat u dit in winkels soos eBay, AliExpress, Amazon, ens. Die vervaardigers van hierdie toestelle is uiteenlopend, dus as u die besonderhede van die gekoopte model moet ken, is dit die beste om dit na te gaan die vervaardiger se datablad wat u gekies het. Byvoorbeeld:
El VL53L0X Dit bevat die emitter van die laserpuls en die sensor om die terugkeerstraal vas te vang. In hierdie geval is die emitter 'n 940nm golflengte laser en VCSEL tipe (Vertical Cavity Surface-Emitting Laser). Wat die vangsensor betref, dit is 'n SPAD (Single Photon Avalanche Diodes). Dit integreer ook 'n interne elektronika genaamd FlightSenseTM wat die afstand sal bereken.
El meethoek of FOV (gesigsveld) dit is 25º in hierdie geval. Dit kom neer op 'n meetoppervlak van 0,44 m in deursnee op 'n afstand van 1 m. Alhoewel die meetbereik afhang van die omliggende toestande. As dit binnenshuis gedoen word, is dit 'n bietjie hoër as wanneer dit buitenshuis gedoen word. Dit hang ook af van die weerkaatsing van die voorwerp waarop u wys:
Teikenweerkaatsing | Voorwaardes | Binne | Buite |
---|---|---|---|
Wit teiken | tipiese | 200cm | 80cm |
Naboots | 120cm | 60cm | |
Grys teiken | tipiese | 80cm | 50cm |
minimum | 70cm | 40cm |
Daarbenewens het die VL53L0X verskeie werkswyses dit kan die resultate verskil. Hierdie modusse word in die volgende tabel saamgevat:
modo | Tydsberekening | omvang | presisie |
---|---|---|---|
deur verstek | 30ms | 1.2m | Sien die tabel hieronder |
Hoë presisie | 200ms | 1.2m | + / - 3% |
Langafstand | 33ms | 2m | Sien die tabel hieronder |
Hoë spoed | 20ms | 1.2m | + / - 5% |
Volgens hierdie modusse het ons 'n paar standaard- en langafstand-akkuraathede wat u in hierdie tabel het:
Binne | Buite | |||||
---|---|---|---|---|---|---|
Teikenweerkaatsing | Afstand | 33ms | 66ms | Afstand | 33ms | 66ms |
Wit teiken | 'n 120 cm | 4% | 3% | 'n 60 cm | 7% | 6% |
Grys teiken | 'n 70 cm | 7% | 6% | 'n 40 cm | 12% | 9% |
Pinout en verbinding
Om alles reg te laat werk, is dit nodig 'n koppelvlak met die buitewêreld. En dit word bereik deur enkele penne of verbindings. Die uitskakeling van die VL53L0X is redelik eenvoudig, hy het net 6 penne. Vir die integrasie met Arduino kan kommunikasie deur I2C gedoen word.
Om dit te voed, kan u verbind penne Dus:
- VCC na 5v vanaf Arduino
- GND tot GND van Arduino
- SCL na 'n analoog Arduino-pen. Byvoorbeeld A5
- SDA na 'n ander analoogpen. Byvoorbeeld A4
- Die GPI01- en XSHUT-penne hoef nie tans gebruik te word nie.
Integrasie met Arduino
Soos vir baie ander modules, het u ook biblioteke vir die VL53L0X (bv. Die een vir Adafruit) beskikbare kode wat u kan gebruik om met sekere funksies te werk as u skryf die bronkode om u projek in Arduino IDE te hanteer. As dit u eerste keer met Arduino is, beveel ek aan ons programmeringshandleiding.
'N Voorbeeld van Eenvoudige kode waarmee u metings kan meet en meetwaarde deur die seriële poort kan vertoon sodat u dit vanaf u rekenaarskerm kan sien terwyl u die Arduino-bord gekoppel het:
#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); }
In Adafruit se eie biblioteek het u meer voorbeelde van gebruik as u dit nodig het ...
Wees die eerste om te kommentaar lewer