_SKU_SEN0238_DE LIDAR_TF01_One_ _Way_RangeFinder_Lidar - jimaobian/DFRobotWikiCn GitHub Wiki

[[File:SEN0238_Pic.jpg|产品名称

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

]]

简介

DE-LIDAR TF01 One - Way RangeFinder Lidar是一款单向测距传感器,基于ToF(Time of Flight)原理,配合独特的光学、电学、设计,以达到稳定、精准、高灵敏和高速的距离测量。 DE-LIDAR TF01测量最大有效距离为10m,灵敏度高,测量精度为1%,测量扫描频率最高可达500Hz,每秒 500 次的速率更新测量距离,数据更加精确,数据传输采用串口通信,波特率为115200bps。 传感器按照IP65 级别防护设计,防尘、防水、抗腐蚀。基于 ToF 原理,可在100Klux强光下工作,耐受温度、湿度、光线、电子、气流等干扰。

技术规格

  • 工作电压:5±5%V
  • 功率大小 :≤1W
  • 量程范围:光照强度100klux以下,30-1000cm
  • 发射半角:1.5°
  • 接收半角:1.5°
  • 分辨力 :5米处可探测到最小物体尺寸为4-6cm
  • 分辨率 :对距离变化的敏感度为0.5cm
  • 工作中心波长:850nm
  • 接口类型:串口,波特率115200bps
  • 工作温度:-10-60 ℃
  • 储存温度:0-70 ℃
  • 产品尺寸:51*36*48 mm
  • 注意事项:

    激光雷达测距在30cm-1000cm,在30cm距离内检测,检测结果会直接显示30cm的数据,传感器应在大于30cm距离下进行使用;     防止灰尘等异物进入透镜内影响造成出光效果;     本产品采用潮湿敏感型元件,避免储运及工作于高湿度高温度环境中。 避免产品处于酸性或浓硫的环境下使用。

引脚说明

| | | | -------------------------------- | | | :引脚图 | |

标号 名称 功能描述
红线 VCC 电源正极5V
黑线 GND 电源负极
白线 RXD 串口接收
绿线 TXD 串口输出

表名

使用教程

此处共列出两种方式,旨在让大家对传感器有一个直观的认识,该传感器还可以用在无人机定高地形跟随等方面

准备

  • 硬件
    • 1 x Genuino 101 Intel Curie 开发板
    • 1 x IO 传感器扩展板 V7.1
    • 1 x Gravity LCD1602 RGB Backlight Module液晶模块
    • 1 x 7.4V 2500MA 锂电池 (带充放电保护板)
    • 若干 杜邦线
  • 软件

接线图

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

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

接线图1(对应样例代码1)

电路连接图1

接线图2(对应样例代码2)

电路连接图2

样例代码

点击下载库文件[下载链接]。如何安装库? 如果教程中不涉及库的使用,请删除此提醒。

样例代码1(对应接线图1)

|


/*!
   @file SEN0238.ino
   @brief DE-LIDAR TF01 One - Way RangeFinder Lidar
   @n [Get the module here]()
   @n This is an example of a distance measurement.
   @n [Connection and Diagram](http://wiki.dfrobot.com.cn/index.php?title=(SKU:SEN0238)DE-LIDAR_TF01_One_-_Way_RangeFinder_Lidar#.E6.A0.B7.E4.BE.8B.E4.BB.A3.E7.A0.81)

   @copyright  [DFRobot](http://www.dfrobot.com), 2017
   @copyright GNU Lesser General Public License

   @author [lijun]([email protected])
   @version  V1.0
   @date  2017-05-02
*/

#include <Wire.h>
#include <DFRobot_RGBLCD.h>


unsigned int Distance = 0, Distance1 = 0;  //距离
unsigned int Strength = 0, Strength1 = 0;  //强度,值越大,距离越精确
unsigned int lcd_r = 0, lcd_g = 0, lcd_b = 0;  //rgb显示屏彩色参数
unsigned char buffer_RXD[9] = {0}; //串口接收数据
unsigned char CR = 0;
char cha = 0;
unsigned long delaytime = 0, lighttime = 0;//检测距离时间,rgb灯光变换时间

DFRobot_RGBLCD lcd(16, 2); //parameter1:LCD address; parameter2:RGB address; 16 characters and 2 lines of show

void setup()
{
  Serial1.begin(115200);
  lcd.init();  //初始化rgb显示屏
  delaytime = millis();  //取系统当前时间
  lighttime = millis();  //
  lcd.setCursor(0, 0);//设置点(0,0)开始显示Dis
  lcd.print("Dis:");
  lcd.setCursor(0, 1);//设置点(0,1)开始显示Str
  lcd.print("Str:");
  lcd.setRGB(255, 255, 000);//rgb屏显示黄色背光
}

