简介
TF-NOVA 是一款基于脉冲时间飞行法测距(PToF)的传感器,发射端的激光器经过发射透镜准直发射出脉冲激光信号,经被测物体的反射,回波信号进入接收透镜,被接收端的探测器检测到。内部电路可计算发射与回波信号的时间差,根据光速即可计算被测物体与LiDAR之间的距离。
一字探测区域
TF-NOVA可以实现水平14°和垂直1°的独特探测区域,可在1m外检测到25 × 1.7cm²的区域,面积相当于两根筷子平放。
体积小,更易集成
机身紧凑小巧,尺寸仅为26.5mm × 21.05mm × 12mm,体积约7 cm³,比5号电池还小,能够融入追求轻薄化、紧凑型的硬件架构之中,为系统集成提供极大的便利性与灵活性。
室外稳定检测
无论在户外强光下还是夜晚弱光环境中,TF-NOVA都能在2 m范围内准确地检测到小至5 cm的黑色低反射率障碍物,最大程度地保障设备的运行安全性。
接口齐全
提供多种主流数据接口例如UART、I²C、I/O,支持单机操作及网络组网使用。同时可配置为I/O输出模式,显著减少数据处理的工作量。
特性
- 体积小巧,易集成
- 角度14°x1°一字区域探测
- 室内外皆可稳定测量
- UART、I2C、IO三种输出方式
应用场景
- 智动门防撞
- 机器人避障
- 穿梭车避障
- 停车位检测
- 辅助对焦
技术规格
- 性能参数
- 测量范围:≥14m@90%反射率0Klux,≥13m@10%反射率0Klux,≥7m@90%反射率100Klux,≥4m@10%反射率100Klux
- 盲区:0.1m
- 准确度:±5cm@0.1-4m
- 精度:<1cm(1sigma)@0.1-4m
- 距离分辨率:1cm
- 帧率:1-900hz,默认100hz
- 光学性能
- 光源:VCSEL
- 中心波长:905nm
- 激光发射视场角:典型值14°x1°
- 激光安全等级:Class 1 Eye-safe [EN60825]
- 机械电气参数
- 平均功耗:< 500mW
- 启动峰值电流:< 850mA
- 启动时间:< 1s
- 供电电压:DC 5±5%V
- 工作温度:-25℃ ~ +70℃
- 存储温度:-30℃ ~ +80℃
- 尺寸:典型值26.5x21.05x12.0mm
- 重量:< 5g
- 硬件接口:1.25mm-5Pin
- 前窗口镜防护等级:IP65
引脚示意图

线序 | 颜色 | 功能描述 |
---|---|---|
PIN1 | 红线 | 5V |
PIN2 | 黑线 | GND |
PIN3 | 黄线 | TXD(3.3V)/SCL |
PIN4 | 绿线 | RXD(3.3V)/SDA |
PIN5 | 蓝线 | IO |
TF-NOVA通过指令和寄存器切换输出模式,默认为UART输出,详情指令查看使用手册。
尺寸图

接入Arduino使用教程
硬件准备
- Arduino UNO R3开发板 x1
- Arduino UNO IO 传感器扩展板 x1
- TF-NOVA LiDAR x1
- 1.25mm转2.54杜邦连接线 x1


软件准备
- 下载Arduino IDE: 点击下载Arduino IDE
- 下载DFRobot_TFmini库,该库为TF系列单点激光雷达通用库。
UART模式硬件连接

演示代码
#include <DFRobot_TFmini.h>
SoftwareSerial mySerial(8, 9); // RX, TX
DFRobot_TFmini TFmini;
char COM[6] = { 0x5A, 0x06, 0x0A, 0x01, 0x01, 0x6C }; //I2C模式指令
char COM1[4] = { 0x5A, 0x04, 0x11, 0x6F }; //保存设置指令
uint16_t distance, strength;
void setup() {
Serial.begin(9600);
TFmini.begin(mySerial);
/*
* 发送指令,需要切换为I2C输出模式时打开
*/
// mySerial.print(COM);
// delay(200);
// mySerial.print(COM1);
}
void loop() {
if (TFmini.measure()) {
distance = TFmini.getDistance();
strength = TFmini.getStrength();
Serial.print("Distance = ");
Serial.print(distance);
Serial.println(" cm");
Serial.print("Strength = ");
Serial.println(strength);
delay(100);
}
delay(100);
}
结果
打印采集到的距离值、信号强度值。
I2C模式硬件连接

演示代码
#include <Wire.h> //I2C library
#define deviceaddress 0x10
uint16_t data;
uint8_t COM[4] = { 0 };
uint8_t COM1[1] = { 0x00 }; //串口模式
uint8_t COM2[2] = { 0x01, 0x02 }; //保存、重启
uint8_t COM3[1] = { 0x64 }; //帧率值,默认0x64(100hz)
uint8_t COM4[1] = { 0 };
void i2c_writeN(uint8_t registerAddress, uint8_t *buf, size_t len) {
Wire.beginTransmission(deviceaddress);
Wire.write(registerAddress);
Wire.write(buf, len);
Wire.endTransmission();
}
int16_t i2c_readN(uint8_t registerAddress, uint8_t *buf, size_t len) {
uint8_t i = 0;
Wire.beginTransmission(deviceaddress);
Wire.write(registerAddress);
if (Wire.endTransmission(false) != 0) {
return -1;
}
Wire.requestFrom(deviceaddress, len);
delay(100);
while (Wire.available()) {
buf[i++] = Wire.read();
}
return i;
}
void setup() {
Wire.begin();
Serial.begin(9600);
/*
* 写入寄存器,需要修改帧率时打开
*/
// i2c_writeN(0x26, COM3, 1);
/*
* 写入寄存器,需要切换为UART模式时打开
*/
// i2c_writeN(0x1E, COM1, 1);
// delay(200);
// i2c_writeN(0x20, COM2, 2);
}
void loop() {
i2c_readN(0x00, COM, 2);
data = COM[1] << 8 | COM[0];
i2c_readN(0x26, COM4, 1);
Serial.print("Distance =");
Serial.print(data);
Serial.print(" cm");
Serial.print(" FPS =");
Serial.print(COM4[0]);
Serial.println(" hz");
delay(100);
}
结果
打印采集到的距离值、帧率值。
更多资料下载
常见问题
- UART、I2C输出模式通过指令或寄存器进行切换
- TF-NOVA工作电压5V,3.3V无法工作