打印
[STM32U5]

【STM32U599J-DK测评】TOF功能基础测试

[复制链接]
2267|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
在 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,进一步的进行结果的展示和分析,后续的评测,将会继续分享这方面的内容。

1050765e203873ce42.png (48.61 KB )

1050765e203873ce42.png

使用特权

评论回复
沙发
HonestQiao|  楼主 | 2024-3-2 09:03 | 只看该作者
补充2个动态效果图:
基础测试:


详细测试:

使用特权

评论回复
板凳
moticsoft| | 2024-3-3 21:48 | 只看该作者
这个有意思,先收藏,说不定啥时候用到

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

37

主题

94

帖子

2

粉丝