TFmini-Plus LiDAR Sensor

来自Waveshare Wiki
跳转至: 导航搜索
TFmini-Plus-LiDAR-Sensor
{{{name2}}}
{{{name3}}}
功能简介
特性 激光传感器
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
接口 I2C UART

说明

产品简介

TFmini Plus 是基于 TFmini 的升级项目,它是一款小型化,单点测距的产品,基于 ToF(飞行时间)原理,配合独特的光学、电学、算法设计,主要实现稳定、精准、高灵敏度和高速的距离测量的功能。产品本身除了具有 TFmini 的低成本、小体积、测距远等特点外,还增加了 IP65 等级防护,测距精度更高,对于室外强光、不同温度、不同反射率等不同环境下适应性更强,更低功耗,探测频率也更加灵活。产品同时兼容 UART 和 I2C 通信接口,可通过指令进行切换。

产品特点

  • 基于TOF (飞行时间) 激光测距技术
  • 支持UART、IIC通信 (UART、IIC共用接口)
  • 支持0.1-12m范围测量
  • 支持室外强光、不同温度、不同反射率等不同环境下使用,可以满足多种场景需求
  • 支持输出距离测量值Dist、信号强度Strength、芯片内部温度Temp等信息
  • 支持两种输出方式:UART主动输出与IIC查询输出
  • 支持远程升级
  • 5.0±0.5V供电
  • 功耗550mW(低功耗时≤100mW)
  • 850nm激光符合IEC 60825-1:2014第3版规定的Class1标准

产品参数

TFmini-Plus规格参数图.png

应用场景

  • 行人检测
  • 车辆检测
  • 高度计
  • 机器人防跌落

工作原理

TFmini Plus 基于 ToF(Time of Flight)即飞行时间原理。具体为产品周期性的向外发出近红外 光调制波,调制波遇物体后反射。产品通过测量调制波往返相位差,得到飞行时间,再计算出产品 与被测目标之间的相对距离。

TFmini-Plus原理解析图.png

功能描述

【Interface & Baudrate | 接口与波特率】

TOFSense支持配置为UART与I2C两种通信方式:

  • UART串口通信波特率设置范围如下:
UART串口波特率 说明
9600、14400、19200、56000、115200、460800、921600 默认波特率为115200
  • I2C通信波特率设置范围如下:
I2C波特率 说明
400kbps 最大传输速率400kbps
  • I/O模式:
    • ⭐注:使用 I/O 模式前,请将低阈值默认输出值修改为 1200(发送指令:5A 07 22 0A B0 04 00 5A 04 11 6F),可以避免远距离误报的问题。
    • I/O 输出模式下,不能输出测距值,只是在距离从小变大超过高阈值的时候或者从大到小低 于低阈值的时候让 I/O 口电平反转。当输出为近区电平时,测量值大于滞回区间的远端点后,输出切换为远区电平;当输出为远区电平时,测量值小于滞回区间的近端点时,输出切换为近区电平。(高电平:3.3V,低电平:0V)

接口数据输出模式设置:

  • Active Output | 主动输出:
    • 主动输出模式在UART模式时使用,该模式下模块以配置的频率主动输出测量信息。
  • Query Output | 查询输出:
    • 查询输出模式在I2C模式下使用,该模式下通过控制器向期望查询模块发送查询指令,模块即可输出一帧测量信息。
    • 常用指令:5A 05 00 01 60 获取测距结果

【Distance Status | 距离】

模块可以输出当前距离,用户可结合距离数据进行数据处理,距离数据含义如下:

数值 说明
65535 测量距离无效
其他 测量距离有效

探测距离对应有效边长:

TFmini-S探测距离对应有效边长.png

【Signal Strength | 信号强度】

  • 指示当前返回信号的强度,该值越大表明返回信号越强。

常见物体反射率:

TFmini常见物体反射率.png

【视场角】

  • 视场角的大小决定了有效测距边长,只有当“被测目标边长”大于等于“有效测距边长”时,数据才稳定可靠。

当被测物体边长不满足有效测距边长时,TFmini 输出测量值(Dist)会出现异常。如下:

TFmini探测两个距离不一的物体.png

协议解析

  • 协议由 Frame Header(帧头)、Data(数据)、Sum Check(校验和)组成。
    • 其中 Frame Header 为固定不变的数值;
    • Data 为传输的数据内容;
    • Sum Check 为 Frame Header、Function Mark、Data 相加求和(即前面所有字节相加)后的最低字节。
  • 协议组成:
Frame Header + Data + Sum Check

说明:协议包遵循小端模式原则,即低字节在前,高字节在后。

  • TOFSense _UART_Frame:
    • 数据来源: 将模块连接上位机,UART模式时为主动输出模式。
    • 原始数据:
59 59 0A 00 00 01 20 00 DD
    • 解析表:
Data Type Length (Bytes) Hex Result
Frame Header uint8 1 59 0x59
Frame Header uint8 1 59 0x59
Dist uint8 2 0A 00 10cm
Strength uint8 2 00 01 256
Temp uint8 2 20 00 32℃
Sum Check uint8 1 DD 0xDD
  • TOFSense _I2C_Read_Frame:
    • 数据来源: 将模块连接上位机,配置为I2C查询输出模式,通过上位机发送下列数据实现数据查询。
    • 原始数据:
