5.2 KiB
Detectar proximidade - Wio Terminal
Nesta parte da lição, você adicionará um sensor de proximidade ao seu Wio Terminal e lerá a distância a partir dele.
Hardware
O Wio Terminal precisa de um sensor de proximidade.
O sensor que você usará é um Grove Time of Flight distance sensor. Este sensor utiliza um módulo de medição a laser para detectar distâncias. Ele possui um alcance de 10mm a 2000mm (1cm - 2m) e reporta valores dentro desse intervalo com bastante precisão, sendo que distâncias acima de 1000mm são reportadas como 8109mm.
O medidor de distância a laser está localizado na parte traseira do sensor, no lado oposto ao conector Grove.
Este é um socket I²C.
Conectar o sensor time of flight
O sensor Grove time of flight pode ser conectado ao Wio Terminal.
Tarefa - conectar o sensor time of flight
Conecte o sensor time of flight.
-
Insira uma extremidade de um cabo Grove no conector do sensor time of flight. Ele só encaixará de uma maneira.
-
Com o Wio Terminal desconectado do seu computador ou de outra fonte de energia, conecte a outra extremidade do cabo Grove ao conector Grove do lado esquerdo do Wio Terminal, olhando para a tela. Este é o conector mais próximo do botão de energia. Este é um socket combinado digital e I²C.
- Agora você pode conectar o Wio Terminal ao seu computador.
Programar o sensor time of flight
Agora o Wio Terminal pode ser programado para usar o sensor time of flight conectado.
Tarefa - programar o sensor time of flight
-
Crie um novo projeto para o Wio Terminal usando o PlatformIO. Chame este projeto de
distance-sensor
. Adicione código na funçãosetup
para configurar a porta serial. -
Adicione uma dependência de biblioteca para a biblioteca Seeed Grove time of flight distance sensor no arquivo
platformio.ini
do projeto:lib_deps = seeed-studio/Grove Ranging sensor - VL53L0X @ ^1.1.1
-
No arquivo
main.cpp
, adicione o seguinte abaixo das diretivas de inclusão existentes para declarar uma instância da classeSeeed_vl53l0x
para interagir com o sensor time of flight:#include "Seeed_vl53l0x.h" Seeed_vl53l0x VL53L0X;
-
Adicione o seguinte ao final da função
setup
para inicializar o sensor:VL53L0X.VL53L0X_common_init(); VL53L0X.VL53L0X_high_accuracy_ranging_init();
-
Na função
loop
, leia um valor do sensor:VL53L0X_RangingMeasurementData_t RangingMeasurementData; memset(&RangingMeasurementData, 0, sizeof(VL53L0X_RangingMeasurementData_t)); VL53L0X.PerformSingleRangingMeasurement(&RangingMeasurementData);
Este código inicializa uma estrutura de dados para armazenar os dados lidos e, em seguida, passa essa estrutura para o método
PerformSingleRangingMeasurement
, onde será preenchida com a medição da distância. -
Abaixo disso, escreva a medição da distância e, em seguida, adicione um atraso de 1 segundo:
Serial.print("Distance = "); Serial.print(RangingMeasurementData.RangeMilliMeter); Serial.println(" mm"); delay(1000);
-
Compile, carregue e execute este código. Você poderá ver as medições de distância no monitor serial. Posicione objetos próximos ao sensor e verá a medição da distância:
Distance = 29 mm Distance = 28 mm Distance = 30 mm Distance = 151 mm
O medidor de distância está na parte traseira do sensor, então certifique-se de usar o lado correto ao medir a distância.
💁 Você pode encontrar este código na pasta code-proximity/wio-terminal.
😀 Seu programa para o sensor de proximidade foi um sucesso!
Aviso Legal:
Este documento foi traduzido utilizando o serviço de tradução por IA Co-op Translator. Embora nos esforcemos para garantir a precisão, esteja ciente de que traduções automatizadas podem conter erros ou imprecisões. O documento original em seu idioma nativo deve ser considerado a fonte autoritativa. Para informações críticas, recomenda-se a tradução profissional realizada por humanos. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações equivocadas decorrentes do uso desta tradução.