Vamos a probar un módulo ToF comercial basado en VL53L0X. Este sensor complementa al VL6180X, con el que ya trabajamos, en cuanto de rango de media. A diferencia del anterior, alcanza los 2 metros de distancia. No obstante, como ahora veremos, su rango real -así como su precisión- dependerá del modo de funcionamiento en que lo configuremos.
Montaje del circuito de pruebas
Realizaremos el montaje mostrado en la figura basado en los siguientes componentes:
- Protoboard
- Wemos D1 mini
- Módulo VL53L0X
- Cables de conexión
Como se puede comprobar en la figura, conectaremos los pines SCL y SDA a los pines D1 y D2 respectivamente. Alimentaremos el módulo ToF a 3,3 voltios.
Programación de Arduino
Utilizaremos el siguiente código para comprobar el sensor:
#include "Adafruit_VL53L0X.h"
Adafruit_VL53L0X lox = Adafruit_VL53L0X();
void setup() {
Serial.begin(115200);
// espera al dispositivo USB
while (! Serial) {
delay(1);
}
Serial.println("Adafruit VL53L0X test!");
if (!lox.begin()) {
Serial.println(F("No se encuentra el sensor"));
while(1);
}
//lox.configSensor(Adafruit_VL53L0X::VL53L0X_SENSE_DEFAULT);
//lox.configSensor(Adafruit_VL53L0X::VL53L0X_SENSE_LONG_RANGE);
//lox.configSensor(Adafruit_VL53L0X::VL53L0X_SENSE_HIGH_SPEED);
//lox.configSensor(Adafruit_VL53L0X::VL53L0X_SENSE_HIGH_ACCURACY);
Serial.println(F("Sensor encontrado!"));
}
void loop() {
VL53L0X_RangingMeasurementData_t measure;
lox.rangingTest(&measure, false);
if (measure.RangeStatus != 4) {
Serial.print("- Distancia (mm): "); Serial.println(measure.RangeMilliMeter);
} else {
Serial.println(" fuera de rango ");
}
delay(100);
}
Como se pude ver en el código, nos hemos apoyado en las librerías de Adafruit para este módulo en concreto. El bucle principal se limita a realizar periódicamente una medida de distancia y publicarla en el puerto serie. Podemos descomentar una de las líneas entre la 18 y la 21 para seleccionar el modo de medida.
Realización de las pruebas y resultados
Vamos a colocar el sensor ToF perpendicular a un objeto (en este caso, una caja de cartón) que iremos alejando y tomaremos medidas de la distancia real y la compararemos con las obtenidas por el dispositivo. Compararemos los modos por defecto y el de larga distancia.
Modo por defecto
Como se aprecia en la figura, el dispositivo empieza realmente a detectar distancias a partir de los 30 mm, manteniendo la precisión del milímetro hasta los 400 mm de distancia. A partir de ahí la precisión se va reduciendo a un tope de 900 mm de distancia, a partir de la cual deja de medir.
Modo de larga distancia
Como se aprecia en la figura, al igual que antes, el dispositivo empieza realmente a detectar distancias a partir de los 30 mm, manteniendo la precisión del milímetro hasta los 200 mm de distancia. A partir de ahí la precisión se va reduciendo a un tope de 2000 mm de distancia, a partir de la cual deja de medir.