59 59 12 00 03 02 24 00 ED
    • 解析表:
Data Type Length (Bytes) Hex Result
Frame Header uint8 1 59 0x59
Frame Header uint8 1 59 0x59
Dist uint8 2 12 00 18cm
Strength uint8 2 03 02 770
Temp uint8 2 24 00 36℃
Sum Check uint8 1 ED 0xED

软件说明

主控 编程软件
Raspberry Pi Pico Thonny
Raspberry Pi VScode
Arduino Arduino
ESP32 Arduino

产品尺寸及线序


TFmini-Plus结构图及引脚.png


串口助手调试

上位机软件
TFmini上位机测试1.png

左上角CONNECTION选择连接型号、端口号、通信波特率,点击CONNECT即完成连接。

TFmini上位机测试4.png

连接成功,软件会根据距离绘制曲线

TFmini上位机测试6.png

Raspberry Pi

树莓派环境配置

  • 树莓派串口配置

由于树莓派串口默认用于终端调试,如需使用串口,则需要修改树莓派设置。执行如下命令进入树莓派配置:

sudo raspi-config

选择Interfacing Options ->Serial ->no -> yes,关闭串口调试功能。 A7600C1-Cat-Hat-OpenSerial.jpg
需要重启

sudo reboot

打开/boot/config.txt文件,找到如下配置语句使能串口,如果没有,可添加在文件最后面:

enable_uart=1

重启生效

程序调试

默认模式为UART,若进行模式切换,请记住当前模式。
①使用VScode连接树莓派
②在树莓派中新建后缀为.py的文件
③根据下方路径进入对应文件
④复制提供的程序,粘贴至新建的python文件中
⑤确定连接正确并运行。
⭐或使用其他方式将示例复制到树莓派中,使用C文件的话记得编译哈。

记得下载示例!示例程序
  1. UART调试(连接GPIO14、GPIO15)
示例文件路径:
python :..\TFmini-Plus-LiDAR-Sensor-Demo\Raspberry Pi\Python\UART\UART.py
WiringPi:..\TFmini-Plus-LiDAR-Sensor-Demo\Raspberry Pi\WiringPi\UART\UART.c

2.IIC调试(连接GPIO2、GPIO3)

示例文件路径:
python :..\TFmini-Plus-LiDAR-Sensor-Demo\Raspberry Pi\Python\IIC\IIC.py
WiringPi:..\TFmini-Plus-LiDAR-Sensor-Demo\Raspberry Pi\WiringPi\IIC\IIC.c

3.模式切换

  • UART转IIC(连接GPIO14、GPIO15)
运行后等待串口输出: UART To IIC:End of configuration. --UART转IIC配置结束
示例文件路径:
python :..\TFmini-Plus-LiDAR-Sensor-Demo\Raspberry Pi\Python\UART_IIC\UART_IIC.py
WiringPi:..\TFmini-Plus-LiDAR-Sensor-Demo\Raspberry Pi\WiringPi\UART_IIC\UART_IIC.c
  • IIC转UART(连接GPIO2、GPIO3)
运行后等待串口输出: IIC To UART:End of configuration. --IIC转UART配置结束
示例文件路径:
python :..\TFmini-Plus-LiDAR-Sensor-Demo\Raspberry Pi\Python\IIC_UART\IIC_UART.py
WiringPi:..\TFmini-Plus-LiDAR-Sensor-Demo\Raspberry Pi\WiringPi\IIC_UART\IIC_UART.c

树莓派使用TFmini-Plus LiDAR Sensor模块的UART调试效果如下:
TFmini-S程序调试图.png

硬件连接

UART模式:(连接GPIO14、GPIO15)                                                                       IIC模式:(连接GPIO2、GPIO3)
TFmini-Plus-LiDAR-Sensor-Pi-connected硬件连接及引脚图.pngTFmini-Plus-LiDAR-Sensor-Pi-connected硬件连接及引脚图 -I2C.png

Raspberry Pi Pico

程序调试

默认模式为UART,若进行模式切换,请记住当前模式。
①使用Thonny连接Raspberry Pi Pico(右下角记得选择Raspberry Pi Pico)
②在Raspberry Pi Pico中新建main.py的文件
③根据下方路径进入对应文件
④复制提供的程序,粘贴至新建的main.py文件中
⑤确定连接正确并运行。

记得下载示例!示例程序

1.UART调试(连接D0、D1)

示例文件路径:
..\TFmini-Plus-LiDAR-Sensor-Demo\Raspberry Pi Pico\UART\UART.py

2.IIC调试(连接SDA、SCL)

示例文件路径:
..\TFmini-Plus-LiDAR-Sensor-Demo\Raspberry Pi Pico\IIC\IIC.py

3.模式切换

  • UART转IIC(连接D0、D1)(运行后等待串口输出: UART To IIC:End of configuration. --UART转IIC配置结束)
