VL53L8CX小板开发(1)----驱动TOF进行区域检测

描述

概述

VL53L8CX是一款8x8多区域ToF测距传感器,它在环境光下能够在降低功耗的同时增强性能。该传感器基于意法半导体的FlightSense技术设计,能够提供最高400 cm的精确测距,并具有65°对角线视场。
VL53L8CX集成了功能强大的新一代VCSEL,以及两个先进的超表面镜头。硬件封装在创新的“一体化”模块中。这使得它能够适用于更广泛的高性能应用场景,如低功耗系统激活、手势识别、机器人SLAM、液位监控等多种用途。
VL53L8CX采用意法半导体的专利算法,可以检测和跟踪视场内的多个目标,具有64区域深度测量能力。意法半导体的直方图确保盖片玻璃串扰抗扰度超过60 cm。
与所有基于意法半导体FlightSense技术的ToF传感器一样,VL53L8CX能够测量绝对距离,不受目标颜色和反射率的影响。
VL53L8CX支持SPI和I²C接口,确保高频帧率和短启动时间。
VL53L8CX的VCSEL发射940 nm的完全不可见红外光。这种VCSEL具有1级认证,对眼睛是安全的。使用VL53L8CP可以进行场景浏览和多区域检测。这归因于软件可定制的检测阵列。它能快速且低功耗地检测到人体存在。此类检测被称为微深度图。

飞行时间传感器

视频教学

https://www.bilibili.com/video/BV1bHzdYCEyD/

样品申请

https://www.wjx.top/vm/OhcKxJk.aspx#

源码下载

https://download.csdn.net/download/qq_24312945/90425837

主要特点

新一代多区域飞行时间 (ToF) 传感器的功耗较低,提高了距离测距性能

  • 可以使用4x4或8x8独立区域测量功能进行多区域距离测量
  • 自主低功耗模式,通过可编程中断阈值唤醒主机
  • 增强了环境光条件下的性能,测量距离可达400 cm
  • 在每个区域均可进行多目标检测和测距
  • 直方图处理和算法补偿可最大程度减少甚至消除盖片串扰的影响
  • 每个区域都配有运动指示器,用于显示目标是否以及如何移动
  • 60 Hz帧速率能力

完全集成的微型模块,具有宽视野 (FoV)

  • 新一代大功率发射器:940 nm不可见光VCSEL(垂直腔面发射激光器)集成式模拟驱动器
  • 65°对角线方形视场,发射器和接收器采用衍射光学元件 (DOE)
  • 单光子雪崩二极管 (SPAD) 接收阵列
  • 运行固件的低功耗微控制器
  • 尺寸:6.4 x 3.0 x 1.75 mm

可轻松集成

  • 单回流焊元件
  • 需要1.8 V核心电源和3.3 V AVDD电源
  • 可选1.2 V或1.8 V IOVDD接口电压等级
  • I²C(可达1 MHz)或SPI(可达3 MHz)接口
  • 兼容多种盖片材料
  • 可隐藏在深色盖片之后

飞行时间传感器

硬件准备

首先需要准备一个开发板,这里我准备的是自己绘制的开发板,需要的可以进行申请。
主控为STM32H503CBT6,TOF为VL53L8CX

飞行时间传感器

技术规格

飞行时间传感器

系统框图

飞行时间传感器

应用示意图

IIC模式下应用示意图。

飞行时间传感器

SPI模式下应用示意图。

飞行时间传感器

区域映射

VL53L8CX支持4x4模式的区域映射和8x8模式的区域映射。

下图显示了4x4模式下的区域定义。总共有16个区域,它们沿着一行递增,然后再开始新的一行。物理视图是从设备顶部朝向镜头。如下图所示,每个区域的编号对应于传感器返回的ZoneIDs。

飞行时间传感器

下图显示了8x8模式下的区域定义。总共有64个区域,它们沿着一行递增,然后再开始新的一行。物理视图是从设备顶部朝向镜头。如下图所示,每个区域的编号对应于传感器返回给主机的ZoneIDs。

飞行时间传感器

参考程序

https://github.com/CoreMaker-lab/VL53L8CX

https://gitee.com/CoreMaker/VL53L8CX

生成STM32CUBEMX

用STM32CUBEMX生成例程,这里使用MCU为STM32H503CB。 配置时钟树,配置时钟为250M。

飞行时间传感器

串口配置

查看原理图,PA9和PA10设置为开发板的串口。

飞行时间传感器

配置串口,速率为921600。

飞行时间传感器

IIC配置

在这个应用中,VL53L8CX模块通过I2C(IIC)接口与主控器通信。具体来说,VL53L8CX模块的I2C引脚连接到主控器的PB6和PB7两个IO口。

飞行时间传感器

飞行时间传感器

配置IIC为快速模式,速度为400k。

飞行时间传感器

LPn 设置

若进行IIC通讯,LPn设置为高电平状态。

飞行时间传感器

这里对应管脚为PB0。

飞行时间传感器

飞行时间传感器

飞行时间传感器

X-CUBE-TOF1

本节介绍在不需要使用样例应用时如何使用STM32CubeMX将X-CUBE-TOF1软件包添加到项目中。有了这样的设置,就只配置了驱动层。

飞行时间传感器

堆栈设置

飞行时间传感器

若无法正常运行需要修改优化等级。

飞行时间传感器

串口重定向

打开魔术棒,勾选MicroLIB

飞行时间传感器

代码配置

在custom_ranging_sensor.c代码中,有IO口驱动VL53L8CX进行复位的代码,由于没有配置对应的IO,所以需要注释掉。

飞行时间传感器

Tera Term配置

打开Tera Term并使用以下设置进行配置。

飞行时间传感器

飞行时间传感器

演示结果

配置完成侯可以在Tera Term下查看结果,如下是4*4的显示。

飞行时间传感器

可以切换到8*8显示。

飞行时间传感器

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分