(SKU:SEN0259)TF Mini LiDAR(ToF) 激光测距传感器
目录 |
简介
TFmini
TF Mini LiDAR是一款基于飞行时间技术(ToF)的单向激光测距仪。它由特殊的光学和电子设备构成,内部集成了面向室内室外各种应用环境的适配算法,雷达身材小巧但测距性能优良。可作为测距工具用来检测前方障碍物的距离;亦可以作为机器人的眼睛,为机器人的安全避障和路线选择提供距离信息;在各种机器控制的场景,支持系统的自动化;因为它体积小、重量轻及功耗低的特点,同样适合用作无人机定高和地形跟随。
TF Mini最大探测距离12m,支持100Hz采样分辨率,6米内精度为在4cm以内;6~12米,精度在6厘米以内,FOV视场2.3°,抗干扰性强,可在室外强光下工作,整体重量轻至4.7g。
TF Mini LiDAR采用UART (TTL)通讯接口,可用标准5V供电,平均功耗0.6W,兼容各种arduino控制器。配合DFRobot Gravity IO Expansion Shield,可直插Arduino,无需额外接线。配合DFRobot开发的Arduino库,可以非常方便地集成到系统中。
注意事项:
- 产品在探测高反射率物体,如镜面、光滑地砖时, 会有失效的风险。
- 当产品与被测目标之间有透明物体,如玻璃、水时,会有失效的风险。
- 请勿直接用手触碰线路板。如有需求,请佩戴静电手环或防静电手套。
TFmini Plus
TFmini Plus是基于我们前面推出的TFmini的升级项目,它是一款小型化,单点测距的产品,配合独特的光学、电学、算法设计,能实现稳定、精准、高灵敏度和高速的距离测量的功能。
TFmini Plus基于TOF(Time of Flight)即飞行时间原理。工作时,产品周期性的向外发出近红外光调制波,调制波遇物体后反射。通过测量调制波往返相位差,得到飞行时间,从而计算出产品与被测目标之间的相对距离。
产品本身既具有TFmini的低成本、小体积、低功耗、测距远等几大优势外,还进一步提升了产品的整体性能。提高了产品的输出帧率,由原来的100Hz提升到了1000Hz,反应更为灵敏;缩小了测距盲区,盲区缩小至10cm;提高了数据准确性及稳定度,还增加了IP65等级防护,能有效防尘防水,在室外强光、不同温度、不同反射率等不同环境下适应性更强,功耗更低,探测频率也更加灵活。同时兼容UART和IIC通信接口,可通过发送指令进行切换。采用标准5V供电,平均功耗仅0.55W,兼容各种Arduino控制器,配合DFRobot开发的Arduino库,可以非常方便地集成到系统中,使用起来更加便捷。
产品尺寸仅为35*21*18.5mm,和我们的大拇指大小相当,身材小巧但测距性能优良,可作为测距工具用来检测前方障碍物的距离;也可在我们的创客爱好者手中成为机器人的眼睛,为机器人的安全避障和路线选择提供距离信息;亦可应用到汽车上作为防撞预警;为无人机定高辅助无人机降落等各类场景中。
注意事项:
- 本产品只能由合格的专业人员维修,且只能使用原厂备件,以保证产品的性能和安全性。
- 产品本身无极性保护和过电压保护,请按说明书内容正确接线和供电。
- 产品的工作温度为 -20℃~60℃,请勿在此温度范围外使用,以免产生风险。
- 产品的存储温度为 -20℃~75℃,请勿在此温度范围外存储,以免产生风险。
- 请勿打开外壳进行本使用说明以外的装配或保养,以免影响产品防护性能,造成产品失效。
- 产品在探测高反射率物体,如镜面、光滑地砖、平静的牛奶液面时,会有失效的风险。
- 当产品与被测目标之间有透明物体,如玻璃、水时,会有失效的风险。
- 当产品发射接收窗口被污物覆盖时,会有失效的风险,请保持窗口干净。发射接收窗口为红透亚克力材质,请勿让产品接触酒精,会导致产品损坏。
- 本产品线缆较细,请在使用时不要用力拉拽线缆,会导致产品损坏。
技术规格
TFmini
- 电压适用范围:4.5V~6V
- 通讯接口:UART(TTL)
- 工作范围:0.3m~12m(@室内)
- 10%反射率时最大范围:5m
- 平均功耗:0.6W
- 接收角:2.3°
- 最小分辨率:5mm
- 刷新频率:100Hz
- 测距精度:1% (<6m),2%(6~12m)
- 测距单位:mm
- 波段:850nm
- 尺寸:42mm×15mm×16mm
- 工作温度: 0℃~60℃
- 存储温度:为 -20℃~75℃
- 抗环境光:70Klux
- 重量:4.7g
TFmini Plus
产品性能
- 测量范围:0.1m~12m
- 准确度:±5cm@(0.1-6m),±1%@(6m-12m)
- 距离分辨率:5mm
- 帧率:1-1000Hz(可调)
- 抗环境光能力:70klux
- 工作温度:-20℃~60℃
- 防护等级:IP65
- 光学参数
- 光源:LED
- 中心波长:850nm
- 信号接收角:3.6°
电学参数
- 输入电压:5V±0.5V
- 平均电流:≤110mA
- 功耗:550mW(低功耗模式:85mW)
- 峰值电流:500mA
- 通信电平:LVTTL(3.3V)
- 通信接口:UART、IIC、I/O
其他
- 壳体材质:ABS+PC
- 存储温度:-20℃~75℃
- 重量:12g
- 尾线线长:30cm
引脚说明
|
|
使用教程
此处共列出两种方式,旨在让大家对单点激光测距仪有一个直观的认识。
- Arduino使用方法
- PC上位机调试
- 黑白线检测(巡线检测)
准备
- 硬件
- 1 x DFRduino UNO R3
- 1 x IO 传感器扩展板 V7.1
- 1 x Gravity: I2C LCD1602彩色背光液晶屏(部分项目使用)
- 1 x 7.4V 2500MA 锂电池(带充放电保护板)
- 1 x USB to Serial 转串口
- 若干 杜邦线
- 软件
- Arduino IDE 点击下载Arduino IDE
- DFRobot TF Mini库 点击下载TF Mini库
- DFRobot LCD库文件 点击下载DFRobot_RGBLCD(Github)
Arduino调试方法(PC串口)
鉴于TF mini为串口设备,而普通Arduino只有一个硬件串口,所以推荐使用软串口来配合传感器使用,用户也可以使用多串口设备,诸如Arduino Leonardo,Arduino Mega2560等设备,此处使用最常见的Arduino UNO作为控制器,定义D12和D13为软串口。
Arduino连线图
- 使用PC端的串口软件来显示检测的距离以及对整个系统供电
Arduino调试代码
- 需要使用PC串口工具,读到的数据会显示在串口工具界面
/* * @File : DFRobot_TFmini_test.ino * @Brief : This example use TFmini to measure distance * With initialization completed, we can get distance value and signal strength * @Copyright [DFRobot](http://www.dfrobot.com), 2016 * GNU Lesser General Public License * * @version V1.0 * @date 2018-1-10 */ #include <DFRobot_TFmini.h> SoftwareSerial mySerial(12, 13); // RX, TX DFRobot_TFmini TFmini; uint16_t distance,strength; void setup(){ Serial.begin(115200); TFmini.begin(mySerial); } void loop(){ if(TFmini.measure()){ //Measure Distance and get signal strength distance = TFmini.getDistance(); //Get distance data strength = TFmini.getStrength(); //Get signal strength data Serial.print("Distance = "); Serial.print(distance); Serial.println("cm"); Serial.print("Strength = "); Serial.println(strength); delay(500); } delay(500); } |
- 串口软件显示数据格式如下
Distance = 1000 mm Strength = 688
Arduino LCD距离数值显示
实际应用场景中,传感器一般会在脱机状态下工作,我们特别提供了一个使用案例,使用锂电池供电,用LCD来显示距离测量数据,非常适合室外使用。
Arduino连接图
Arduino测试代码
/* * @File : DFRobot_TFmini_test.ino * @Brief : This example use TFmini to measure distance * With initialization completed, we can get distance value and signal strength * @Copyright [DFRobot](http://www.dfrobot.com), 2016 * GNU Lesser General Public License * * @version V1.0 * @date 2018-1-10 */ #include <Wire.h> #include <DFRobot_RGBLCD.h> #include <DFRobot_TFmini.h> //TF Mini header file SoftwareSerial mySerial(12, 13); // RX, TX DFRobot_TFmini TFmini; uint16_t distance,strength; unsigned int lcd_r = 0, lcd_g = 0, lcd_b = 0; unsigned long delaytime = 0, lighttime = 0; DFRobot_RGBLCD lcd(16, 2); void setup() {lcd.init(); delay(5000); Serial.begin(115200); Serial.println("hello start"); TFmini.begin(mySerial); lighttime = millis(); lcd.setCursor(0, 0); lcd.print("Dis:"); lcd.setCursor(0, 1); lcd.print("Str:"); lcd.setRGB(255, 255, 000); } void loop() { /******************LCD*******************/ lcd_r = random(256); delayMicroseconds(10); lcd_g = random(256); delayMicroseconds(10); lcd_b = random(256); if (millis() - lighttime > 3000) { lcd.setRGB(lcd_r, lcd_g, lcd_b); lighttime = millis(); } //delay(100); /**************TF Mini***************/ if(TFmini.measure()){ //Measure Distance and get signal strength distance = TFmini.getDistance(); //Get distance data strength = TFmini.getStrength(); //Get signal strength data lcd.setCursor(5, 0); //LCD display lcd.print( distance / 10000); lcd.print( distance/ 1000 % 10); lcd.print('.'); lcd.print( distance / 100 % 10); lcd.print( distance / 10 % 10); lcd.print( distance % 10); lcd.print(" m"); lcd.setCursor(5, 1); lcd.print(strength / 10000); lcd.print(strength / 1000 % 10); lcd.print(strength / 100 % 10); lcd.print(strength / 10 % 10); lcd.print(strength % 10); } } |
- LCD显示屏上显示下列数据格式
Dis: 05.000 m Str: 00600
PC上位机显示
除了通过单片机来读取数据外,调试阶段,我们还可以使用PC上位机来读取距离输出。点击此处下载
连接图
将TF Mini通过一个USB转TTL模块连接到电脑上,通过上位机读取数据
上位机数据显示
黑白线检测
TF Mini激光测距雷达是一种光学传感器,但凡光学传感器,对于光的敏感度会比较高。我们可以利用这一特性实现近距离黑白线检测。(注:黑色的反射率低;白色的反射率高;)
我们利用信号强度“Strength”来分辨两种颜色。
接线图
Arduino代码
- 注意:代码需与TF Mini库配合使用
/* * @File : DFRobot_TFmini_test.ino * @Brief : This example use TFmini to measure distance * With initialization completed, we can get distance value and signal strength * @Copyright [DFRobot](http://www.dfrobot.com), 2016 * GNU Lesser General Public License * * @version V1.0 * @date 2018-1-10 */ #include <DFRobot_TFmini.h> SoftwareSerial mySerial(12, 13); // RX, TX DFRobot_TFmini TFmini; uint16_t distance,strength; void setup(){ Serial.begin(115200); TFmini.begin(mySerial); } void loop(){ if(TFmini.measure()){ //Measure Distance and get signal strength strength = TFmini.getStrength(); //Get signal strength data Serial.print("Strength = "); Serial.println(strength); } } |
- 下载好程序后,在同一距离连续地反复测量黑色和白色纸张,通过串口绘图工具可见信号强度的变化情况
常见问题
(此处添加TF Mini常见问题解答)
更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。