微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > ARM技术讨论 > VHL4020近距离感应开发板试用体验

VHL4020近距离感应开发板试用体验

时间:10-02 整理:3721RD 点击:

首先非常感谢电子这个平台能给我这个机会来体验vhl4020。刚好有个项目想做low cost的手势识别,本来打算用超声波传感器来做的。超声波传感器有他的优点,距离可以达到米级,方向性强,但是个头实在不小,每个检测点都要个成对的收发头。相比而言,VHL4020检测距离不远(最大25cm),不过作为手势是足够了。他的好处就是只要一个接收头,可以一对多。因为对手势感兴趣,所以花点时间看了一下VHL4020实现手势的原理,有不少心得收获,也因此开了不少脑洞。

一.VHL4020的原理分析

VHL4020本质上是红外发射器加红外光检测传感器,他能检测接收到的红外光强度,转换成电流,fully integrated集成度高指的就是这两者的集成。功能强度,我的理解是几方面:

1.      自带的红外发射,强度可调节,即调节IRED的电流值,具体可参看寄存器#3;

2.      接收分两个检测器,一个是接近检测,这个是看反射;二一个是环境光检测,这两者的分辨率都高达16位,按照资料里的介绍:环境光检测达到了人眼的敏感度。

3.      可以使用外接的红外管。这第三点尤为重要,可以说就是通过这一点达到了手势识别的扩展。


架构图如下图所示:


经过对着123的优点思考,我感觉VHL4020至少可以用在如下几方面,甚至都有了一些产品的想法:

A.     手势识别,远不止VISHAY官方板子上面的两路,做的好,做4路甚至更多都没问题;

B.     接近开关;例如手机上面的脸部感应等;

C.     测光仪;要知道摄影界的测光仪可是非常贵的。做个简易的测光仪,作为手机配件,或者直接做在手机里,相信也是个大卖点呢^_^

D.     流水线的节点检测;

E.      智能家居:例如根据环境光智能调节亮度的台灯;

F.      Etc…看大家脑洞啦

因为对手势感兴趣,因此特别看了一下《vcnl4020gesture control & Proximty sensor board》,这个板子和世平的开发板不一样,世平的板没有做gesture手势识别。不过也没什么遗憾了,因为我大致明白了原理了,以后自己做也是可以的。下面我把我的理解大致阐述一下:


这个手势识别,说白了,就是利用VHL4020可以外接IR发射管的特点,再加点脑洞,就实现了。VHL的管板原理图如下图所示:


但实际上,它并不是“同时”采集和检测两路IR信号,这也不符合VCNL4020的特性(它仅有一个16位的接近检测结果寄存器),他是采用“分时发射/检测”的方法来实现的。分时发射是由上位机软件来控制触发的。如下图:


分时控制的逻辑,就是先让D2发光并检测距离,然后再让D3发光并检测距离,如此往复循环。只是这个控制在很短时间里完成,变得好像是“同时”采集到了2路光源的接近,然后在一段时间里判断距离的变化,从而判断出,到底是手从左向右移动还是从右向左移动。控制逻辑在该文档中可以查到。


  然后判断手势移动的曲线和逻辑如下(蓝色表示D2,红色表示D3,实际可能都是红外光):

  

    综上可以看出,VHL4020做简单的扩展,就能识别出左移和右移这两个动作了,那可以畅想一下:弄一个圆圈的IR管,然后分时检测,更多手势也成为可能了,例如顺时针/逆时针转动。

二、demo板评估

收到快递还是蛮惊喜的,开箱照就免了,反正只是我自己爽。只是要特别夸一下世平,良心企业呐,给的资料居然用一个8GB的全金属u盘来装,颜值也很高。U盘以后可以用于其他用途,上面有印世平的logo,也算以后走到哪都在帮金主打广告啦。


   

板子USB给电就可以点亮,开机先显示了1秒的世平的logo后,屏幕显示了两个值:Proxi_DATA=XXX,以及AMBI_DATA=xxx。


经过上一节的分析可以得知,Proxi_DATA应该就是接近检测的值,AMBI_DATA应该是环境光源的值。可以做个简单测试:


测试1:什么都没遮挡的情况下,读数为Proxi_DATA=3123, AMBI_DATA=189


