(SKU:SEN0259)TF Mini LiDAR (12m)

来自DFRobot Product Wiki
跳转至: 导航搜索
产品名称

Update/modify/delete Forbidden, 禁止更改本图,请更改图片名称,避免覆盖上传

目录

简介

TF Mini LiDAR(12m)是一款基于飞行时间技术(ToF)的单向激光测距仪。它由特殊的光学和电子设备构成,体积小且功耗低。 ToF是飞行时间(Time of Flight)的缩写,即传感器发出经调制的近红外光遇物体后反射,通过计算发射与反射的时间差或相位差来换算与被照射物的距离,从而得到深度的信息。 雷达内置室内外各应用环境的适配算法,使得雷达仅以如此小巧的身材便具有了优良的测距性能,使用起来十分方便。



技术规格

  • 电压适用范围: 4.5V~6V
  • 工作范围 :0.3m~12m(@室内)
  • 10%反射率时最大范围: 5m
  • 平均功耗: 0.5W
  • 接收角 :2.3°
  • 最小分辨率 : 5mm
  • 刷新频率 :100Hz
  • 测距精度 :1%(6m 内),2%(6m~12m)
  • 测距单位 :mm
  • 波段:850nm
  • 尺寸:42mm×15mm×16mm
  • 工作温度: -20℃~60℃
  • 抗环境光: 70klux
  • 重量:6.1g
  • 通讯接口: UART(TTL)
  • 主要应用: 机器控制和安全传感器、机器人距离探测、无人机定高及地形跟随


  • 注意事项:
     本型号激光雷达测距范围是30~1200cm,若测量距离未在此范围内,则测量数据会异常。
     本产品采用潮湿敏感型元件,避免储运及工作于高湿度高温度环境中。 避免产品处于酸性或浓硫等较恶劣环境下使用


引脚说明

引脚图
标号 名称 功能描述
黑线 GND 电源负极
红线 VCC 电源正极
蓝线 TXD 串口接收
绿线 RXD 串口输出


使用教程

此处共列出两种方式,旨在让大家对单点激光测距仪有一个直观的认识。


准备

  • 硬件
    • 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 转串口
    • 若干 杜邦线
  • 软件


接线图

下列几种连接电路图分别对应相应的程序

  • 接线图1是在需要使用PC端的串口软件来显示检测的距离以及对整个系统供电(使用PC供电时,需要考虑供电是否充足,否则会导致异常如掉串口,以及没有数据)
  • 接线图2只需要加上移动的电源(电压7V-12V)便可以进行移动测试
  • 接线图3是直接使用TF Mini的来识别黑色或白色道路的接法
  • 接线图4是直接使用TF Mini的官方上位机的接法

PC串口显示

串口显示接法


LCD1602显示(适合室外)

LCD显示接法


可用于近距离识别黑色或白色线路或物体

识别黑白色接法


上位机

上位机显示接法

代码

  • 注意:代码需与TF Mini库配合使用

识别障碍物距离

  • 需要使用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("mm");
        Serial.print("Strength = ");
        Serial.println(strength);
        delay(500);
    }
    delay(500);
}


  • 串口软件显示数据格式如下
 Distance = 1000 mm                
 Strength =  688



识别距离并以LCD显示


/*
  * @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


分辨黑白颜色

    • (利用信号信号强度“strength”)

/*
  * @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);  
    }
}    

                              


  • 下载好程序后,在同一距离连续地反复测量黑色和白色纸张,通过串口绘图工具可见信号强度的变化情况
串口绘图


上位机

  • 配合上位机显示距离(标准数据格式)
电路连接图3

测距实例

  • 识别距离并以LCD显示
TFMini.PNG

常见问题

(此处添加TF Mini常见问题解答)

更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。


更多

(此处添加TF Mini相关的资料)



DFshopping car1.png [Link DFRobot商城购买链接]

个人工具
名字空间

变换
操作
导航
工具箱