ToF 测距传感器 VL53L5CX 使用记录

长距离 ToF 传感器 VL53L5CX  使用记录  ...... by  矜辰所致

前言

在之前我们已经写过关于 TOF 传感器的文章,当时的主角是 VL6180,使用的是软件 I2C ,移植到了不同的平台使用,不过 VL6180 的测距范围有限,最大只有 60cm,在当时的文章中我也提到过,长距离的 TOF 有 VL53L 系列,测距可达数米。博主正好最近需要接触到长距离的测距的场景,所以迎来了本次的主角:VL53L5CX 。

所以本文的我们就来测试一下长距离的TOF 传感器VL53L5CX。

当时关于 TOF 传感器 VL6180 的文章有:
ToF 测距传感器 VL6180 使用踩坑记(软件 I2C)
ToF 测距传感器 VL6180 测量范围修改(软件 I2C)
.
我是矜辰所致,全网同名,尽量用心写好每一系列文章,不浮夸,不将就,认真对待学知识的我们,矜辰所致,金石为开!

一、基本说明

1.1 传感器准备

博主也是因为有项目需求用到长距离的,而且通过上次接触 TOF 测距传感器,知道有这个系列有适用的产品,然后在某宝找到最大距离接近 4m 的VL53L5CX ,如下图:

一般来说,初次接触一种传感器我都建议买现成的模块测试,可以省去自己设计传感器部分电路的时间,也避免了不熟悉导致设计电路设计出现的一些问题。

在这里插入图片描述

实际上ST 官方也提供了传感器模块,只不过一般来说,官方的传感器相对都会比较贵,如下图:

在这里插入图片描述

那选好了测试模块,那么就开始去找对应的资料了。

1.2 资料说明

我们要使用一个传感器,收先需要对他做个基本的了解,我们可以通过 ST 的官网搜索下载 VL53L5CX的相关资料,如下图:

在这里插入图片描述

点进去之后有所需要的全部参考资料:

在这里插入图片描述

官网资料很全,一般来说如果网上没有现成的说明资料,从官网找资料自己看是一个相对实际的方式。

按照博主写文章的时间来看,目前网上有关 VL53L5CX 使用的文章,也就只有一位 记贴 大佬的文章 ,如果通过记贴大佬的系列文章得不到自己需要的答案,那就只能从官网资料自己去查看了,记贴大佬关于 VL53L5CX 距离检测的文章连接如下:

VL53L5CX驱动开发(1)----驱动TOF进行区域检测

这里要额外说明一个事情,传感器是 I2C 通讯的,可能有些朋友按照固有的想法,会想着找到传感器资料,然后根据资料给出的时序说明,自己通过软件 I2C 写传感器的驱动,比如上次我们使用的 VL6180 ,但是实际上,自己手动根据资料写VL53L5CX 的 I2C 驱动来说无疑是相当复杂的,官方实际上都会提供软件包,对于这种相对复杂的传感器都是直接使用官方现成软件包来进行测试。

而对于 ST 的传感器来说,我们都可以直接在 STM32CubeMX 中添加软件包,非常的方便,这一点我们在下面的测试过程中会详细说明。

1.3 测试板设计

那除了我们传感器小模块,那么我们还得找一个板子进行测试 ,根据博主找的资料来看,虽然传感器是 I2C 通讯的,但是他不仅仅只需要 SDA、SCL、GND、VCC 这4根线,还需要 LPn ,INT 几根线(虽然我们期初并不知道这些线是干什么的,但是看资料里面都需要连接),所以真的飞起线来,也比较麻烦,博主决定自己画一块板子进行测试。

那选什么芯片设计也是一个问题,在记贴大佬的说明文章中,使用的是 STM32G431C8T6, 在官方的说明文档,使用的是 STM32F401RET6 ,使用的都是硬件 I2C ,虽然理论上来说使用什么问题都不大,但是这里我还是选择了和官方一样的 STM32F401RCT6 (Flash 小一点)的作为测试 MCU。

