检测距离 - Wio Terminal 在这部分课程中,你将为Wio Terminal添加一个距离传感器,并读取其检测到的距离。 硬件 Wio Terminal需要一个距离传感器。 你将使用的传感器是一个Grove飞行时间距离传感器。该传感器使用激光测距模块来检测距离。这个传感器的测量范围是10毫米到2000毫米(1厘米至2米),并且会相当准确地报告在这个范围内的值,超过1000毫米的距离会被报告为8109毫米。 激光测距仪位于传感器背面,与Grove接口相对的一侧。 这是一个I 2 C传感器。 连接飞行时间传感器 Grove飞行时间传感器可以连接到Wio Terminal上。 任务 - 连接飞行时间传感器 连接飞行时间传感器。
在这部分课程中,你将为Wio Terminal添加一个距离传感器,并读取其检测到的距离。
Wio Terminal需要一个距离传感器。
你将使用的传感器是一个Grove飞行时间距离传感器。该传感器使用激光测距模块来检测距离。这个传感器的测量范围是10毫米到2000毫米(1厘米至2米),并且会相当准确地报告在这个范围内的值,超过1000毫米的距离会被报告为8109毫米。
激光测距仪位于传感器背面,与Grove接口相对的一侧。
这是一个I2C传感器。
Grove飞行时间传感器可以连接到Wio Terminal上。
连接飞行时间传感器。

将Grove电缆的一端插入飞行时间传感器上的插座。它只能以一种方式插入。
在断开Wio Terminal与计算机或其他电源连接的情况下,将Grove电缆的另一端连接到Wio Terminal左侧的Grove插座上(面向屏幕看)。这是最靠近电源按钮的那个插座。这是一个数字和I2C组合插座。

现在可以编程Wio Terminal以使用附带的飞行时间传感器。
使用PlatformIO创建一个新的Wio Terminal项目,命名为distance-sensor。在setup函数中添加代码以配置串口。
向项目的platformio.ini文件中添加Seeed Grove飞行时间距离传感器库的依赖:
lib_deps = seeed-studio/Grove Ranging sensor - VL53L0X @ ^1.1.1
在main.cpp中, add the following below the existing include directives to declare an instance of the 引入Seeed_vl53l0x类以与飞行时间传感器交互:
#include "Seeed_vl53l0x.h" Seeed_vl53l0x VL53L0X;
在setup函数末尾添加以下内容以初始化传感器:
VL53L0X.VL53L0X_common_init(); VL53L0X.VL53L0X_high_accuracy_ranging_init();
在loop函数中,从传感器读取一个值:
VL53L0X_RangingMeasurementData_t RangingMeasurementData; memset(&RangingMeasurementData, 0, sizeof(VL53L0X_RangingMeasurementData_t)); VL53L0X.PerformSingleRangingMeasurement(&RangingMeasurementData);
此代码初始化了一个数据结构来读取数据,然后将其传递给PerformSingleRangingMeasurement方法,在该方法中将被填充为距离测量值。
在这之后,输出距离测量值,然后延迟1秒:
Serial.print("Distance = "); Serial.print(RangingMeasurementData.RangeMilliMeter); Serial.println(" mm"); delay(1000);
构建、上传并运行此代码。你可以在串行监视器中看到距离测量值。将物体放在传感器附近,你将看到距离测量值:
Distance = 29 mm Distance = 28 mm Distance = 30 mm Distance = 151 mm
测距仪位于传感器的背面,所以在测量距离时要使用正确的那一面。

你可以在code-proximity/wio-terminal文件夹中找到这段代码。
你的距离传感器程序成功了!
声明:
本文件灏天文库团队进行了翻译。尽管我们力求准确,但请注意,翻译可能包含错误或不准确之处。原文档以其原始语言为准。我们不对因使用此翻译而产生的任何误解或误译负责。