Pri nekaterih svojih projektih boste morali meriti razdalje. No, morali bi vedeti, da VL53L0X je naprava, ki omogoča njihovo visoko natančnost. Poleg tega je zaradi majhnosti in nizke cene idealen za vaše projekte, ki jih lahko naredite sami, zlasti za integracijo z Arduino.
Obstaja veliko naprav, ki lahko merijo razdalje, nekatere med njimi so merilniki razdalje, ki temeljijo na ultrazvoku in oddajajo zvok, pri odbijanju s predmetom pa lahko dovolj natančno vedo, kakšna razdalja je. Če pa želite najvišjo natančnost, za to potrebujete merilnik optične razdalje. Ta vrsta merilnih naprav temelji na laserju, kot je primer z VL53L0X.
Kaj je ToF?
Čas leta ali kamera ToF (Time-of-Flight) gre za tehniko merjenja razdalj. Temelji na optiki, ki meri čas, ki je pretekel med oddajanjem svetlobnega žarka in njegovim sprejemom. Lahko so CCD, CMOS senzorji, impulzi pa so lahko infrardeči, laserski itd. Sistem bo sinhroniziran tako, da začne meriti čas ravno takrat, ko se sproži impulz, in ustavi števec, ko prejema odboj od senzorja.
Na ta način razdaljo lahko izračunamo povsem natančno. Potrebno je le dodatno logično vezje, integrirano v čip, za izvajanje izračunov od trenutka sprožitve žarka do njegovega sprejema in s tem določanja razdalje. Načelo je precej enostavno.
Ta vrsta naprave se uporablja v robotika omogočiti robotu ali brezpilotnemu letalu, da se izogne oviram, vedeti, kako daleč so od cilja, zaznati gibanje ali bližino, za avtomobilske senzorje, ki se uporabljajo za različne aplikacije, uvesti elektronski števec, kot je aktuator za Arduino, da nekaj naredi ko zazna določeno bližino predmeta itd.
Kaj je VL53L0X in podatkovni list
El VL53L0X uporablja to načelo za merjenje razdalj z laserskim infrardečim vmesnikom. zadnja generacija. Skupaj s procesorjem, kot je Arduino, je lahko močno orodje za merjenje. Natančneje, čip lahko zajema razdalje med 50 mm in 2000 mm, torej med 5 centimetri in 2 metroma.
Za merjenje bližjih razdalj verjetno potrebujete različico tega čipa, imenovano VL6180X, ki vam omogoča merjenje dosega med 5 in 200 mm, to je med pol centimetra in 20 centimetri. Če želite iz kakršnih koli tehničnih razlogov najti podobno, vendar ultrazvočno napravo, si oglejte HC-SR04, še en dokaj poceni modul, priljubljen pri proizvajalcih.
El VL53L0X čip je bil zasnovan za delujejo tudi, ko je svetloba okolja precej visoka. Upoštevajte, da bo pri optičnem delu večja, kot je svetlobna "onesnaženost" okolja, težje bo ustrezno zajeti odboj signala. Toda v tem primeru ne predstavlja prevelike težave. Poleg tega mu kompenzacijski sistem omogoča merjenje, tudi če ga uporabljate za zaščitnim steklom.
To je eno najboljših senzorjev razdalje ki jih boste našli na trgu. Z veliko večjo natančnostjo kot senzorji na osnovi ultrazvoka ali infrardečega (IR). Razlog za tako natančnost je v tem, da na laser ne bodo vplivali odmevi ali odbojnost predmetov kot v drugih primerih.
Trenutno ga lahko najdete vgrajenega v mule z nekaj dodatka za približno 16 EUR ali v preprostejših krožnikih, dobrih 1 EUR ali 3 EUR, v drugih primerih. Že veste, da ga boste našli v trgovinah, kot so eBay, AliExpress, Amazon itd. Proizvajalci teh naprav so različni, zato je najbolje, da preverite podrobnosti o modelu, ki ste ga kupili podatkovni list proizvajalca ki ste ga izbrali. Na primer:
El VL53L0X V čipu je oddajnik laserskega impulza in senzor za zajem povratnega žarka. V tem primeru je oddajnik laser z valovno dolžino 940 nm in tip VCSEL (Vertical Cavity Surface-Emitting Laser). Kar zadeva senzor za zajemanje, gre za SPAD (Single Photon Avalanche Diodes). Vključuje tudi notranjo elektroniko, imenovano FlightSense ™, ki izračuna razdaljo.
El merilni kot ali FOV (vidno polje) v tem primeru je 25 °. To pomeni območje merjenja s premerom 0,44 m na razdalji 1 m. Čeprav je območje merjenja odvisno od okoliških razmer. Če se to izvaja v zaprtih prostorih, je nekoliko višje, kot če se dela na prostem. Prav tako bo odvisno od odbojnosti predmeta, na katerega kažete:
Ciljna odbojnost | Pogoji | Notranjost | Zunanjost |
---|---|---|---|
Bela tarča | Značilno | 200cm | 80cm |
Mimik | 120cm | 60cm | |
Siva tarča | Značilno | 80cm | 50cm |
Najmanjša | 70cm | 40cm |
Poleg tega ima VL53L0X več načini delovanja to lahko spreminja rezultate. Ti načini so povzeti v naslednji tabeli:
modo | Timing | Doseg | Precision |
---|---|---|---|
Privzeto | 30ms | 1.2m | Glej spodnjo tabelo |
Visoka natančnost | 200ms | 1.2m | + / - 3% |
Dolge razdalje | 33ms | 2m | Glej spodnjo tabelo |
Visoka hitrost | 20ms | 1.2m | + / - 5% |
Glede na te načine jih imamo več standardne in dolgoročne natančnosti kar imate v tej tabeli:
Notranjost | Zunanjost | |||||
---|---|---|---|---|---|---|
Ciljna odbojnost | Oddaljenost | 33ms | 66ms | Oddaljenost | 33ms | 66ms |
Bela tarča | pri 120 cm | 4% | 3% | pri 60 cm | 7% | 6% |
Siva tarča | pri 70 cm | 7% | 6% | pri 40 cm | 12% | 9% |
Pinout in povezava
Da bi vse to delovalo pravilno, potrebujete vmesnik z zunanjim svetom. In to se doseže z nekaterimi zatiči ali povezavami. Pinout VL53L0X je precej preprost, ima le 6 nožic. Za njegovo integracijo z Arduinom je komunikacijo mogoče izvajati prek I2C.
Če ga želite nahraniti, lahko povežite zatiči Torej:
- VCC na 5v iz Arduina
- GND do GND Arduina
- SCL na analogni pin Arduino. Na primer A5
- SDA na drug analogni zatič. Na primer A4
- Zatičev GPI01 in XSHUT trenutno ni treba uporabljati.
Integracija z Arduinom
Kot za številne druge module imate tudi za VL53L0X knjižnice (npr. Tisto za adafruit) razpoložljive kode, ki jo lahko uporabite za delo z nekaterimi funkcijami, ko pišete izvorno kodo za obdelavo vašega projekta v Arduino IDE. Če ste prvič z Arduinom, priporočam naš priročnik za programiranje.
Primer Preprosta koda za merjenje in prikazovanje merilnih vrednosti skozi serijska vrata tako da si ga lahko ogledate z zaslona računalnika, ko imate priključeno ploščo Arduino:
#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); }
V lastni knjižnici Adafruit imate več primerov uporabe, če jo potrebujete ...