示例文件路径:
..\TFmini-Plus-LiDAR-Sensor-Demo\Raspberry Pi Pico\UART_IIC\UART_IIC.py
  • IIC转UART(连接SDA、SCL)(运行后等待串口输出: IIC To UART:End of configuration. --IIC转UART配置结束)
示例文件路径:
..\TFmini-Plus-LiDAR-Sensor-Demo\Raspberry Pi Pico\IIC_UART\IIC_UART.py

Raspberry Pi Pico使用TFmini-Plus LiDAR Sensor模块的UART调试效果如下:

TFmini-S-pico程序调试图.png

硬件连接

UART模式:(连接GPIO8、GPIO9)                                                                 IIC模式:(连接GPIO8、GPIO9)
TFmini-Plus-LiDAR-Sensor-Pico-connected.pngTFmini-Plus-LiDAR-Sensor-Pico-connected - I2C.png

Arduino

程序调试

默认模式为UART,若进行模式切换,请记住当前模式。
①使用Arduino IDE连接Arduino(选择正确型号)
②在Arduino IDE中新建文件
③根据下方路径进入对应文件
④复制提供的程序,粘贴至新建的文件中
⑤确定连接正确并上传。

记得下载示例!示例程序

1.UART调试

示例文件路径:
..\TFmini-Plus-LiDAR-Sensor-Demo\Arduino\UART\UART.ino

2.IIC调试

示例文件路径:
..\TFmini-Plus-LiDAR-Sensor-Demo\Arduino\IIC\IIC.ino

3.模式切换

  • UART转IIC(运行后等待串口输出: UART To IIC:End of configuration. --UART转IIC配置结束)
示例文件路径:
..\TFmini-Plus-LiDAR-Sensor-Demo\Arduino\UART_IIC\UART_IIC.ino
  • IIC转UART(运行后等待串口输出: IIC To UART:End of configuration. --IIC转UART配置结束)
示例文件路径:
..\TFmini-Plus-LiDAR-Sensor-Demo\Arduino\IIC_UART\IIC_UART.ino

Arduino使用TFmini-Plus LiDAR Sensor模块的UART调试效果如下:
TFmini-S-Arduino程序调试图.png

硬件连接

UART模式:(连接D0、D1)                                                                IIC模式:(连接SDA、SCL)
TFmini-Plus-LiDAR-Sensor-Arduino-connected-UART.pngTFmini-Plus-LiDAR-Sensor-Arduino-connected - I2C.png

ESP32

程序调试

默认模式为UART,若进行模式切换,请记住当前模式。
⭐首先需要安装好ESP32软件包。
①使用Arduino IDE连接ESP32
②在Arduino IDE中新建文件
③根据下方路径进入对应文件
④复制提供的程序,粘贴至新建的文件中
⑤确定连接正确并上传。

记得下载示例!示例程序

1.UART调试

示例文件路径:
..\TFmini-Plus-LiDAR-Sensor-Demo\ESP32\UART\UART.ino

2.IIC调试

示例文件路径:
..\TFmini-Plus-LiDAR-Sensor-Demo\ESP32\IIC\IIC.ino

3.模式切换

  • UART转IIC(运行后等待串口输出: UART To IIC:End of configuration. --UART转IIC配置结束)
示例文件路径:
..\TFmini-Plus-LiDAR-Sensor-Demo\ESP32\UART_IIC\UART_IIC.ino
  • IIC转UART(运行后等待串口输出: IIC To UART:End of configuration. --IIC转UART配置结束)
示例文件路径:
..\TFmini-Plus-LiDAR-Sensor-Demo\ESP32\IIC_UART\IIC_UART.ino

Arduino使用TFmini-Plus LiDAR Sensor模块的UART调试效果如下:
TFmini-S-ESP32程序调试图.png

硬件连接

UART模式:(连接GPIO16、GPIO17)                                                                IIC模式:(连接GPIO16、GPIO17)
TFmini-Plus-LiDAR-Sensor-ESP32-connected-UART.pngTFmini-Plus-LiDAR-Sensor-ESP32-connected-I2C.png

资料

程序

软件


FAQ

Q1:请问 TFmini-S 是否支持 3.3V 或其他电压供电?

您好,目前不支持。TFmini-S 标准供电 5V±0.1V。如您有其他需求,可联系销售人员咨询定制事宜。

Q2:请问 TFmini-S 工作一段时间后会发热,是坏了吗?

您好,这是产品正常工作状态。芯片与电路板持续工作后,轻微发热属于正常现象。

Q3:请问 TFmini-S 可以与 Arduino 或树莓派连接使用吗?

您好,可以。TFmini-S 使用串口通信协议,只要是支持串口通信的控制板即可通信使用。

Q4:请问 2 台 TFmini-S 同时工作会相互干扰吗?

您好,当 2 台 TFmini-S 同向摆放、光斑打在同一被测物上且重合的时候,不会互相干扰;当 2 台以上的 TFmini-S 同向摆放且光斑重合的时候,相互之间会有干扰;当 2 台 TFmini-S 面对面工作的时候,会产生严重的干扰。