L'ESP32 avec VL53L0X réalise un véhicule d'intelligence artificielle IoT
Caractéristiques clés de la puce VL53L0X :
1.Module miniature entièrement intégré
-
laser VCSEL 940nm
-
driver VCSEL
-
Capteur de mesure de distance avec microcontrôleur intégré avancé
-
4.4mmx2.4mmx1.0mm
-
Mesure de distance rapide et précise
-
Mesure des distances absolues jusqu'à 2m
-
Les distances signalées ne sont pas affectées par la réflectivité de la cible
-
Fonctionne dans des environnements de lumière infrarouge élevée
-
Compensation de diaphonie optique intégrée avancée pour simplifier la conception du boîtier en verre.
2.Sécurité de l'œil humain
- Équipement laser de classe 1 conforme à la dernière norme IEC 60825-1:2014 (3ème édition)
3.Facile à intégrer
-
Composants reflowables
-
Aucune optique supplémentaire requise
-
Alimentation électrique unique
-
Interface I2C pour le contrôle des appareils et le transfert de données
-
Xarrêt et interruption des GPIO
-
Tension de fonctionnement : 3,3V/5V
4.Paramètres de VL53L0X :
-
Taille du produit : 4,4 mm × 2,4 mm × 1,0 mm
-
Plage de mesure de distance : 30 ~ 2000 mm
-
Précision de mesure de distance : ±5 % (mode haute vitesse), ±3 % (mode haute précision)
-
Temps de mesure (min) : 20 ms (mode haute vitesse), 200 ms (mode haute précision)
-
Angle de portée : 25
-
Longueur d'onde du laser : 940 nm
-
Température de fonctionnement : -20 ~ 70°C
Le capteur VL53L0X offre 3 modes de mesure
-
Mode de mesure unique : dans ce mode de mesure, un seul déclencheur effectue une seule mesure de distance, et une fois la mesure terminée, le capteur VL53L0X reviendra en veille et attendra le prochain déclencheur.
-
Mode de mesure continue : Dans ce mode, la mesure de distance est exécutée de manière continue. Lorsqu'une mesure est terminée, la suivante démarre immédiatement et l'utilisateur doit arrêter la mesure de distance pour revenir en mode veille, la dernière mesure est terminée avant de s'arrêter.
-
Mode de mesure chronométré : Ce mode est en fait un mode de mesure continu avec des intervalles de temps spécifiés. Lorsqu'une mesure est terminée, la mesure suivante est lancée après un délai défini par l'utilisateur. L'utilisateur doit arrêter la télémétrie pour revenir en veille, et la dernière mesure est terminée avant l'arrêt.
Le capteur VL53L0X propose également 4 modes de précision différents :
Mode de précision
|
Plage de budget de temps de mesure (ms)
|
Distance de portée (m)
|
Scénarios d'application typiques
|
défaut
|
30
|
1.2
|
standard
|
haute précision
|
200
|
1,2 (précision <± 3%)
|
Mesure précise
|
longue distance
|
33
|
2
|
Longue distance, uniquement dans l'obscurité, sans conditions infrarouges
|
haute vitesse
|
20
|
1.2 (précision <
± 5%)
|
Haute vitesse, la précision n'est pas une priorité
|
Interface | Description |
CCV | Alimentation Positive (Entrée d'alimentation 3.3V/5V) |
GND | Terre de puissance |
Adventiste du Septième Jour | Broche de données I2C |
SCL | Broche d'horloge I2C |
FERMER | Broche, connectable au port IO |
INT | Broche de sortie d'interruption, connectable au port IO |
Module de mesure de distance laser | Module ESP32 |
CCV | +5V |
GND | GND |
Adventiste du Septième Jour | P21 |
SCL | P22 |
Processus d'Opération Spécifique
-
Ouvrez le panneau de gestion de la bibliothèque de l'IDE Arduino, saisissez VL53L0X dans la zone de recherche, puis choisissez d'installer la bibliothèque Adafruit_VL53L0X, comme indiqué ci-dessous.
-
L'étape suivante consiste à examiner un programme modèle simple pour le mode de mesure unique. Ceci est illustré ci-dessous : ESP32 avec VL53L0X réalise un véhicule d'intelligence artificielle IoT - programme modèle simple
Comme vous pouvez le voir dans le code ci-dessus, ces étapes sont nécessaires pour effectuer une seule mesure du module de mesure de distance laser :
(1) Créer une instance de l'objet Adafruit_VL53L0X
Adafruit_VL53L0X lox = Adafruit_VL53L0X();
Appelez la méthode Begin() pour terminer l'initialisation du module de mesure de distance laser
(3) Créez une instance de la structure VL53L0X_RangingMeasurementData_t qui enregistre les résultats de mesure.
(4) Appelez la méthode rangeTest() pour effectuer une mesure.
(5) L'attribut RangeStatus de l'objet de résultat de mesure indique l'état du résultat de mesure et la valeur de l'attribut RangeMilliMeter est la distance mesurée (en millimètres).
Pour une mesure continue, la différence avec la mesure unique ci-dessus est qu'après avoir appelé begin() pour terminer l'initialisation du module, vous devez appeler la méthode startRangeContinuous() pour passer le module de mesure de distance laser en mode de mesure continue. La différence dans la lecture des données est d'utiliser la méthode isRangeComplete() pour déterminer si le module de télémétrie laser a terminé une mesure, puis la méthode readRange() pour lire les résultats de la mesure. Le modèle de programme est présenté ci-dessous : ESP32 avec VL53L0X réalise un véhicule d'intelligence artificielle IoT - mesure continue