ESP32 con VL53L0X realiza un vehículo de inteligencia artificial IoT
Características clave del chip VL53L0X:
1.Módulo Miniatura Totalmente Integrado
-
láser VCSEL de 940nm
-
controlador VCSEL
-
Sensor de medición de distancia con microcontrolador integrado avanzado
-
4.4mmx2.4mmx1.0mm
-
Medición de distancia rápida y precisa
-
Mide distancias absolutas de hasta 2m
-
Las distancias informadas no se ven afectadas por la reflectividad del objetivo.
-
Funciona en entornos con mucha luz infrarroja
-
Compensación de diafonía óptica integrada avanzada para simplificar el diseño de la carcasa de vidrio.
2. Seguridad del Ojo Humano
- Equipo láser de clase 1 según la última norma IEC 60825-1:2014 (3.ª edición)
3.Fácil de integrar
-
Componentes refluibles
-
No se requieren ópticas adicionales
-
Fuente de alimentación única
-
Interfaz I2C para control de dispositivos y transferencia de datos.
-
Xshutdown e interrumpir GPIOs
-
Voltaje de operación: 3.3V/5V
4. Parámetros del VL53L0X:
-
Tamaño del producto: 4.4mm × 2.4mm × 1.0mm
-
Rango de medición de distancia: 30 ~ 2000 mm
-
Precisión de medición de distancia: ±5% (modo de alta velocidad), ±3% (modo de alta precisión)
-
Tiempo de medición (min): 20 ms (modo de alta velocidad), 200 ms (modo de alta precisión)
-
Ángulo de alcance: 25
-
Longitud de onda del láser: 940nm
-
Temperatura de funcionamiento: -20 ~ 70°C
El sensor VL53L0X proporciona 3 modos de medición
-
Modo de medición única: en este modo de medición, un solo disparador realiza solo una medición de distancia y, una vez finalizada la medición, el sensor VL53L0X volverá al modo de espera y esperará el siguiente disparo.
-
Modo de Medición Continua: En este modo la medición de distancia se ejecuta de manera continua. Cuando finaliza una medición, la siguiente se iniciará inmediatamente y el usuario debe detener la medición de distancia para volver al modo de espera; la última medición finaliza antes de detenerse.
-
Modo de medición temporizada: este modo es en realidad un modo de medición continua con intervalos de tiempo específicos. Cuando se completa una medición, se inicia la siguiente medición después de un tiempo de retraso definido por el usuario. El usuario debe detener el alcance para volver al modo de espera y se completa la última medición antes de detenerse.
El sensor VL53L0X también ofrece 4 modos de precisión diferentes:
Modo de precisión
|
Rango de Presupuesto de Tiempo de Medición (ms)
|
Distancia de medición (m)
|
Escenarios de aplicación típicos
|
por defecto
|
30
|
1.2
|
estándar
|
alta precisión
|
200
|
1.2 (precisión <± 3%)
|
Medición precisa
|
larga distancia
|
33
|
2
|
Larga distancia, sólo para condiciones de oscuridad sin infrarrojos
|
alta velocidad
|
20
|
1.2 (precisión <
± 5%)
|
Alta velocidad, la precisión no es una prioridad
|
Interfaz | Descripción |
CCV | Entrada de alimentación positiva (3.3V/5V) |
Tierra | Tierra de Poder |
Adventista del Séptimo Día | Pin de datos I2C |
LCC | Pin de reloj I2C |
CERRAR | Pin, Conectable al puerto de E/S |
EN T | Pin de salida de interrupción, conectable al puerto IO |
Módulo de Medición de Distancia por Láser | Módulo ESP32 |
CCV | +5 V |
Tierra | Tierra |
Adventista del Séptimo Día | P21 |
LCC | P22 |
Proceso de Operación Específico
-
Abra el panel de administración de la biblioteca del IDE de Arduino, ingrese VL53L0X en el cuadro de búsqueda y luego elija instalar la biblioteca Adafruit_VL53L0X, como se muestra a continuación.
-
El siguiente paso es analizar un programa de plantilla simple para el modo de medición única. Esto se muestra a continuación: ESP32 con VL53L0X hace realidad la inteligencia artificial del vehículo IoT: programa de plantilla simple
Como puede ver en el código anterior, se requieren estos pasos para completar una única medición del módulo de medición de distancia láser:
(1) Cree una instancia del objeto Adafruit_VL53L0X
Adafruit_VL53L0X lox = Adafruit_VL53L0X();
Llame al método comenzar () para completar la inicialización del módulo de medición de distancia láser
(3) Cree una instancia de la estructura VL53L0X_RangingMeasurementData_t que guarde los resultados de la medición.
(4) Llame al método rangeTest() para completar una medición.
(5) El atributo RangeStatus del objeto de resultado de la medición indica el estado del resultado de la medición y el valor del atributo RangeMilliMeter es la distancia medida (en milímetros).
Para la medición continua, la diferencia con la medición única anterior es que después de llamar a begin() para completar la inicialización del módulo, debe llamar al método startRangeContinuous() para cambiar el módulo de medición de distancia láser al modo de medición continua. La diferencia en la lectura de datos es usar el método isRangeComplete() para determinar si el módulo de rango láser ha completado una medición y luego el método readRange() para leer los resultados de la medición. La plantilla del programa se muestra a continuación: ESP32 con VL53L0X realiza la medición continua del vehículo de inteligencia artificial de IoT