在 STM32U599J-DK 开发板上,有一个TOF(Time‑of‑Flight and gesture-detection sensor)传感器,可以很方便的进行3维空间测距感知。
这篇评测分享,就基于该TOF传感器,进行3维空间测距相关的测试。
一、TOF基础知识了解
TOF 是一种绝对距离检测技术,即传感器发出经过调试的近红外光,遇物体后反射,传感器通过计算光线发射和反射时差或相位差,来换算被拍摄景物的距离,以产生深度信息。
首先,当使用近红外进行测距的时候,基本原理如下:
因为光速是已知的,通过发射端发射红外光线,再到从物体表面反射,再到接受端接收。
由于光速是已知的,所以可以根据反射回来的时间,计算测量的距离。
如果使用一个矩阵进行反射光线的检测,那么就可以测量一个区域的不同位置的距离,从而3维空间测距感知的功能。
例如下图:
TOF技术在AR/VR、自动驾驶、四轴飞行器等方面应用广泛,还有专门的TOF相机供机器视觉使用。
二、STM32U599J-DK开发板上的TOF传感器
开发板的TOF传感器,位于如下位置:
其具体型号为:VL53L5CX,是意法半导体FlightSense产品系列中最先进的飞行时间 (ToF) 多区测距传感器,具有宽视野,能够测量4x4或者8x8多区测距。
它通过在垂直腔面发射激光器 (VCSEL) 上方使用DOE,将一个方形FoV投影到场景上。反射光随后由接收器透镜聚焦到SPAD阵列上。不同于传统的IR传感器,VL53L5CX利用意法半导体最新一代ToF技术,能够测量目标的绝对距离,而不受目标颜色或反射率的影响。该产品可提供高达400 cm的精确测距,并能以极快的速度 (60 Hz) 运行,是目前市场上速度最快的多区微型ToF传感器之一。
其具体资料,可以查看:https://www.st.com/zh/imaging-and-photonics-solutions/vl53l5cx.html
三、软件包支持
做为意法半导体FlightSense产品系列中最先进的飞行时间 (ToF) 多区测距传感器,自然是对其提供了充分的支持。
在STM32CubeMX中,通过安装X-CUBE-TOF软件包,就能够实现对其支持,并提供了演示代码,可以快速进行测试。
在STM32CubeIDE中,新建一个STM32U599J-DK的工程,然后进入STM32CubeMX,按照下面的步骤进行相关的安装和设置。
1. 在STM32CubeMX包管理中,安装X-CUBE-TOF1最新版本:
2. 选择TOF传感器支持
安装完成X-CUBE-TOF1后,点击进入传感器支持管理:
参考下图,选择VL53L5CX相关的支持选项:
点击OK完成后,就可以进入下一步进行设置
3. 设置TOF
再次点击X-CUBE-TOS1,进入设置,参考下图设置即可:
因为是板载的传感器,所以只需要设置INT和LPN两个引脚即可,其他的在板子上已经做好处理了。
具体可以查看原理图:
从原理图也可以得知,这个TOF传感器和之前的温度传感器一样,连接到了I2C3,所以要选择对应的I2C3接口。
另外,要选择BSP UART要选择UART1,因为测试程序,会通过串口输出测量信息。
通过以上的设置以后,TOF传感器就配置好了,可以在程序中使用了。
四、代码完善
1. 自动生成的代码
在STM32CubeMX中设置完,自动生成代码后,代码中就会自动包含TOF调用的代码了:
2. GPIO设置
因为仅需要设置INT和LPN引脚,所以需要注释如下代码中的RST和EN的处理,否则编译会出错。
3. 输出结果调整
默认的结果输出,在串口查看工具中,可能不能正常的显示,因为是做为xterm彩色输出的,默认只有亮绿色和亮红色,可以做一些修改,让其更加的完善。
具体如下:
在上面的代码中,定义了一个colors数组,其中有5中颜色可用。实际对应于距离(单位mm),取整(距离/100)。
然后应用定义的颜色数组:
上面是测量在500mm以内,使用不同的颜色,500mm以上,使用绿色。
大家也可以根据自己的实际情况,来进行修改。
五、实际效果
1. 串口工具查看数据:
下载编译运行后,使用串口工具,可以直接查看到输出的结果数据:
但是这个不停地刷新,结果一点都不直观。
因此,需要使用Putty或者MobaXTerm这样的终端工具来查看,才好看。
2. 串口终端工具查看结果:
我使用了MobaXTerm来进行连接:
连接后,具体效果如下:
在这个界面上,数据会原地刷新,方便查看实际结果。
使用s按键,可以启用信号和环境光检测:
使用r按键,可以切换4x4和8x8区域检测:
3. 实测效果:
如果将手指张开,放在传感器上方一定位置,能够得到如下的结果:
如果手指并拢,则得到如下的结果:
如果手指微微打开,并斜着进入检测区域,则结果如下:
从上图可以看到,能够检测到3维空间内不同区域的目标距离,并使用不同的颜色呈现。
如果打开了信号和环境光检测,手掌在检测区域内移动,则结果如下:
六、总结
STM32U599J-DK上的TOF传感器能够实现8x8区域的检测,还能进行移动检测,而且速度还能达到60Hz,绝对是类似传感器中的王者级别。
上面的检测结果输出,仅仅是输出了原始的数据,还可以结合屏幕或者AI,进一步的进行结果的展示和分析,后续的评测,将会继续分享这方面的内容。
|