VL53L0X: sensor de distância a laser de alta precisão

VL53L0X

Em alguns de seus projetos, você precisará medir distâncias. Bem, você deve saber que o VL53L0X é um dispositivo que permite medi-los com alta precisão. Além disso, seu tamanho pequeno e baixo preço o tornam ideal para seus projetos DIY, especialmente para integração com o Arduino.

Existem muitos dispositivos que podem medir distâncias, alguns deles são medidores de distância baseados em ultrassom que emitem um som e ao saltar com o objeto permite saber com bastante precisão a distância que existe. Mas se você deseja a mais alta precisão, para isso você precisa de um medidor de distância óptico. Este tipo de dispositivos de medição é baseado em laser, como é o caso do VL53L0X.

Qual é o ToF?

Princípio ToF (esquema)

Câmera de tempo de voo ou ToF (tempo de voo) é uma técnica usada para medir distâncias. É baseado na ótica, medindo o tempo decorrido entre a emissão de um feixe de luz e a recepção. Eles podem ser CCD, sensores CMOS e os pulsos podem ser infravermelhos, laser, etc. O sistema será sincronizado para iniciar a medição do tempo apenas quando o pulso for disparado e parar o contador quando receber o salto do sensor.

Dessa forma, a distância pode ser calculada com bastante precisão. É necessário apenas um circuito lógico adicional integrado ao chip para realizar os cálculos a partir do momento em que o feixe é disparado até que seja recebido e, assim, determinar qual é a distância. O princípio é bastante simples.

ESP8266
Artigo relacionado:
ESP8266: o módulo WIFI para Arduino

Este tipo de dispositivo é usado em robótica permitir que o robô ou drone evite obstáculos, saber a que distância estão de um alvo, detectar movimento ou proximidade, para sensores de carro usados ​​para diferentes aplicações, implementar um medidor eletrônico, como um atuador para que o Arduino faça algo quando ele detecta certa proximidade de um objeto, etc.

O que é VL53L0X e folha de dados

VL53L0X

El O VL53L0X usa este princípio para medir distâncias por infravermelho a laser. última geração. Junto com um processador, como o Arduino, pode ser uma ferramenta poderosa de medição. Especificamente, o chip pode capturar distâncias entre 50 mm e 2000 mm, ou seja, entre 5 centímetros e 2 metros.

Para medir distâncias mais próximas, provavelmente você precisa de uma variante desse chip chamada VL6180X que permite medir uma faixa entre 5 e 200 mm, ou seja, entre meio centímetro e 20 centímetros. Se você deseja encontrar um dispositivo semelhante, mas baseado em ultrassom por qualquer razão técnica, então você deve procurar o HC-SR04, outro módulo bastante barato popular entre os fabricantes.

El Chip VL53L0X foi projetado para trabalhar mesmo quando a luz ambiente é bastante alta. Lembre-se de que, ao trabalhar opticamente, quanto maior for a "poluição" luminosa do ambiente, mais difícil será capturar adequadamente o salto do sinal. Mas, neste caso, não apresenta muito problema. Além disso, o sistema de compensação que integra permite medir mesmo se você usá-lo atrás de um vidro de proteção.

Isso o torna um dos melhores sensores de distância que você encontrará no mercado. Com uma precisão muito maior do que os sensores baseados em ultrassom ou infravermelho (IR). A razão para ser tão preciso é que o laser não será afetado por ecos ou refletâncias de objetos como nos outros casos.

Actualmente pode encontrá-lo integrado em mulas com algum extra por cerca de € 16 ou em pratos mais simples de pouco mais de € 1 ou € 3 nos restantes casos. Você já sabe que o encontrará em lojas como eBay, AliExpress, Amazon, etc. Os fabricantes desses dispositivos são diversos, portanto, se você precisa saber os detalhes do modelo que comprou, é melhor verificar a folha de dados do fabricante que você escolheu. Por exemplo:

El VL53L0X Possui dentro do chip o emissor do pulso do laser e o sensor para capturar o feixe de retorno. Neste caso, o emissor é um laser de comprimento de onda de 940 nm e tipo VCSEL (Vertical Cavity Surface-Emitting Laser). Já o sensor de captura é um SPAD (Single Photon Avalanche Diodes). Ele também integra uma eletrônica interna chamada FlightSenseTM que irá calcular a distância.

El ângulo de medição ou FOV (campo de visão) é 25º neste caso. Isso se traduz em uma área de medição de 0,44 m de diâmetro a uma distância de 1 m. Embora a faixa de medição dependa das condições ambientais. Se for feito dentro de casa é um pouco mais alto do que se for feito ao ar livre. Também dependerá da refletância do objeto para o qual você está apontando:

Refletância do alvo Condições Interior exterior
Alvo branco Típico 200cm 80cm
Mímico 120cm 60cm
Alvo cinza Típico 80cm 50cm
mínimo 70cm 40cm

Além disso, o VL53L0X possui vários modos de operação Isso pode variar os resultados. Esses modos estão resumidos na seguinte tabela:

modo Cronometragem Escopo Precisão
Por padrão 30ms 1.2m Veja a tabela abaixo
Alta precisão 200ms 1.2m + / -% 3
Longo alcance 33ms 2m Veja a tabela abaixo
Alta velocidade 20ms 1.2m + / -% 5

De acordo com esses modos, temos vários precisões padrão e de longo alcance que você tem nesta tabela:

Interior exterior
Refletância do alvo distância 33ms 66ms distância 33ms 66ms
Alvo branco em 120cm 4% 3% em 60cm 7% 6%
Alvo cinza em 70cm 7% 6% em 40cm 12% 9%

Pinagem e conexão

Diagrama de chip VL53L0X

Para que tudo isso funcione corretamente, você precisa uma interface com o mundo exterior. E isso é conseguido por meio de alguns pinos ou conexões. A pinagem do VL53L0X é bastante simples, possui apenas 6 pinos. Para sua integração com o Arduino, a comunicação pode ser feita através do I2C.

Para alimentá-lo, você pode conecte os pinos Assim:

  • VCC para 5v do Arduino
  • GND para GND do Arduino
  • SCL para um pino analógico do Arduino. Por exemplo A5
  • SDA para outro pino analógico. Por exemplo A4
  • Os pinos GPI01 e XSHUT não precisam ser usados ​​no momento.

Integração com Arduino

VL53L0X conectado ao Arduino

Como para muitos outros módulos, para o VL53L0X você também tem bibliotecas (por exemplo, uma para Adafruit) do código disponível que você pode usar para trabalhar com certas funções ao escrever o código-fonte para lidar com seu projeto no Arduino IDE. Se é sua primeira vez com o Arduino, eu recomendo nosso manual de programação.

A ejemplo de Código simples para você fazer medições e exibir o valor da medição através da porta serial para que você possa ver na tela do seu PC enquanto a placa Arduino está conectada é:

#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);
}

Na própria biblioteca de Adafruit, você tem mais exemplos de uso, se precisar ...


Seja o primeiro a comentar

Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.