TFmini-S LiDAR Range Sensor

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

说明

产品简介

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

产品特点

  • 体积小
  • 重量轻
  • 低功耗
  • 高帧率(最高支持1000Hz 输出频率)

应用场景

  • 行人检测
  • 车辆检测
  • 道闸防砸
  • 高度计

规格参数

产品 TFmini-S LiDAR Range Sensor
产品性能 测量范围  0.1m~12m@90%反射率

0.1m~7m@10%反射率
0.1m~12m@90%反射率(70Klux)
0.1m~7m@10%反射率(70Klux)

准确度 ±6cm@(0.1m-6m)
±1%@(6m-12m)
距离分辨率 1cm
帧率 1-1000Hz(默认100Hz)
抗环境光能力 70Klux
工作温度 0℃~60℃
防护等级 /
光学参数 光源 VCSEL
中心波长 850nm
人眼安全 Class1(EN60825)
视场角
电学参数 供电电压 5V±0.1V
平均电流 ≤140mA
功耗 ≤0.7W
峰值电流 200mA
通信电平 LVTTL(3.3V)
通信接口 UART/I2C
其他 尺寸 42mm*15mm*16mm(长*宽*高)
壳体材料 PC/ABS
储存温度 -20℃~75℃
重量 5g±0.3g
线长 10cm

外观结构

TFmini-S结构图 (2).png

工作原理

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

TFmini-S原理解析图 (2).png

通信接口

UART  /  I2C  /  I/O

  • UART / I2C
UART接口

默认波特率

115200(可调)

数据位

8

停止位

1

奇偶校验

None

I2C接口

最大传输速率

400kbps

主从模式

从机模式

默认地址

0x10

地址范围

0x08~0x77

  • I/O模式:
I/O 输出模式下,不能输出测距值,只是在距离从小变大超过高阈值的时候或者从大到小低 于低阈值的时候让 I/O 口电平反转。当输出为近区电平时,测量值大于滞回区间的远端点后,输出切换为远区电平;当输出为远区电平时,测量值小于滞回区间的近端点时,输出切换为近区电平。(高电平:3.3V,低电平:0V)

接线说明

TFmini-S线序图1 (2).png

编号

颜色

功能

说明

1

GND

电源地

2

+5V

电源正极

3

RXD/SDA

接收/数据

4

绿

TXD/SCL

发送/时钟

更多关于如何切换 通信接口 和 设置接口参数,详见:TFmini-S说明书

软件和示例使用说明

下文将介绍模块如何在Windows电脑、Raspberry Pi、Raspberry Pi Pico、Arduino、ESP32-S3等操作系统/开源硬件开发平台下使用。

操作系统/硬件平台

编程语言/软件

Windows电脑 上位机软件
Raspberry Pi Python、C(WiringPi)
Raspberry Pi Pico MicroPython
Arduino C(Arduino IDE)
ESP32 C(Arduino IDE)

Windows下快速测试

准备材料

硬件连接

TF-Luna-hw-connection.png

测试步骤

  1. 将 USB TO UART/I2C/SPI/JTAG 的模式拨码开关拨至模式1再进行上电
  2. 参考硬件连接图,把TFmini-S模块,通过 USB TO UART/I2C/SPI/JTAG 串口模块接入到电脑上。
  3. 打开TF上位机,选择『① TFmini-S』,并选择自动识别的占用串口(这里是『② COM9』)。
    然后,点击『CONNECT』进行上位机连接。连接成功后,右侧『④ TIME LINE CHART』区域会出现连续输出的数据图像,下方『⑥ REAL TIME DATA』区实时显示当前测试距离(Dist)、每秒有效数据量(Effective Points)和信号强度(Strength)。
    TF-software-01.png

说明:
a) 如果『④ TIME LINE CHART』区没有数据,请检查连接和线序,TFmini-S上电成功,正面看发射透镜内会有微弱的红光。
b) 如果TFmini-S是Pixhawk格式输出,需先勾选『③ Pix Mode』,『④ TIME LINE CHART』区才会正常输出数据图像。勾选Pix Mode后,距离单位变为m。
c) 距离输出Dist值,跟据输出单位不同会有所区别,默认单位为cm。如果通过指令修改TFmini-S的距离单位为mm,上位机并不能区分,『④ TIME LINE CHART』单位仍为cm。例如,TFmini-S实际测量距离为1m,以mm为单位则输出1000,通过该上位机读取的数值为1000,但上位机上的单位不会变化,仍显示cm。

接口指令切换说明

使用相关硬件接口发送模式转换指令
以下使用 USB TO UART/I2C/SPI/JTAG 设备进行示例演示

将USB TO UART/I2C/SPI/JTAG 的模式拨码开关拨至模式1或模式2再进行上电
当TFmini-S的模式处于UART时,将其切换为I2C:

  • 使用USB TO UART/I2C/SPI/JTAG 的 UART1 连接 TFmini-S
TFmini-S USB TO UART/I2C/SPI/JTAG - UART1
VCC VCC(5V)
GND GND
Tx Rx
Rx Tx
模式切换.png
  • 在序号6位置输入以下指令,向TFmini-S发送模式切换指令
