TF-Luna LiDAR Range Sensor教程

资料

程序

说明:

模式须在上电前确定,确定是否连接第5脚
“TF-Luna-LiDAR-Range-Sensor-Demo”文件夹下存有4个文件,分别对应4款硬件平台, 四个文件夹下各存有2个文件对应功能如下:

文件夹名

说明

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

软件

相关文件

TF-Luna 产品说明书
TF-Luna 产品规格书

Luna A05 Product Manual
TF-Luna A05 Datasheet


说明

产品简介

TF-Luna 是一款基于 ToF 原理的单点测距雷达,采用 850nm 红外光源,配合独特的光学,电学设计,可以实现稳定、精准、高灵敏的距离测量。
产品内置多种应用环境及目标的适配算法,并开放了多种可调节配 置和参数。可以保证在复杂环境中具有优良的测距性能,满足客户复杂的应用场景需求。

产品特点

  • 体积小
  • 重量轻
  • 低功耗
  • 性价比高

应用场景

  • 辅助对焦
  • 电梯投影
  • 入侵检测
  • 料位测量

规格参数

产品TF-Luna LiDAR Range Sensor
产品性能测量范围 0.2m~8m@90%反射率(室内0Klux)

0.2m~2.5m@10%反射率(室内0Klux)
0.2m~8m@90%反射率(室外90Klux)
0.2m~2.5m@10%反射率(室外90Klux)

准确度±6cm@(0.2m-3m)
±2%@(3m-8m)
距离分辨率1cm
帧率1~250Hz(可调)
抗环境光能力70Klux
工作温度-10℃~60℃
光学参数光源VCSEL
中心波长850nm
人眼安全Class1(IEC60825)
视场角
电学参数供电电压3.7V-5.2V
平均电流≤70mA
功耗≤0.35W
峰值电流150mA
通信电平LVTTL(3.3V)
通信接口UART/I2C
其他尺寸35mm*21.25mm*13.5mm(长*宽*高)
壳体材料ABS/PC
储存温度-20℃~75℃
重量<5g

外观结构


工作原理

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

通信接口

UART  /  I2C  /  I/O

  • UART / I2C
UART接口

默认波特率

115200(可调)

数据位

8

停止位

1

奇偶校验

None


  • I2C接口

    最大传输速率

    400kbps

    主从模式

    从机模式

    默认地址

    0x10

    地址范围

    0x08~0x77

  • I/O模式:
I/O 输出模式下,探测信息由引脚 6 的高低电平表示。当输出为近区电平时,测量值大于滞回区间的远端点后,输出切换为远区电平;当输出为远区电平时,测量值小于滞回区间的近端点时,输出切换为近区电平。(高电平:3.3V,低电平:0V)

接线说明


编号

功能

说明

1

+5V

电源正极

2

RXD/SDA

接收/数据

3

TXD/SCL

发送/时钟

4

GND

电源地

5

接口配置输入

接地:启动为I2C模式
悬空或者接3.3V:启动为串口模式

6

复用输出

开关量模式功能:开关量输出
I2C模式且开关量模式关闭:数据准备好指示

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

软件和示例使用说明

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

操作系统/硬件平台

编程语言/软件

Windows电脑上位机软件
Raspberry PiPython、C(WiringPi)
Raspberry Pi PicoMicroPython
ArduinoC(Arduino IDE)
ESP32C(Arduino IDE)
折叠

Windows下快速测试

准备材料

硬件连接


测试步骤

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

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

Raspberry Pi下使用

树莓派环境配置

树莓派串口配置

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

sudo raspi-config

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

enable_uart=1

然后重启树莓派:

sudo reboot

树莓派开启I2C

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

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



然后重启树莓派:

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版本,如果没有出现说明安装出错

树莓派系统为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

执行示例:


硬件连接

UART模式:(第五脚在上电前悬空或接3.3V,通信线连接GPIO14、GPIO15)                      IIC模式:(第五脚在上电前接地,通信线连接GPIO2、GPIO3)

软件示例

前置操作

将程序包下载到树莓派中

wget https://www.waveshare.net/w/upload/a/aa/TF-Luna-LiDAR-Range-Sensor-Demo.zip

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

unzip TF-Luna-LiDAR-Range-Sensor-Demo.zip -d ./TF-Luna-LiDAR-Range-Sensor-Demo

执行示例:


运行C语言例程

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

cd TF-Luna-LiDAR-Range-Sensor-Demo/

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

cd Raspberry\ Pi/WiringPi/UART 

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

gcc -o main main.c -lwiringPi

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

sudo ./main

执行示例:

运行Python语言例程

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

cd TF-Luna-LiDAR-Range-Sensor-Demo/

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

cd Raspberry\ Pi/Python/UART 

运行程序

python3 main.py

执行示例:


Raspberry Pi Pico下使用

硬件连接

UART模式:(第五脚在上电前悬空或接3.3V,通信线连接GPIO8、GPIO9)                         IIC模式:(第五脚通电前先接地,通信线连接GPIO8、GPIO9)

软件调试

前置操作

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点操作流程:

连接成功效果如下:


运行示例

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

调试效果如下:

Arduino下使用

硬件连接

UART模式:(第五脚通电前悬空或接3.3V,信号线连接D0、D1)                                   IIC模式:(第五脚通电前先接地,信号线连接SDA、SCL)

软件调试

默认模式为UART,若进行模式切换,请记住当前模式
下文操作以运行"UART"例程为例。若使用I2C接口,请确保已连接和设置好对应接口,操作类似。
1.安装Arduino(Arduino安装包
2.打开下载的示例程序(示例程序
3.依此进入“TF-Luna-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点操作流程:

  • 调试效果如下:

ESP32下使用

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

硬件连接

UART模式:(第五脚通电前悬空或接3.3V,信号线连接GPIO16、GPIO17)                                   IIC模式:(第五脚通电前先接地,信号线连接GPIO16、GPIO17)

软件调试

前置操作


  • 双击运行下载下来的应用程序

  • 打开Arduino IDE查看是否安装成功

运行示例

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

  • 以下为操作流程:
  • 调试效果如下: