TOF MINIS Range Sensor 使用教程

产品特性

该激光测距模组基于 D-TOF 单点激光传感器,内置 MCU,采用外壳封装,支持阳光抑制与污迹补偿算法,可测量目标距离。采用光学准直设计,在 100K Lux 光线强度下,可测量不同目标的距离。

免责声明

生命保障政策

TOF MINIS Range Sensor 系列未被授权用于失效的安全关键应用(如生命支持),在这种应用中,TOF MINIS Range Sensor 系列产品的故障可能会导致严重的人身伤害或死亡。以这种方式使用或销售 TOF MINIS Range Sensor 系列产品的客户完全自行承担风险,并同意对 Waveshare 及其代表在此类安全关键应用中使用 TOF MINIS Range Sensor 系列产品所造成的任何损害给予充分赔偿。

管理批准

由 Waveshare 提供的 TOF MINIS Range Sensor 系列传感器已获得欧盟激光产品认证。使用或销售此类产品前,请根据所在地区确认这些认证是否适用。包含 TOF MINIS Range Sensor 系列传感器的产品在对应地区销售前,需按当地激光产品管理要求取得相关主管部门批准。

应用场景

  • 智能设备距离检测
  • 机器人避障
  • 无人机定高
  • 液位检测
  • 工业自动化测距

工作原理

TOF 是一种绝对距离检测技术。传感器发出经过调制的近红外光,光线遇到物体后反射,传感器通过计算光线发射与反射之间的时间差或相位差,换算目标距离并生成深度信息。TOF 常用于人员接近检测、机器人避障、照相机自动对焦等场景。

产品参数

参数TOF MINIS Range Sensor
典型测距范围0.02 m ~ 5 m
视场角 (FOV)1.48°
刷新率30 Hz(此参数支持批量定制,最高 90 Hz)
抗环境光能力100K Lux
工作温度-20°C ~ +70°C
工作湿度35% ~ 80%RH
激光安全等级LASER CLASS 1 (IEC 60825-1: 2014)
防护等级IP68
波长940 nm
通信接口RS485
通信波特率115200
供电电压4 V ~ 5.6 V
产品功耗100 mW ~ 140 mW
平均电流 / 峰值电流25 mA / 26 mA
产品重量约 15.8 g
壳体材质PC
存储温度-40℃ ~ +80℃
产品尺寸直径 29.5 mm,高 18.00 mm,线长 60 cm

引脚说明

引脚标识管脚描述
1VCC电源正极
2GND电源地
3B-RS485 B
4A+RS485 A

协议解析

点击展开

RS485 通信

本产品使用 RS485 通信进行数据传输,传输协议为 Modbus RTU 从机模式。

串口默认配置:

参数
数据位8 bit
停止位1 bit
校验无奇偶校验
波特率115200 bps

寄存器说明

寄存器地址类型数据名称说明
00保持寄存器 (RW)距离单位 mm
01保持寄存器 (RW)置信度范围 0~100
02保持寄存器 (RW)地址从机设备地址

通信用例

读距离

请求帧:01 03 00 00 00 01 84 0A

返回帧:01 03 02 03 6D 79 59

  • 单次读取从机 0x01 的 00 寄存器
  • 距离值为 03 6D,大端序
  • 即距离值为 0x03 << 8 | 0x6D = 877 mm

读置信度

请求帧:01 03 00 01 00 01 D5 CA

返回帧:01 03 02 00 64 B9 AF

  • 单次读取从机 0x01 的 01 寄存器
  • 置信度值为 00 64,大端序
  • 即置信度为 0x64 = 100

写地址

请求帧:03 06 00 02 00 01 E8 28

返回帧:03 06 00 02 00 01 E8 28

  • 将从机 0x03 的 02 寄存器值修改为 01
  • 修改地址后设备会重启

连续读取

请求帧:01 03 00 00 00 02 C4 0B

返回帧:01 03 04 0C 62 00 64 59 56

  • 从机 0x01 从 00 寄存器开始,连续读取 2 个寄存器
  • 00 寄存器值为 0C 62,即距离为 3170 mm
  • 01 寄存器值为 00 64,即置信度为 100

注意事项

  • 出厂默认帧率为 30 Hz,高于 30 Hz 需要升级固件
  • 默认从机地址为 0x01,使用前可按寄存器用例说明自行更改地址
  • 本产品无过压保护或极性保护,接线前请确认线序和电压范围

快速测试

  • 测试软件 串口调试助手 搭配 USB TO TTL (B),用于快速查看串口输出。

  • 测试准备

    • Windows 电脑
    • USB TO TTL (B) 1 PCS
    • TOF MINIS Range Sensor 1 PCS
    • 配套线材
  • 硬件连接

    • 按下图连接。


  • 开始测试

    • 如上图硬件连接好后,打开对应软件,选择对应的端口,然后点击 OPEN 再点击 Start Poling。观察 Values 下的数据是否符合测量结果:


Raspberry Pi 使用

硬件接线

树莓派排针(UART)

  • 物理脚 8:TX(树莓派发)
  • 物理脚 10:RX(树莓派收)
  • GND:→ TTL 转 RS485 模块 GND(必须共地)

RS485 总线侧

  • TTL 转 RS485 模块 A → 设备 A+
  • TTL 转 RS485 模块 B → 设备 B-

