5.1 KiB
Detetar proximidade - Wio Terminal
Nesta parte da lição, irá adicionar um sensor de proximidade ao seu Wio Terminal e ler a distância a partir dele.
Hardware
O Wio Terminal necessita de um sensor de proximidade.
O sensor que irá utilizar é um Grove Time of Flight distance sensor. Este sensor utiliza um módulo de medição a laser para detetar distâncias. Tem 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á na parte de trás do sensor, no lado oposto ao conector Grove.
Este é um socket I2C.
Ligar o sensor time of flight
O sensor Grove time of flight pode ser ligado ao Wio Terminal.
Tarefa - ligar o sensor time of flight
Ligue o sensor time of flight.
-
Insira uma extremidade de um cabo Grove no conector do sensor time of flight. O cabo só encaixa de uma forma.
-
Com o Wio Terminal desligado do computador ou de outra fonte de alimentação, ligue a outra extremidade do cabo Grove ao conector Grove do lado esquerdo do Wio Terminal, olhando para o ecrã. Este é o conector mais próximo do botão de energia. Este é um socket combinado digital e I2C.
- Agora pode ligar o Wio Terminal ao seu computador.
Programar o sensor time of flight
O Wio Terminal pode agora ser programado para utilizar o sensor time of flight ligado.
Tarefa - programar o sensor time of flight
-
Crie um novo projeto Wio Terminal utilizando o PlatformIO. Chame este projeto
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 ficheiro
platformio.ini
do projeto:lib_deps = seeed-studio/Grove Ranging sensor - VL53L0X @ ^1.1.1
-
No ficheiro
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 ler os dados, depois passa-a 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 depois 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. Poderá ver as medições de distância no monitor serial. Posicione objetos perto do 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 de trás do sensor, por isso certifique-se de usar o lado correto ao medir a distância.
💁 Pode encontrar este código na pasta code-proximity/wio-terminal.
😀 O 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 automáticas podem conter erros ou imprecisões. O documento original na sua língua nativa deve ser considerado a fonte autoritária. 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 incorretas decorrentes do uso desta tradução.