K20DX128使用飞行时间(ToF)传感器VL53L0X的方法

以前我在不同的项目中成功使用过飞行时间(ToF)传感器VL6180X 。 VL6180X非常棒,但最大只能测量20厘米的距离,并且在“扩展模式”下能达到60厘米的距离。在使用距离超过该极限的项目中,合理的选择是VL53L0X,其测量距离在30厘米到100厘米之间,最大可测量200厘米。本文中,我使用的是Adafruit的VL53L0X分线板,但有类似的产品可供选择,如Pololu。

K20DX128使用飞行时间(ToF)传感器VL53L0X的方法

恩智浦K20dx128连接Adafruit VL53L0x传感器

Adafruit的分线板模块(https://www.adafruit.com/product/3317)包含所有需要的电平转换器,并且易于与微控制器连接:

K20DX128使用飞行时间(ToF)传感器VL53L0X的方法

vl53l0x分线板模块

在本文中,我使用的是tinyK20 NXP Kinetis K20DX128微控制器(运行频率为50 MHz的ARM Cortex-M4)。需要的引脚是GND、3.3V(VIN)以及I2C SCL和SDA信号。 GiHub上提供了一个Eclipse(GNU gcc)示例项目。

软件代码

与VL6180X不同,VL53L0X比较复杂,有些难以初始化和运行。 STM意法半导体提供了一个相当繁重的驱动程序库,我发现如果没有该驱动程序库中,则可能无法使用该设备。并且似乎运行传感器所需的初始化序列仅在该驱动程序库“文档化”。所以我花了一段时间才把它弄好,但最后它起作用了:-)。

更多内容请参考以下链接:https://www.yiboard.com/thread-1135-1-1.html