如果读不到数据,优先把 A/B 对调试一次(不同模块/设备的 A/B 标识可能相反)。


1) 启用串口硬件(只做一次)

sudo raspi-config

进入:

  • Interface Options → Serial Port
  • “Login shell over serial?” 选 No
  • “Enable serial hardware?” 选 Yes



然后重启:

sudo reboot

2) 安装依赖(只做一次)

sudo apt update
sudo apt install -y python3-pip
pip3 install pyserial

3) 拷贝本文件夹到新树莓派

把整个 pi5_minis2_rs485_example/ 文件夹拷贝到新树莓派任意目录下(例如桌面/主目录均可)。

4) 找到正确串口端口名(关键)

不同树莓派/系统配置下,排针 UART 对应的设备名可能不同。先列出来:

ls -l /dev/ttyAMA* /dev/ttyS* /dev/serial*

经验顺序(从最常见到备选):

  1. /dev/ttyAMA0
  2. /dev/serial0
  3. 其它出现的 /dev/ttyAMA*

5) 运行示例(建议先手动指定端口)

例如端口是 /dev/ttyAMA0

python3 pi5_minis2_rs485_example.py --port /dev/ttyAMA0

正常输出类似:

Distance: 100 mm, Confidence: 100


无法正常读取数据时的最短排查顺序

  1. 换端口:--port /dev/ttyAMA0 ↔ --port /dev/serial0 ↔ 其它 ttyAMA*
  2. 对调 RS485 A/B
  3. 确认 TX/RX 没接反:8 -> DI10 -> RO
  4. 确认供电与共地正常(设备按手册供电)


ESP32-S3 使用

本章包含以下内容:

配置开发环境

1. 安装和配置

示例程序

硬件连接

按下图连接。


运行 Arduino ESP32 程序

  • 进入 TOF-MINIS-Range-Sensor\example\ESP32\esp32s3-arduino_example,双击 esp32s3-arduino_example.ino 文件。

  • 选择开发板:


  • 选择 ESP32-S3 的端口,然后编译并上传。

  • 上传完成后,打开串口监视器,查看输出信息。

运行 MicroPython 程序

  • 进入 TOF-MINIS-Range-Sensor\example\ESP32\esp32s3-python_example,双击 esp32s3-python_example.py 文件。

  • 设置芯片型号为 ESP32,选择对应端口:

  • 选择 ESP32-S3 的端口,然后运行程序。

  • Shell 中会输出相关信息。



Raspberry Pi Pico 使用

本章包含以下内容:

配置开发环境

1. 安装和配置

示例程序

硬件连接

按下图连接。


运行 Arduino Pico 程序

  • 进入 TOF-MINIS-Range-Sensor\example\pico\Arduino\TOF_UART_Demo,双击 TOF_UART_Demo.ino 打开工程。

  • 选择芯片型号与端口。


  • 上传完成后,打开串口监视器,查看输出信息。

运行 MicroPython 程序

  • 先给 Raspberry Pi Pico 刷入 MicroPython 固件。

  • 进入 TOF-MINIS-Range-Sensor\example\pico\pico-pico_micropython_example,通过 Thonny 双击 main.py 打开工程。

  • 选择开发板。

  • 选择 Raspberry Pi Pico 的端口,然后运行程序。

  • Shell 中会输出相关信息。


运行 C 示例程序

  • 进入 TOF-MINIS-Range-Sensor\example\pico\pico_sdk_example,使用 VS Code 打开此文件夹。

  • 在 Pico 工具中导入此工程。


  • 导入成功后,点击 "Compile" 进行编译。编译通过后,使 Pico 进入 BOOT 模式,将 UF2 固件复制到 RP2040 磁盘。

  • 打开串口调试工具,可查看输出信息。



Arduino 使用

本章包含以下内容:

配置开发环境

1. 安装和配置

  • Arduino 的环境搭建与基本使用请参考 R4 链接,R3 默认安装。
  • 环境搭建完成后,连接传感器并下载 示例程序

2. 硬件配置

  • Arduino 开发板的 IO 电平必须为 3.3 V。如果使用 5 V IO 电平,需经过电平转换,否则可能损坏传感器。
  • 使用 Waveshare R3/R4 时,需要将以下跳线帽设置为 3.3 V。
图片说明


Arduino UNO R3


Arduino UNO R4


Arduino UNO R4 WIFI

示例程序

硬件连接

按下图连接。

图片说明

Arduino UNO R3

Arduino UNO R4

运行程序

  • 进入 TOF-MINIS-Range-Sensor\example\Arduino\uno_r3_arduino_example,双击 uno_r3_arduino_example.ino 文件。

  • 选择开发板:

    图片说明


    Arduino UNO R3


    Arduino UNO R4
  • 选择开发板端口,然后编译并上传。

  • 上传完成后,打开串口监视器,查看输出信息。



效果展示

默认输出实时距离数据。如需使用其他示例,将对应示例值设置为 1 即可。

Arduino


MicroPython


Raspberry Pi



相关资料

示例程序

软件


技术支持

周一-周五(9:30-6:30)周六(9:30-5:30)

手机:13434470212

邮箱:services04@spotpear.cn

QQ:202004841