VL6180X距离、光线传感器上手体验
本文主要介绍VL6180X距离、光线传感器模块的一些基本特点、参数及简单的上手Demo,新手上路,老司 机谨防追尾。
文章的章节编写按照如下顺序进行:
VL6180X开箱体验
基本功能概述
功能简介及说明
Demo上手测试
结语
参考资料
VL6180X开箱体验
VL6180X是一款比较迷你的传感器模块,拿到手后就是这样的,如图1所示:
图1. 开箱图
包装中一共两个,其中一个已经被我强拆了,外包装采用了ST评估板的惯用包装设计,因此还是备有 亲切感的。取出模块后跟一角硬币对比了一下,还是非常短小的,如图2所示:
图2. 模块尺寸对比图
即使如此,该模块还是可以进一步变小,翻看其背面可以看到,VL6180X芯片的供电要求是2.8v,因 此上半身是3.3v->2.8v降压电路,如果不需要电压转换的话,可以从中间一排小孔处将其掰歪,不对,是掰 断。。。 基本功能概述
讲了这么多废话,读者可能还是一脸蒙B:这TM什么玩意?借用ST官方的话说:The VL6180X is 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. 光孔位置及接收角度示意图
对于偏移校准及串扰补偿方法,此处不再过多详述,始终铭记这是评测,这是评测,不是教程,打住。
Demo上手测试
为试验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软件支持包
- STM32单片机中文官网
- STM32单片机官方开发工具
- STM32单片机参考设计
VL6180X距离、光线传感器上手体验相关推荐
- 石头机器人拖地水量调节_石头扫地机器人T7上手体验:电控水箱和超大容量,扫拖一体全能型...
[微创WEC科技]前段时间,给大家带来了石头扫地机器人P51的体验,今天给大家带来一个更"猛"一点的,就是今年石头机器人的旗舰产品:T7. 石头扫地机器人T7上手体验视频 要知道石 ...
- uos系统不激活能用吗_国产统一操作系统UOS真的能代替window系统吗? UOS上手体验...
近一段时间,Win10的更新搞得人心惶惶,新功能没见多少,问题却此起彼伏.常常是一个旧Bug搞定了,又带来一堆新Bug.近日,中兴新支点.深度.中国电子集团.诚迈科技等四家国产操作系统厂商,合力推出了 ...
- 小鸡G4工程款 上手体验
前言:之前只是抱着试一试的态度在小鸡活动贴下报名,说实话之前并没有抱希望能够没选中.所以非常感谢小鸡团队给我的这次机会.这应该是我第一次参与厂家的内测活动.希望能给小鸡团队,给广大玩家带来一片实用的上 ...
- 华为linux笔记本i3和i7的区别,华为MateBook 13 i3版性能如何 华为MateBook 13 i3版笔记本上手体验...
华为MateBook 13 i3版性能如何?值得入手吗?下面小编带来华为MateBook 13 i3版笔记本上手体验,希望对大家有所帮助. 华为MateBook 13 i3版笔记本上手体验: 华为一直 ...
- linux的系统监视器图片_替代Windows还有多远?国产统一操作系统UOS上手体验
嵌入式linux QQ交流群:175159209,欢迎爱好者加入交流技术问题! 近一段时间,Win10的更新搞得人心惶惶,新功能没见多少,问题却此起彼伏.常常是一个旧Bug搞定了,又带来一堆新Bug. ...
- 红米note7找android,红米note7荣耀v20简单上手体验
红米note7&荣耀v20简单上手体验 2019-02-03 12:31:00 49点赞 22收藏 41评论 起因是老爸说自己手机不太好用了,让我给买个新的,后来我老婆也表示现在用的小米6屏也 ...
- ls一1测距仪说明书_杜克 LS-P激光测距仪开箱及上手体验
杜克 LS-P激光测距仪开箱及上手体验 2019-07-09 19:37:00 15点赞 24收藏 18评论 小编注:此篇文章来自即可瓜分10万金币,周边好礼达标就有,邀新任务奖励无上限,点击查看活动 ...
- 三星s10android10功能,三星S10系列现场上手体验:“安卓机皇”真的名副其实
[手机中国评测]在二月的最后一天,三星召开新品发布会,三星S10系列国行版惊艳亮相.作为三星今年的的一款旗舰,可以说集万众宠爱于一身,同时也承载着众多用户的期许.从MWC发布后来看,三星S10可以说是 ...
- Face ID 上手体验信息汇总:面部解锁流畅,原理移植AR让人憧憬
昨天,苹果举行了 iPhone X 试用会,传来了不少上手体验评测,今天52VR就来为大家总结一下 Face ID 和Animoji的表现,并探究其中所用到的技术在未来AR方面更深层次的应用前景. 哦 ...
最新文章
- 足球?光头?AI:这道题可太难了
- python画树叶-使用Python turtle画分形树叶图
- Python 爬虫实现天气查询(可视化界面版)
- python搭建项目结构_Django搭建项目实战与避坑细节详解
- ie 浏览器布局中的 offset
- 小米 android 8,小米华为们谁最良心?10大手机厂商安卓8.0升级情况盘点
- Telnet和FTP
- SpriteKit游戏开发适配iPad/iPhone6/7/8/Plus及iPhoneX的尺寸及安全区域
- 相同java代码,编译生成class文件不同的原因-JDK版本不同(大版本相同,小版本不同)
- Centos6.5 安装配置 Apache +mysql +php 操作文档
- 台式计算机调亮度快捷键,台式电脑怎么调亮度快捷键(显示器亮度的调节方法)...
- 青橙 GO M3 3G手机(珍珠黑)WCDMA/GSM 双卡双待 360特供机--高通胶水双核,A5老架构,内存缩水,,,强烈要求降价...
- 【CUDA 基础】4.3 内存访问模式
- Java 编程要点之并发(Concurrency)详解
- AI:2020年6月23日北京智源大会演讲分享之AI创业专题论坛——10:30-11:20陆奇教授《AI创业发展趋势:机会与挑战》
- python 麻将算胡,快速算法 没有递归,不超过100行
- Git 教程 - Git 基本用法
- 编程的同时还能盯股票基金?VSCode这款神器插件绝了!
- 【1053】最大数输出
- Skia深入分析6——skia中图像编解码代码概述
热门文章
- 2018中国互联网——网民谈论榜最具话题性的七大人物
- 基于Gor实现流量复制(加middleware功能增强)
- Electromagnetic
- CTex之图片格式不顶格
- lnmp一键安装包linux,linux centos7.3 lnmp一键安装包集成
- google浏览器下开发UHF超高频读写器
- 超导钉扎效应的研究(力求一篇文章搞懂它)
- linux vfs open函数,VFS文件系统结构分析
- 蓝牙透传实验_蓝牙模块主机与从机透传
- cocos2dx uv动画溢出_宝爷Debug小记——Cocos2d-x(3.13之前的版本)底层BUG导致Spine渲染花屏...