设计的原则就是,如果期初我们什么都不确定,就直接完全按照官方的引脚定义意义对应来就行了,如果官方的不同文章也有些许不同,那么说明那个引脚是可以自由切换的,为了保险,对于模棱两可的引脚我们可以做一个跳线,反正都给它画上就行了。

原理图其实相对简单的,实际上就是一个 STM32F401RCT6 最小系统图,加上一个 VL53L5CX 引脚的链接,VL53L5CX 传感器的链接可以参考官方的资料文档,通过我的原理图照着画也是可以的。

1.3.1 STM32F401RCT6 最小系统

STM32F401 的最小系统与 F103 也基本一致,只有一个点需要注意:

VCAP1 引脚需要电容接地!

在这里插入图片描述

1.3.2 供电

使用 TPS5430 转3.3V 进行供电,这个看个人实际情况,反正提供 3.3V 电源就可以:

在这里插入图片描述

1.3.3 VL53L5CX 连接部分

传感器部分根据资料上的说明,来设计就好,确保和文档使用的 IO 口一致就行:

在这里插入图片描述

很简单的设计,然后画好 PCB 就好。

二、测试步骤

好了,完成上述的准备工作,我们就可以来进行测试了,实际上,在上文提到了因为不同的资料文档 IO 口 可能有些许出入,所以设计的时候为了保险起见预留了跳线,实际上在博主完成测试以后发现,其实任意一个可用的 IO 口都可以,所以上面是自己多虑了。

博主参考过官方的说明以及记贴大佬的视频,那么本文的测试步骤,为了简介明了,就直接上正常的顺序流程。

我们使用的工具为ST MCU 常用的 STM32CubeMX 。

2.1 安装 X-CUBE-TOF1

要使用 VL53L5CX 的软件包,需要安装 X-CUBE-TOF1 ,在软件包管理栏,的 STM 栏目可以找到此软件包,如下图:

在这里插入图片描述

如果大家没有找到,可以尝试更新一下 STM32CubeMX 。博主也是这次需要使用 VL53L5CX 软件包进而更新了一下软件。

2.2 STM32F401 基本配置

使用 STM32CubeMX 进行 STM32F401 基本配置,这个所有的系列都一样,不懂的同学可参考文章:

STM32CubeMX 生成工程步骤图文说明

直接搜索我们的芯片,在软件右下角出现的芯片上点击对应芯片打开:

在这里插入图片描述

2.2.1 时钟配置

选择使用外部时钟:

在这里插入图片描述

选择完毕后,我们进入时钟配置:

在这里插入图片描述

2.2.2 调试接口

调试接口选择:

在这里插入图片描述

2.2.3 I2C 接口

与传感器通讯的 I2C 接口,按照下图红色标注的来设置就好:

在这里插入图片描述

I2C1 的接口根据自己的电路图修改,可以查看上面的原理图:

在这里插入图片描述

2.2.4 串口配置

软件包需要配合串口输出数据,所以我们也需要配置一下串口,串口配置简单,如下图,因为我们不确定使用 串口1 还是 2,就都配置一下,一样的,实际上哪一个串口都可以输出:

在这里插入图片描述

2.3 软件包说明

上面的基本配置完成以后,我们需要进入软件包配置。

2.3.1 示例选择

选择软件包,如下图:

在这里插入图片描述

点开以后,我们可以看到我们开始按照好的软件包:

在这里插入图片描述

点开栏目,我们要进行几个选择:

在这里插入图片描述

然后还需要选择一个示例:

在这里插入图片描述

上面选择示例要注意名字,选错了其实也会有提示,都是绿色的小勾勾说明没有问题,记得点击右下角的 OK 退出。

在这里插入图片描述

完成后我们就能在设置界面看到 X-CUBE-TOF1 这个栏目中的东西,如下图:

在这里插入图片描述

