资讯详情

VL6180X距离、光线传感器上手体验

本文主要介绍VL6180X光传感器模块的一些基本特征、参数和简单的开始Demo,新手上路,老司 小心追尾。

文章的章节按以下顺序编写:

VL6180X开箱体验

基本功能概述

功能简介及说明

Demo上手测试

结语

参考资料

VL6180X这是一个迷你传感器模块,拿到后就是这样,如图1所示:

12121221.jpg

图1. 开箱图

包装中有两个,其中一个已经被我强行拆除,外包装已经使用了ST评估板的惯用包装设计,所以还是有的 亲切感。取出模块后,与一角硬币进行比较,仍然很短,如图2所示:

图2. 模块尺寸对比图

即便如此,模块还是可以进一步变小,翻看它的背面就能看到,VL6180X芯片供电要求为2.8v,因 此上半身是3.3v->2.8v降压电路,如果不需要电压转换,可以从中间的一排小孔折断,不,是折断 断。。。 基本功能概述

说了这么多废话,读者可能还是一脸蒙蒙B:这TM什么玩意?借用ST官方话说:TheVL6180Xis a proximity, gesture and ambient light sensor based on ST’s patented FlightSense? technology. 简单的 这是一种传感器,可以检测距离、光强甚至姿势。

因此其基本特征如下:

1. 提供三种量程选择:

a. 量程:20CM,精度:1MM ;

b. 量程:40CM,精度:2MM;

c. 量程:60CM,精度:3MM;

2. 环境光测量、各种采样增益和测量范围调整;

3. 过滤强反射物体造成的测量错误;

4. 偏移校准,确保设备在不同环境下的准确性。

5. 串扰补偿,使用盖玻片进一步提高距离检测的准确性;

6. 三种采样方式:

a. 轮询下单次距离测量

b. 非轮询下单次距离测量

c. 测量硬件中断下的连续距离

典型的距离输出特性

理论上,理论上,VL6180X输出值应与目标物体之间的距离呈线性关系,但实际上不是酱紫色。 在黑暗的环境中,测试VL6180X实际距离与实际测量距离的输出对比关系如图3所示

所示:

图3. 原始测量值与实际值的比较

从图3可以看出,测量数据的实际输出存在偏移错误,数据抖动剧烈,偏移错误可以通过偏移校准 来修正。为进一步提高VL6180X官方建议使用盖玻片来增加串扰信号的输出精度和稳定性 串扰补偿后,修正盖玻片造成的距离错误。如图4所示:使用盖玻片并进行串扰补偿修正后,真实 降低距离和实际测量距离的稳定性也进一步增强。

图4. 串扰补偿后的测量值与实际距离对比

捕获收敛时间

需要注意的是,VL6180X计算与物体之间距离所需的时间成本不是固定的,它与测量距离及目 标准物体的光反射率有关。如图5所示:10MM在内部,模块测量的距离值毫无意义,转换时间更长 长;当测量距离逐渐增加时,时间逐渐增加,反射率越低,消耗时间越长。

图5. 收敛时间与测量距离及物体反射率之间的关系

由于收敛时间与物体反射率和无标物体的实际距离有关,因此可以使用简单的收敛估计(Early convergence estimate, ECE)降低模块功耗。例如,判断0.5ms内VL6180X该模块收到的反馈信号 当其低于理想阈值时,可以在设定的范围内识别有效物体,因此可以暂停下一个阈值 测量节省功耗,如图6所示。相反,当收到的反馈信号数高于设定的理想阈值时,系统开始测量 在这种情况下,只有高反射率的金属物体靠近VL6180X在模块中,系统将开始工作,以降低功耗 如图7所示。

图6. 当量程范围内没有目标时,阈值设置

图7. 检测金属物体时的阈值设置

环境光传感器模式

VL6180X模块可以在相当广泛的范围内测量接收到的环境光,其测量原理是计算单位时间 (100ms)至于为什么内光孔接收到的光量是100ms,因为大多数应用程序都是这样设置的(嗯,说手册 的)。因此,若要测量不同的光强度,推荐设置模块的测量量程,而不是修改采样时间。

此外,模块接收到的实际光量值受模块光孔角度的影响,如图8所示:模块接收光的最佳范围为 在圆锥体中,如果超过圆锥体,测量的实际值也会受到很大影响,整体值也会呈现正态分布效果。

图8. 光孔位置及接收角度示意图

对于偏移校准及串扰补偿方法,此处不再过多详述,始终铭记这是评测,这是评测,不是教程,打住。

为试验VL6180X这里使用的实际测量效果STM32F0308-Discovery如图9所示,开发板驱动模块:

图9. 评估板测试准备

选板连线后,首先要建立新的工程,所以要去ST官网下载STM32F0308-Discovery的软 件支持包en.stm32cubef0.zip及VL6180X软件支持包模块ja.STSW-IMG003。可以直接加快测试效率 把STM32F0308-Discovery的I2C例程移动修改,以免从零开始配置环境。

第一步完成后VL6180X我们需要添加的文件如图10所示:

图10. 工程文件结构

其中vl6180x_app.x、vl6180x_i2c.x及vl6180x_gpio.x与平台有关的是额外创建的新文件, 对于不同的处理器,需要进行相应的移植修改。添加相应的文件后,配置项目的第一个文件路径,完成后 的工程如图xx所示:

接下来要做的是移植vl6180x到f0308平台,这也是测试过程中的主要工作,描述代码的过程总是有意识的 简单来说就是:1. 按照例程修改葫芦画瓢I2C底层驱动代码和引脚匹配 设置一些代码;2. 再加一个vl6180x_app.c文件,用于实现4个小demo一些打印信息函数和模型 块初始化函数。感兴趣的学生可以直接访问我的代码库来获项目:测试Demo URL

编译-烧写-调试-打印完成上述工作后,距离测试的打印结果如下:

图11. 距离测试打印

图11测试过程中,系统上电时用手覆盖传感器,返回错误6,表示未检测到有效物体(太多 近);然后慢慢拿开手,返回错误11、13、16,表示模块在量程内没有识别有效物体或目标过多(太多了 远)。更多错误详情请参阅模块用户手册。

图12. 光强测试打印

根据图12的测试,系统上电后检测到周围环境的光强,用手覆盖后检测值立即下降,模块 光强减弱。

VL6180X无论是距离检测还是环境光检测,它的稳定性和可靠性都是一个专业准确的传感器模块 高于普通超声波模块和光传感器)。因此,它比普通传感器模块更难启动。如果你感兴趣,读者不会 买回来研究一下,用在自己的玩具车、飞机等智能硬件领域也是极好的。

本文主要参考以下相关文件:

1. 《VL6180X-SATEL》:产品描述

2. 《UM1983 User manual》:用户手册

3. 《VL6180X》:数据手册

4. 《VL6180X API Integration Guide》:API编程手册

并参考以下软件资源:

1. ja.STSW-IMG003 : VL6180X软件支持包

2. en.stm32cubef0.zip:STM32F0308-Discovery软件支持包

标签: 50cm距离高精度输出传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台