Site icon Blog Usinainfo

Projeto com Sensor de Distância Vl53l0x e Arduino para Alta Precisão

Projeto com Sensor de Distância Vl53l0x Arduino para Alta Precisão é uma excelente aplicação para makers que buscam uma solução eficiente para aplicação em seus projetos de desenvolvimento robótico, apresentando resultados com alto grau de precisão quando comparado a modelos comuns.

A precisão em projetos de controle e automação é a chave para bons resultados. Tendo isso em vista, o módulo traz consigo uma incrível capacidade de fazer medidas minuciosas, aliado a um excelente custo/benefício.

 

Sensor de Distância Vl53l0x para Alta Precisão

 

Suas aplicações são inúmeras, desde simples medições com finalidades de detectar obstáculos, implementar triggers e fazer médias estatísticas até controlar precisamente atuadores em equipamentos. Também pode ser usado para projetos de Internet das Coisas devido ao seu baixo consumo de energia (aproximadamente 20 mW), tornando-o excelente para Green IoT.

Dentre suas principais características, podemos citar a tensão de 3 a 5v e uma distância de medição absoluta de 2m, além da comunicação por I2C que permite a ligação de mais módulos.

 

Biblioteca Vl53l0x

A biblioteca Vl53l0x a ser utilizada é fornecida pela Adafruit. Ela contem diversas funções já implementadas para acesso aos dados que são gerados no sensor.

Para instala-la na IDE do Arduino, basta acessar o menu Ferramentas > Gerenciar Bibliotecas, pesquisar por “VL53L0X” e instalar  a versão mais recente.

Biblioteca Vl53l0x

 

Esquemático Projeto com Sensor de Distância Vl53l0x

A comunicação com o Arduino é feita através de I2C. Além das conexões relativas a alimentação do módulo, em 5v, também devemos conectar o SDA (em amarelo)  e SCL (em verde) do módulo na placa do Arduino.

Esquemático Projeto com Sensor de Distância Vl53l0x e Arduino

 

Além das portas já citadas, o módulo também disponibiliza duas portas adicionais:

Importante lembrar que o módulo pode vir com uma película de proteção sobre o sensor. Você pode usar uma pinça para removê-la, conforme o gif abaixo. Nele, utilizei a YX-11ESD da Yaxun. Para que a leitura seja precisa, é necessário remover a película (VERIFIQUE SE O SEU SENSOR VEIO COM PELÍCULA).

Sensor de Distância Vl53l0x – Retire a Película

 

 

Código Arduino Vl53l0x

A biblioteca utilizada abstrai diversos aspectos de leitura dos registro do sensor, simplificando muito a maneira de obter a medição realizada. Segue o código:

O início contém a rotina .begin do módulo, inicializando as funções internas necessárias do sensor e verificando se o mesmo está funcionando. Em seguida, criamos uma variável “measure”, declarada como um tipo intrínseco aquela classe, para armazenar o valor da leitura do registro do sensor. É por esse motivo que em seguida, na função .rangingTest, ela é passada com o símbolo &, pois está se apontando para o endereço de memória daquela variável, e não do valor em si da variável.

Na estrutura de controle if, a função RangeStatus retorna um valor diferente de 4 caso a leitura dos dados do sensor tenha sido concluída com sucesso. Na sequência, exibimos na Serial as informações obtidas.

 
[crayon-662f4af32afb2482431204/]
 

Como podemos verificar, a distância retornada pela função  .RangeMilliMeter é data em milímetros. O delay também pode ser ajustado, porém o tempo de leitura do sensor não é controlado pela biblioteca da Adafruit.

Esse sensor proporciona um suporte consistente para montar diversos projetos, sensores de estacionamento, contador de passagem de pessoas, acionamento de servomotores, etc. No projeto abaixo, vamos integrar esse sensor junto a um display 16×2 através do I2C.

 

Projeto com Display 16×2 I2C

De forma a visualizar a distância do sensor, fora da IDE do Arduino,  iremos utilizar o display 16×2. Primeiramente, como a comunicação com ele é feita através de Módulo I2C, devemos soldar uma conexão de endereçamento para poder ligar ele junto com o VL53L0XV2.  Na figura abaixo, foi utilizado o A2 para alterar o endereço, tornando-o agora localizável no endereço 0x23.

Projeto VL53L0X com Display 16×2 I2C

 

Após ter soldado essa conexão, precisamos montar o circuito. Dessa vez conectando o SDA e SCL do Arduino juntamente com as respectivas conexões dos módulos, conforme diagrama abaixo.

Esquemático Projeto com Sensor de Distância Vl53l0x Arduino e Display 16×2 I2C

 

Com essa configuração, o display estará no endereço 0x23, enquanto o sensor de distância estará no endereço 0x27. Em seguida, após terminar de montar o circuito, podemos integrar o código do display juntamente com o código anterior, do sensor.
[crayon-662f4af32afb9199899976/]
A biblioteca LiquidCrystal_I2C pode ser instalada no menu de gerenciamento de bibliotecas.  A rotina do void loop é muito parecida com a que usamos anteriormente, diferenciando-se pela inclusão das funções de exibição de dados no display. Por fim, como o sensor retorna a distância em milímetros, basta dividirmos o valor por 10 de forma a obter a distância em centímetros.

Projeto com Sensor de Distância Vl53l0x Arduino e Display 16×2 I2C

 

Conclusão

Nesse artigo foram apresentadas as características do módulo VL53L0XV2, além da maneira de conectar ele ao Arduino e usar a biblioteca da Adafruit para realizar a leitura da distância. Além disso, integramos o sensor a um display utilizando a comunicação I2C. A partir disso, é possível embasar-se nesses códigos e então desenvolver outros projetos.

Conheça toda linha de produtos Arduino no site da UsinaInfo.

Sair da versão mobile