5A 05 0A 01 6A
  • 在序号6位置输入以下指令,发送保存配置指令
5A 04 11 6F
  • 将TFmini-S断电,重新上电则配置完成

当模式处于I2C时,将其切换为UART:

  • 使用USB TO UART/I2C/SPI/JTAG 的 I2C 设备连接TFmini-S
TFmini-S USB TO UART/I2C/SPI/JTAG
VCC VCC(5V)
GND GND
SCL SCL
SDA SDA
TF模式切换2.png
20 5A 05 0A 00 69 
  • 在序号5位置输入以下指令,发送保存配置指令
20 5A 04 11 6F
  • 将TFmini-S断电,重新上电则配置完成
更多关于如何切换 通信接口 ,使用其他设备详见:快速实现TFmini-S-IIC与电脑通信的操作说明

Raspberry Pi下使用

树莓派环境配置

树莓派串口配置

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

sudo raspi-config

选择Interfacing Options ->Serial ->no -> yes,关闭串口调试功能。 A7600C1-Cat-Hat-OpenSerial.jpg
打开/boot/config.txt文件,找到如下配置语句使能串口,如果没有,可添加在文件最后面:

enable_uart=1

然后重启树莓派:

sudo reboot

树莓派开启I2C

打开树莓派终端,输入以下指令进入配置界面

sudo raspi-config
选择Interfacing Options -> I2C -> Yes 开启I2C接口

树莓派开启I2C(1).png

然后重启树莓派:

sudo reboot

安装WiringPi

在安装前请确定当前系统是32位还是64位

树莓派系统为32位

分别执行以下指令进行WiringPi的安装

wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb
gpio -v

(可选)若安装时出现错误可执行以下命令安装所有缺失的依赖项和其他必要的软件包,然后重新执行安装命令

sudo apt --fix-broken install

运行“gpio -v”会出现2.52版本,如果没有出现说明安装出错
WiringPi安装.png

树莓派系统为64位

使用指令拷贝资源包到树莓派

wget https://www.waveshare.net/w/upload/8/8c/WiringPi-master.zip

(可选,使用过解压指令可跳过这一步)安装解压环境

sudo apt-get install unzip

进入文件位置,执行解压指令

unzip WiringPi-master.zip

进入文件目录(进到“WiringPi-master”文件夹中)

cd WiringPi-master/

执行sudo ./build

sudo ./build 

(可选,出现错误参考第4点)如果执行./build不成功就执行“chmod +x ./build”再执行“sudo ./build”

chmod +x ./build

执行示例:
64-bit wiringPi环境安装1.png

64-bit wiringPi环境安装2.png

硬件连接

UART模式:(连接GPIO14、GPIO15)                                                                       IIC模式:(连接GPIO2、GPIO3)
TFmini-S-LiDAR-Range-Sensor-Pi-connected-UART.pngTFmini-S-LiDAR-Range-Sensor-Pi-connected I2C.png

软件示例

前置操作

将程序包下载到树莓派中

wget https://www.waveshare.net/w/upload/6/65/TFmini-S-LiDAR-Range-Sensor-Demo.zip

解压文件,新建一个同名文件解压到相应文件夹中

unzip TFmini-S-LiDAR-Range-Sensor-Demo.zip -d ./TFmini-S-LiDAR-Range-Sensor-Demo

执行示例:
RaspberryPi调试图片1.png

运行C语言例程

默认模式为UART,若进行模式切换,请记住当前模式
下文操作以运行"UART"例程为例。若使用I2C接口,请确保已连接和设置好对应接口,操作类似。
在终端中进入程序包路径“TFmini-S-LiDAR-Range-Sensor-Demo”

cd TFmini-S-LiDAR-Range-Sensor-Demo/

进入示例文件路径,文件夹下4个文件分别对应4个主控,下级文件夹中的文件分别为TFmini-S处于对应模式下的数据获取例程以及模式切换程序(例:使用UART模式获取数据)

cd Raspberry\ Pi/WiringPi/UART 

使用"gcc -o main main.c -lwiringPi"编译程序

gcc -o main main.c -lwiringPi

执行main程序(此前需打开相关功能,在前面树莓派配置那)

sudo ./main

执行示例:
RaspberryPi调试图片WiringPi-1.png

运行Python语言例程

默认模式为UART,若进行模式切换,请记住当前模式
下文操作以运行"UART"例程为例。若使用I2C接口,请确保已连接和设置好对应接口,操作类似。
在终端中进入程序包路径“TFmini-S-LiDAR-Range-Sensor-Demo”

cd TFmini-S-LiDAR-Range-Sensor-Demo/

进入示例文件路径,文件夹下4个文件分别对应4个主控,下级文件夹中的文件分别为TFmini-S处于对应模式下的数据获取例程以及模式切换程序(例:使用UART模式获取数据)

cd Raspberry\ Pi/Python/UART

运行程序

python3 main.py

执行示例:
RaspberryPi调试图片Python-1.png

Raspberry Pi Pico下使用

硬件连接

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

软件调试

前置操作

1.安装Thonny(Thonny安装包
2.按住Raspberry Pi Pico的“BOOTSEL”键,然后上电,上电后松开
3.电脑会出现一个新的盘符,将固件(Raspberry Pi Pico固件)解压,并将固件(后缀为uf2)拷贝至该磁盘(拷贝成功磁盘会自动消失)
4.开启Thonny,点击右下方的“Python x.x.x”,选择“Configure interpreter”
5.在弹出窗口中选择“解释器”->解释器选择“MicroPython(Raspbeery Pi Pico)”->端口选择“自动探测端口”
6.点击暂停,Shell窗口出现“MicroPython v1.20.0-50-g786013d46 on 2023-05-04; Raspberry Pi Pico with RP2040 Type "help()" for more information.”即为连接成功

  • 以下为第4点与第5点操作流程:
软件调试前置操作.png
  • 连接成功效果如下:
软件调试前置操作5.png

运行示例

默认模式为UART,若进行模式切换,请记住当前模式
下文操作以运行"UART"例程为例。若使用I2C接口,请确保已连接和设置好对应接口,操作类似。
1.打开下载的示例程序(示例程序
2.依此进入“TFmini-S-LiDAR-Range-Sensor-Demo”->“Raspberry Pi Pico”
3.“Raspberry Pi Pico”文件夹下依次有四个文件,分别代表各自功能
4.进入“UART”文件夹,使用Thonny打开UART.py(示例为在UART模式下获取数据)
5.在Thonny中点击运行
TFmini-S-RaspberryPi Pico软件调试操作.png

调试效果如下:
TFmini-S-RaspberryPi Pico程序调试图.png

Arduino下使用

硬件连接

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

软件调试

默认模式为UART,若进行模式切换,请记住当前模式
下文操作以运行"UART"例程为例。若使用I2C接口,请确保已连接和设置好对应接口,操作类似。

1.安装Arduino(Arduino安装包
2.打开下载的示例程序(示例程序
3.依此进入“TFmini-S-LiDAR-Range-Sensor-Demo”->“Arduino”
3.“Arduino”文件夹下依次有4个文件,分别代表各自功能
4.进入“UART”文件夹,使用Arduino IDE打开UART.ino(示例为在UART模式下获取数据)
5.连接Arduino板子,在Arduino IDE 上选择对应的开发板及端口
6.点击验证,再点击上传
7.处于UART模式时等待上传成功后再将设备连接Arduino板子(每次上传前要保证Arduino的D0和D1没有接入设备)

  • 以下为第2点到第4点操作流程:
TFmini-S-Arduino软件调试操作.png
  • 调试效果如下:
TFmini-S-Arduino程序调试图.png

ESP32下使用

本示例使用ESP32-S3-DEV-KIT-N8R8开发板

硬件连接

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

软件调试

前置操作

Arduino安装ESP32库0-1.png
  • 双击运行下载下来的应用程序
Arduino安装ESP32库0-2.png
  • 打开Arduino IDE查看是否安装成功
Arduino安装ESP32库3-3.png

运行示例

默认模式为UART,若进行模式切换,请记住当前模式
下文操作以运行"UART"例程为例。若使用I2C接口,请确保已连接和设置好对应接口,操作类似。
1.打开下载的示例程序(示例程序
2.依此进入“TFmini-S-LiDAR-Range-Sensor-Demo”->“ESP32”
3.“ESP32”文件夹下依次有4个文件,分别代表各自功能
4.进入“UART”文件夹,使用Arduino IDE打开UART.ino(示例为在UART模式下获取数据)
5.连接ESP32板子,在Arduino IDE 上选择对应的开发板及端口
6.点击验证,再点击上传

  • 以下为操作流程:

TFmini-S-ESP32软件调试操作.png

  • 调试效果如下:
TFmini-S-ESP32程序调试图.png


资料

程序

说明:

模式切换时需等待其输出“UART To IIC:End of configuration. ”或“IIC To UART:End of configuration. ”,等待3秒左右重新上电
“TFmini-S-LiDAR-Range-Sensor-Demo”文件夹下存有4个文件,分别对应4款硬件平台, 四个文件夹下各存有4个文件对应功能如下:

文件夹名

说明

UART 设备处于UART模式,进行数据获取
UART_IIC 设备处于UART模式,进行模式切换
IIC 设备处于I2C模式,进行数据获取
IIC_UART 设备处于I2C模式,进行模式切换

软件

相关文件

TFmini-S 产品规格书

TFmini-S 产品说明书

TFmini-S安装建议

快速实现TFmini-S-IIC与电脑通信的操作说明
TFmini-S Product Manual
TFmini-S Datasheet

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 面对面工作的时候,会产生严重的干扰。

Q5:UART、I2C和GPIO工作电平是否支持3.3V和5V?

您好,UART、I2C和GPIO工作电平是3.3V的,若与5V的接口通信,须加电平转换电路。

售后

联系人:欧工
EMAIL:2355861365@qq.com
QQ:2355861365
微信:扫下方二维码添加
欧工企业微信联系二维码.png

说明:进行售后服务前,请准备好客户信息(定货单位、定货人等),以供验证