void loop()
{
  lcd_r = random(256);  //随机取r值
  delayMicroseconds(10);  //让随机数有一定变化,但也有可能相同
  lcd_g = random(256);  //随机取g值
  delayMicroseconds(10);  //
  lcd_b = random(256);  //随机取b值
  if (millis() - lighttime > 3000)  //等待3秒中变化一次背光颜色
  {
    lcd.setRGB(lcd_r, lcd_g, lcd_b);  //
    lighttime = millis();   //取系统当前时间
  }

  if (millis() - delaytime > 100)//等待0.1秒得到检测的数据
  {
    while (Serial1.available())  //检测是否有串口数据
    {
      for (int i = 0; i < 9; i++)   //读取检测数据
      {
        cha = Serial1.read();
        buffer_RXD[i] = (char)cha;
        //delay(2);
      }

      CR = 0;
      for (int i = 0; i < 8; i++)  //求和
      {
        CR += buffer_RXD[i];
      }

      if (CR == buffer_RXD[8])   //校验
      {
        Strength = (buffer_RXD[5] << 8) + buffer_RXD[4];
        Strength1 = Strength;
        Distance = ( buffer_RXD[3] << 8 ) + buffer_RXD[2];
        Distance1 = Distance;
      }
      else  //
      {
        Distance = Distance1;
        Strength = Strength1;
      }
    }
    delaytime = millis();

    lcd.setCursor(5, 0);  //
    lcd.print(Distance / 1000);   //显示检测距离
    lcd.print(Distance / 100 % 10);   //
    lcd.print('.');
    lcd.print(Distance / 10 % 10);
    lcd.print(Distance % 10);
    lcd.print(" ");
    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);
  }
}

|}

样例代码2(对应接线图2)

  • 需要使用PC串口软件,波特率为115200bps,ASCII字符显示

|


/*!
   @file SEN0238_uart.ino
   @brief DE-LIDAR TF01 One - Way RangeFinder Lidar
   @n [Get the module here]()
   @n This is an example of a distance measurement.
   @n [Connection and Diagram](http://wiki.dfrobot.com.cn/index.php?title=(SKU:SEN0238)DE-LIDAR_TF01_One_-_Way_RangeFinder_Lidar#.E6.A0.B7.E4.BE.8B.E4.BB.A3.E7.A0.81)

   @copyright  [DFRobot](http://www.dfrobot.com), 2017
   @copyright GNU Lesser General Public License

   @author [lijun]([email protected])
   @version  V1.0
   @date  2017-05-02
*/

unsigned int Distance = 0, Distance1 = 0;
unsigned int Strength = 0, Strength1 = 0;

unsigned char buffer_RXD[9] = {0}; //串口接收数据
unsigned char CR = 0;
char cha = 0;
unsigned long delaytime = 0;


void setup()
{
  Serial.begin(115200);  //
  Serial1.begin(115200);  //
  delaytime = millis();  //取系统当前时间
}

void loop()
{
  if (millis() - delaytime > 100)  //等待0.1秒得到检测的数据
  {
    while (Serial1.available())  //检测是否有串口数据
    {
      for (int i = 0; i < 9; i++)  //读取检测数据
      {
        cha = Serial1.read();
        buffer_RXD[i] = (char)cha;
        //delay(2);
      }

      CR = 0;
      for (int i = 0; i < 8; i++)  //求和
      {
        CR += buffer_RXD[i];
      }

      if (CR == buffer_RXD[8])  //校验
      {
        Strength = (buffer_RXD[5] << 8) + buffer_RXD[4];
        Strength1 = Strength;
        Distance = ( buffer_RXD[3] << 8 ) + buffer_RXD[2];
        Distance1 = Distance;
      }
      else  //
      {
        Distance = Distance1;
        Strength = Strength1;
      }
    }
    delaytime = millis();  //
    //显示检测
    Serial.println("-------------------------DISPLAY--------------------------");
    Serial.print("Distance: ");
    Serial.print(Distance,DEC);
    Serial.print(" cm");
    Serial.print("                ");
    Serial.print("Strength: " );
    Serial.print(Strength,DEC );
    Serial.println();
  }
}

|}

结果

代码1

  • rgb显示屏上显示下列数据

 Dis: 00.00 m  Str: 00000

代码2

  • 串口软件显示数据如下

 -------------------------DISPLAY--------------------------  Distance:   cm                Strength:

常见问题

还没有客户对此产品有任何问题,欢迎通过qq或者论坛联系我们!

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

更多

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

⚠️ **GitHub.com Fallback** ⚠️