VL53L0X: ülitäpne laserkauguseandur

VL53L0X

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?

ToF-i põhimõte (skeem)

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.

ESP8266
Seotud artikkel:
ESP8266: WIFI-moodul Arduinole

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

VL53L0X

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

VL53L0X kiibi skeem

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

VL53L0X on ühendatud 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 ...


Ole esimene kommentaar

Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutab: Miguel Ángel Gatón
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.