_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 锂电池 (带充放电保护板)
- 若干 杜邦线
-
软件
- Arduino IDE 点击下载Arduino IDE
下列两种连接电路图分别对应相应的程序
- 接线图1只需要加上移动的电源(电压7V-12V)便可以进行移动测试
- 接线图2是在需要使用PC端的串口软件来显示检测的距离以及对整个系统供电(使用PC供电时,需要考虑供电是否充足,否则会导致异常如掉串口,以及没有数据)
点击下载库文件[下载链接]。如何安装库? 如果教程中不涉及库的使用,请删除此提醒。
|
/*!
@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);
}
}
|}
- 需要使用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();
}
}
|}
- rgb显示屏上显示下列数据
Dis: 00.00 m
Str: 00000
- 串口软件显示数据如下
-------------------------DISPLAY--------------------------
Distance: cm Strength:
还没有客户对此产品有任何问题,欢迎通过qq或者论坛联系我们!
| 更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。 |
[Link DFRobot商城购买链接]