TOF MINIF Range Sensor
来自Waveshare Wiki
|
| ||||||||||||||||||||
| ||||||||||||||||||||
说明
产品简介
这款激光测距模组基于 D-TOF 单点激光传感器,内置 MCU 并完成外壳封装,具备阳光抑制与污迹补偿算法,可快速精准测量目标距离。 采用高精度光学准直技术,即使在 100K Lux 强光环境下,也能稳定测量不同目标的距离。
免责声明
| 生命保障政策 |
| TOF MINIF Range Sensor 系列未被授权用于失效的安全关键应用(如生命支持),在这种应用中,TOF MINIF Range Sensor 系列产品的故障可能会导致严重的人身伤害或死亡。以这种方式使用或销售 TOF MINIF Range Sensor 系列产品的客户完全自行承担风险,并同意对 Waveshare 及其代表在此类安全关键应用中使用TOF MINIF Range Sensor 系列产品所造成的任何损害给予充分赔偿。 |
| 管理批准 |
| 由 Waveshare 提供的 TOF MINIF Range Sensor 系列传感器已经获得欧盟的激光产品认证,用户需要根据使用或销售此类产品的所在地区确认是否适用这些认证。用户开发的包含 TOF MINIF Range Sensor 系列传感器的所有产品必须在该管辖区内销售或销售此类产品之前,由管理任何给定管辖区激光产品的相关主管部门批准,并且用户应根据需要负责获得相关主管部门的批准。 |
应用场景
- 天花板检测
- 机器人避障
- 测量与检测
- 智能手势控制
- 料位测量
工作原理
TOF是一种绝对距离检测技术,即传感器发出经过调试的近红外光,遇物体后反射,传感器通过计算光线发射和反射时差或相位差,来换算被拍摄景物的距离,以产生深度信息。相比于双目方案与3D结构光方案,TOF具有工作距离远,适用场景广,较远距离精度高等优点。因此常被应用于人员接近检测、机器人避障、照相机自动对焦等场合。
产品参数
| 产品 | TOF Laser Range Sensor | TOF Laser Range Sensor (C) | TOF Laser Range Sensor (D) | TOF Laser Range Sensor Mini | TOF MINIF Range Sensor |
|---|---|---|---|---|---|
| 典型测距范围 | 短距:0.012 ~ 2.16m | 0.05 ~ 25.0m | 0.05 ~ 50.0m | 0.02 ~ 7.8m | 0.02 ~ 20m |
| 中矩:0.012 ~ 3.60m | |||||
| 长距:0.01 ~ 5.00m | |||||
| 典型测距精度 | 短距:精度 ±1.0cm,标准差 <0.3cm | ±3cm 标准差 <1.0cm @0.05~10m,<6.0cm @10~25m | ±3cm 标准差 <1.0cm @0.05~10m,<6.0cm @10~50m | ±4cm 标准差 <2.0cm @0.02~1m,<8.7cm @1~7.8m | <1m@±20mm,>1m@±2% |
| 中距:精度 ±1.0cm,标准差 <1.5cm | |||||
| 长距:精度 ±1.5cm,标准差 <0.5cm@0.01~3m, 标准差 <8cm@3~5m | |||||
| 刷新频率 | 30Hz | 100Hz | 50Hz | 30Hz | |
| 供电电压 | 4.3 ~ 5.2V | 4 ~ 5.6V | |||
| 工作温度 | -20°C ~ 65°C | -10℃~60℃ | |||
| 波长 | 940nm (符合 Class1 标准) | 905nm (波段审核中) | 940nm (波段审核中) | 940nm | |
| 视场角 (FOV) | 15° ~ 27° (多档位可调) | 1° ~ 2° | 2° ~ 3° | 3°±0.5° | |
| 通信接口 | UART (TTL 信号线电平 3.3V) | ||||
| CAN (2 个接口可同时作为 CAN 接口) | I2C (支持并联多个,从机地址为 0x08+模块ID) | - | |||
| I/O (输出互补电平) | - | ||||
| 通信波特率 | UART:115.2Kbps ~ 3000Kbps (默认 921.6Kbps) | 115200 | |||
| CAN:100K、250K、500K、1M (默认 1M) | I2C:可达 400Kbps | - | |||
| 级联数量 | UART 接口支持级联多达 8 个,CAN 接口支持级联多达 7 个 | 可通过 I2C 并联多达 8 个 | |||
| 抗环境光 | 较弱,约10K LUX,仅支持室内用 | 约 100K LUX 照度 (室内和室外均能用) | 100K Lux | ||
| 产品功耗 | 290mW (UART 主动输出,长距模式供电电压 5.0V,电流 58mA) | 250mW(UART 主动输出,供电电压 5.0V,电流 50mA) | 100mW (UART 主动输出,长距模式供电电压 5.0V,电流 20mA) | 170mW(UART 主动输出,供电电压 5.0V,电流 34mA) | |
| 产品重量 | 2.7g | 7.5g | 1g | 3.6g | |
| 长宽高 | 35.58 × 12 × 8.05mm | 22.7 × 28 × 13.6mm | 18.8 ×12.0 × 10.3mm | 35.5 x 16.2 x 13.5mm | |
协议解析
UART 通信流程
- 串口默认配置为:数据位 8bit,停止位 1bit,无奇偶校验,无流控制,默认波特率 115200。
- 本协议规范 MINIF 通过 UART 以 ASCII 格式输出距离数据,为确保数据可靠性与解析一致性,提供 ASCII 格式说明。
- 协议由 Header(帧头)、Distance(距离值)、Separator(分隔符)、Status(状态)和 Tail(帧尾)组成。
- 其中 Header、Separator和Tail为固定不变的数值,具体可以查阅以下表格;
- Distance 跟 Status 为距离有效值跟状态;
- 协议组成:
Header + Distance + Separator + Status + Tail
- 协议内容概述
| 帧结构 | 字节长度 | 描述 |
|---|---|---|
| Head | 1 | 帧头 |
| Distance | 1-5 | 距离值 |
| Separator | 2 | 分隔符 |
| Status | 1-3 | 状态 |
| Tail | 1 | 帧尾 |
示例
- 原始数据:
20 33 32 37 2C 20 00 0A
- 解析表:
| 数据帧 | 示例(HEX) | ASCII 字符 |
|---|---|---|
| Head | 20 | 空格 |
| Distance | 33 32 37 | 327 |
| Separator | 2C 20 | ,空格 |
| Status | 00 | 0 |
| Tail | 0A | \n |
- 即本次测量输出距离值为 327,单位 mm;状态为 0,表示距离有效。其中帧
头、分隔符、帧尾均为固定值。
产品尺寸
树莓派使用
- 关于树莓派系统安装与使用可以参考这个链接。
- 成功开机后,进行树莓派环境配置
下载程序
wget https://www.waveshare.net/w/upload/b/b7/TOF_MINIF_Range_Sensor_Demo.zip unzip TOF_MINIF_Range_Sensor_Demo.zip cd TOF_MINIF_Range_Sensor_Demo/
UART示例使用
开启树莓派 UART
- 在树莓派终端输入命令:sudo raspi-config nonint do_serial 2
- 再弹出的窗口中第一个选择NO,第二个选择YES,最后选择OK.
硬件连接
- 参考下图进行连接:
运行C程序
cd ~/TOF_MINIF_Range_Sensor_Demo/Raspberry/c/ make ./main
- 终端就会输出相关的信息,如下图:
运行Python程序
cd ~/TOF_MINIF_Range_Sensor_Demo/Raspberry/python/example python main.py
- 终端就会输出相关的信息,如下图:
Pico使用
硬件连接
- 参考下图进行连接:
Arduino Pico示例使用
- 进入到TOF_MINIF_Range_Sensor_Demo\Pico\Arduino\TOF_UART_Demo,双击TOF_UART_Demo.ino文件
- 选择开发板:
- 选择Pico的端口,然后进行编译上传
- 上传完成后,打开串口监测器,就会输出相关的信息,如下图:
Micropython示例使用
- 进入到TOF_MINIF_Range_Sensor_Demo\Pico\micropython,双击TOF_UART_Demo.py文件
- 选择开发板:
- 选择Pico的端口,然后运行程序
- Shell就会输出相关的信息,如下图:
C示例使用
- 进入到TOF_MINIF_Range_Sensor_Demo\Pico\c,用VS Code打开此文件夹
- 在Pico工具中,导入此工程:
- 导入成功后,点击Compile进行编译,编译通过后,将Pico进入boot模式,将UF2固件复制到RP2040磁盘中即可
- 打开串口调试会输出相关的信息,如下图:
ESP32S3使用
硬件连接
- 参考下图进行连接:
Arduino esp32示例使用
- 进入到TOF_MINIF_Range_Sensor_Demo\ESP32S3\Arduino\TOF_UART_Demo,双击TOF_UART_Demo.ino文件
- 选择开发板:
- 选择ESP32S3的端口,然后进行编译上传
- 上传完成后,打开串口监测器,就会输出相关的信息,如下图:
Micropython示例使用
- 进入到TOF_MINIF_Range_Sensor_Demo\ESP32S3\micropython,双击TOF_UART_Demo.py文件
- 选择开发板:
- 选择ESP32S3的端口,然后运行程序
- Shell就会输出相关的信息,如下图:
Arduino使用
Arduino示例使用
硬件连接
- 参考下图进行连接:
运行程序
- 进入到TOF_MINIF_Range_Sensor_Demo\Arduino\TOF_UART_Demo,双击TOF_UART_Demo.ino文件
- 选择开发板:
- 选择开发板的端口,然后进行编译上传
- 上传完成后,打开串口监测器,就会输出相关的信息,如下图:
FAQ

