ESP32 Met VL53L0X Realiseert IoT-voertuig voor kunstmatige intelligentie
Belangrijkste kenmerken van de VL53L0X-chip:
1.Volledig geïntegreerde miniatuurmodule
-
940nm laser VCSEL
-
VCSEL-stuurprogramma
-
Afstandsmetingssensor met geavanceerde ingebouwde microcontroller
-
4.4mmx2.4mmx1.0mm
-
Snelle en nauwkeurige afstandsmeting
-
Meet absolute afstanden tot 2m
-
Gerapporteerde afstanden worden niet beïnvloed door de reflectiviteit van het doel
-
Werkt in omgevingen met veel infrarood licht
-
Geavanceerde ingebouwde optische overspraakcompensatie om het ontwerp van de glazen behuizing te vereenvoudigen.
2.Menselijk Oog Veiligheid
- Klasse 1 laserapparatuur in overeenstemming met de nieuwste norm IEC 60825-1:2014 (3e editie)
3.Gemakkelijk te integreren
-
Hervormbare componenten
-
Geen extra optiek vereist
-
Enkele voeding
-
I2C-interface voor apparaatbesturing en gegevensoverdracht
-
Xshutdown en onderbreek GPIO's
-
Bedrijfsspanning: 3.3V/5V
4.Parameters van VL53L0X:
-
Productgrootte: 4,4 mm × 2,4 mm × 1,0 mm
-
Afstand meetbereik: 30 ~ 2000mm
-
Nauwkeurigheid afstandsmeting: ±5% (hoge snelheidsmodus), ±3% (hoge nauwkeurigheidsmodus)
-
Meettijd (min): 20 ms (hoge snelheidsmodus), 200 ms (hoge precisiemodus)
-
Bereikhoek: 25
-
Laser golflengte: 940nm
-
Bedrijfstemperatuur: -20 ~ 70°C
De VL53L0X-sensor biedt 3 meetmodi
-
Enkele meetmodus: In deze meetmodus voert een enkele trigger slechts één afstandsmeting uit, en nadat de meting is voltooid, keert de VL53L0X-sensor terug naar stand-by en wacht op de volgende trigger.
-
Continue meetmodus: In deze modus wordt de afstandsmeting continu uitgevoerd. Wanneer de ene meting is voltooid, wordt de volgende onmiddellijk gestart en moet de gebruiker de afstandsmeting stoppen om terug te keren naar de standby-modus. De laatste meting is voltooid voordat wordt gestopt.
-
Getimede meetmodus: Deze modus is eigenlijk een continue meetmodus met gespecificeerde tijdsintervallen. Wanneer een meting is voltooid, wordt de volgende meting gestart na een door de gebruiker gedefinieerde vertragingstijd. De gebruiker moet stoppen met het bereik om terug te keren naar stand-by, en de laatste meting is voltooid voordat hij stopt.
De VL53L0X-sensor biedt ook 4 verschillende nauwkeurigheidsmodi:
Precisie modus
|
MeettijdBudget Bereik (ms)
|
Bereikafstand (m)
|
Typische toepassingsscenario's
|
standaard
|
30
|
1.2
|
standaard
|
hoge precisie
|
200
|
1.2 (nauwkeurigheid <± 3%)
|
Nauwkeurige meting
|
lange afstand
|
33
|
2
|
Lange afstand, alleen voor donkere omstandigheden zonder infrarood
|
hoge snelheid
|
20
|
1.2 (nauwkeurigheid <
± 5%)
|
Hoge snelheid, precisie is geen prioriteit
|
Koppel | Beschrijving |
VCC | Positieve voeding (3.3V/5V voedingsinvoer) |
GND | Kracht Aarde |
Zevende-dags Adventisten | I2C Gegevenspin |
SCL | I2C klokpin |
GESLOTEN | Pin, Aansluitbaar op IO-poort |
INT | Uitgangspin onderbreken, aansluitbaar op IO-poort |
Laserafstandmeetmodule | ESP32-module |
VCC | +5V |
GND | GND |
Zevende-dags Adventisten | P21 |
SCL | P22 |
Specifiek Operationeel Proces
-
Open het bibliotheekbeheerpaneel van de Arduino IDE, voer VL53L0X in het zoekvak in en kies vervolgens om de Adafruit_VL53L0X-bibliotheek te installeren, zoals hieronder weergegeven.
-
De volgende stap is om te kijken naar een eenvoudig sjabloonprogramma voor de enkele meetmodus. Dit wordt hieronder weergegeven: ESP32 met VL53L0X realiseert IoT Artificial Intelligence Vehicle - eenvoudig sjabloonprogramma
Zoals u in de bovenstaande code kunt zien, zijn deze stappen vereist om een enkele meting van de laserafstandsmeetmodule uit te voeren:
(1) Maak een exemplaar van het Adafruit_VL53L0X-object
Adafruit_VL53L0X lox = Adafruit_VL53L0X();
Roep de methode begin() aan om de initialisatie van de laserafstandsmeetmodule te voltooien
(3) Maak een exemplaar van de VL53L0X_RangingMeasurementData_t-structuur die de meetresultaten opslaat.
(4) Roep de methode variërendTest() aan om een meting te voltooien.
(5) Het RangeStatus-attribuut van het meetresultaatobject geeft de status van het meetresultaat aan, en de waarde van het RangeMilliMeter-attribuut is de gemeten afstand (in millimeters).
Voor continue meting is het verschil met de bovenstaande enkele meting dat u na het aanroepen van begin() om de initialisatie van de module te voltooien, de startRangeContinuous()-methode moet aanroepen om de laserafstandsmeetmodule naar de continue meetmodus te schakelen. Het verschil bij het lezen van gegevens is dat u de isRangeComplete()-methode gebruikt om te bepalen of de laserbereikmodule een meting heeft voltooid en vervolgens de readRange()-methode om de resultaten van de meting te lezen. De programmasjabloon wordt hieronder weergegeven: ESP32 met VL53L0X realiseert IoT kunstmatige intelligentie Voertuig - continue meting