测试2:用手指遮住情况下,读数为Proxi_DATA=35727,AMBI_DATA=6,可以看出接近寄存器读取值在急剧变大,说明检测到距离发生较大变化,而环境光检测则变化不明显(6可能是因为我手指皮肤太黑,呵呵)。


测试3:在30cm处,用一个强光源(手机闪光灯)照射情况下,读数为Proxi_DATA=3143, AMBI_DATA=9441,可以看出,接近结果寄存器的读数基本和测试1一样,没什么变化。而环境光检测寄存器则急剧变化到了9441。


从这3个小测试也可以看出VHL4020的基本功能:测距和测光,这2个功能在智能家居,特别是智能小家电及移动终端上非常的有用。用郭德纲的话讲,前景真的是可以有一想之美。




抱歉前阵子在封闭,导致了一些耽搁,这几天好好看资料,把玩了一下。越来越觉得这个sensor蛮不错的,不过功耗如果能控制下来,可能会更好,待机电流能做到1.5uA,工作要200mA有些大了。
好久没写嵌入式代码了,后面看有时间把例程和软件部分补上。开环境是已经搞定了。

三、软件开发

通过u盘内的code解压,可以获得demo工程的源码。不得不说世平的开发能力还是不错的,对于工具的支持也不错,帮忙建立好了keil的、IAR的、lpcxpresso(不熟)的工程,可以根据自己熟悉的IDE环境进行开发。

这里要多嘴说一下,我原来使用的是keil5早期的版本,内部版本号4.97,安装完目录里面都还叫uv4.exe。这个版本是不能用的,主要体现在:1.没有办法在线更新器件pack文件,一直卡在这里的童鞋赶紧升级版本;2.我去keil官网下载离线的NXP8xx的pack包,在这版本上安装不了,会报错说无法识别,说只支持1.0的,而对于LPC824的支持至少要1.2版本。去官网上下载了较新的keil MDK5,一切就OK了(keil现在很厚道,不用license也能编译开发)。

前面如何安装keil MDK及安装pack就不赘述了,反正如果打开工程提示说“未知设备LPC824M201JHI33”的话,说明keil不对或pack没装好,重新装就是了。下面是连接目标板。为了开发兼容性,我一直使用的是win7,纯净版,这个版本也从未让我失望过。具体步骤可以参考资料内,世平提供的简易操作手册。大致的记录如下:

1.      首先安装资料目录内的mbedWinSerial_16466.exe,一切OK;

2.      板子通过USB连接电脑后,提示安装驱动后确认,会安装一个usb串口驱动,安装好后去设备管理器查看,会多了一个“mbed Serial Port(COM5)”设备,电脑下面多了个叫“MBED”盘符,盘符可打开,但才48KB容量,我没去操作它;

3.      打开keil MDK5,project-> Open project,然后去代码目录下的“code\applications\lpc8xx\keil_uvision_projects”目录打开工程。得到例程的工程目录数,选择最下面的工程,右键切为活跃工程,然后按F7或者选择rebuild,完整编译后,即可得到我们自己的镜像。


                              

不同于其他童鞋遇到的问题,烧写过程非常的顺利我不需要配置flash工具,就能够直接用usb download烧写程序了。我想可能得益于pack包和keil MDK5的正确版本兼容(说明的是,我安装的是Keil.LPC800_DFP.1.3.0.pack,这是官网目前最新的版本,对LPC824支持很好)。

烧写非常简单,编译完毕后,点击编译按钮旁的“download”按键即可进入烧写过程。如下图。


等待10秒左右就烧写完毕,按板子的reset按钮就可以看到效果啦。下图是我的简单的修改,基本显示内容调整一下并显示一个对勾图形,采用代码里面的PUTGraph函数实现的。



再详细的修改,demo板就没法实现了,只能等自己做板子来弄了。到这里这次评测基本就结束了,最后说说我的感受。最大的感受就是VHL4020真的是简单易用,总共也就0~15共16个寄存器,可以轮询也可以中断触发,非常简便,相信不久就能看到相关的产品应用面市了。


终于把评测忙活完了。希望能让各位看官满意。
我觉得世平这个板子还有一个最大的优点我还没测出来,就是和Arduino接口兼容。假如您的设计是使用了Arduino方案的话,这个产品可以直接作为您的一个外设使用,而且不用再改板了,真的是非常方便。希望能看到有arduino这方面的大牛现身说法,还没机会接触Arduino是我的一个遗憾。

谢谢小编分享自己的经验 太厉害了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top