2.3.2 软件包配置

我们把 Mode 下面的栏目都选上,然后按照下图进行配置就好:

在这里插入图片描述

上面图中上部分就是我们当时在设计的时候不同文档有出入的引脚,实际上测试后才知道,这些引脚不一定需要的。

如果我们采取轮询的方式读取传感器数据,就用不到上面这些 IO,说明如下:

RST : 传感器复位引脚,某宝的小模块上都没引出这个引脚。
TOF_INT: 传感器终端引脚,采用中断方式读取的时候才需要用到的引脚。
LPn : 传感器使能引脚,拉高拉低表示传感器唤醒休眠。
PWR_En: 不太清楚 = =!

在上面我写的 PA7 和 PA6, 是我用不到的,PA4 和 PB0 正好板子上画了,实际上用不用也无所谓,用到也是可以的,因为在 软件包里面,用到了 LPn 对传感器进行初始化。要注意,这些引脚是要事先定义好,然后通过上面选择的。

在这里插入图片描述

关键的地方在于传感器通讯的 I2C1 和 结果输出的 USART1 设置好就行了。

最后我们就可以成功工程了:

在这里插入图片描述

2.4 查看工程

打开工程我们先编译一下,正常没有问题:

在这里插入图片描述
我们先不要着急这测试,我们先来简单看一看工程:

在这里插入图片描述

上面内容不算复杂,大家都可以自行查看,我们现在看一会下初步的效果再说。

2.5 效果初看

我们烧录程序,然后通过串口看一看效果,确实有输出,如下图:

在这里插入图片描述

因为串口助手问题,我们没有像官方文档中说的下图这种效果:

在这里插入图片描述

但是对于测试的我们来说,这不都是一样的吗,与其用串口助手展示数据,我还不如到时候用一个上位机来显示更好的效果呢(这是一个彩蛋 = = !)。

2.6 工程修改

那为了让我们同过这种串口助手能够看到以下更好的效果,我把工程稍微修改了一下,我还去掉了那些输入接收:

在这里插入图片描述

在这里插入图片描述

大家有兴趣的可以自己去对比一下,根据大家自己的需求来随便改。

OK,再来看一下,这样子就简单多了,对于初步测试而言,得到自己想要的距离值就行了。

在这里插入图片描述

三、后续说明

虽然上面我们已经测试成功,但是对于传感器的应用来说,本小结补充一些和将来应用有关的细节问题。

3.1 输出距离与区域对应关系

我们知道,传感器是区域测距的,在资料文档中,我们可以看到有如下的说明:

在这里插入图片描述

我们虽然知道有这么多区域,但是输出的值与对应关系是怎么样的呢?

当时这个问题我还傻乎乎的折腾了一段时间,自己还通过输出打印出了 ID,但这个实际上并不是区域的标号:

在这里插入图片描述

当时还用文档特意记录对比了才发现:示例的输出就是按照手册中的图上位置输出的。

在这里插入图片描述

意思就是,你如果没有修改示例代码中的循环结构,那么他输出的顺序就是官方说明文档中的图示顺序:

4x4 从 12 区域开始从左到右,每行依次输出。
8x8 从 56 区域开始从左到右,每行依次输出。

结语

本文我们了解了一下 长距离 ToF 测距传感器 VL53L5CX 的测试过程,而且我们成功得到了自己想要的测试效果,我们已经可以根据自己的不同需求,对传感器进行应用了。

在文中我也提到过,文档中通过串口助手的方式展示的区域效果图,实际上并不那么直观漂亮,我也提到直接使用上位机效果会好很多,那么下一篇文章,我会给大家带来展示 VL53L5CX 效果的上位机软件设计记录。

好了,本文就到这里,谢谢大家!

❤️ 另外也给大家拜一个晚年,祝大家龙年大吉,万事如意,财运亨通!❤️

  • 19
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

矜辰所致

您们的鼓励是我奋斗的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值