(SKU:SEN0302)VL53L1X TOF Laser-ranging sensor

来自DFRobot Product Wiki
跳转至: 导航搜索
文件:.jpg
Gravity: VL53L1X ToF 激光测距传感器

目录

简介

VL53L1X激光测距传感器是一款基于时间飞行原理(TOF)设计的高精度测距传感器。与传统的技术不同,VL53L1X无论目标反射率如何,都能提供精确的距离测量,最高测量距离4米。
DF基于VL53L1X设计的传感器模块,采用Gravity-I2C接口,即插即用,支持3.3V~5V供电使用,兼容更多的主板,适应更多的应用场景。
相比同类型的VL53L0x测距模块,其测距距离更大,精度更高,达±0.5%,响应时间更快,大于或等于20ms。
VL53L1X的940nm垂直腔面发射激光器对人眼来说是完全不可见的,加上内部物理红外滤波器,可以实现更远的测距,更强的抗环境光的能力,以及更好的覆盖玻璃光学截面。

技术规格

  • 工作电压:3.3V-5V DC
  • 激光波长:940nm
  • 量程范围:10-4000mm
  • 测距角度:27°
  • 测距精度:±3%
  • I2C地址: 0x29(默认)
  • 工作温度:-20-70 ℃
  • 接口类型:标准Gravity接口
  • 产品尺寸:20*22 mm


引脚说明

引脚图
引脚描述
标号 名称 功能描述
1 绿线 D IIC数据线DATA
2 蓝线 C IIC时钟线CLK
3 黑线 - 电源负极GND
4 红线 + 电源正极VCC
  • GPIO1:传感器中断输出引脚,用来指示数据是否准备好
  • XSHUT:传感器关闭引脚,默认被拉高,当引脚被拉低时传感器进入关闭模式


使用教程

Arduino

准备

硬件

  • Arduino UNO控制板 x1
  • VL53L1X TOF Laser-ranging Sensor模块

软件


连接图

SEN0302连接图

样例代码

  • 测距

  获取目标物体的距离。

/*!
   file getDistance.ino
   SEN0302 Distance Ranging Sensor
   The module is connected with Arduino Uno to read the distance
   This demo output the distance between sensor and target
   Copyright    [DFRobot](http://www.dfrobot.com), 2016
   Copyright    GNU Lesser General Public License
   version  V0.1
   date  2019-4-22
*/
#include "Arduino.h"
#include "Wire.h"
#include "DFRobot_VL53L1X.h" 

DFRobot_VL53L1X sensor(&Wire);
uint16_t actDistance;

void setup(void)
{
  Wire.begin();

  Serial.begin(9600);

  while (sensor.begin() != true){
    Serial.println("Sensor init failed!");
    delay(1000);
  }
}

void loop(void)
{
  sensor.startRanging();
  int distance = sensor.getDistance();
  sensor.stopRanging();

  Serial.print("Distance(mm): ");
  Serial.println(distance);

  Serial.println();
  delay(1000);
}

程序功能:串口打印物体距传感器的距离。

测距


校准

step1:固定传感器,测量目标物体到传感器的实际距离,比如208mm;
step2:打开Arduino IDE,打开calibration.ino程序;
step3:在程序中,输入目标物体的实际距离,如208mm(这里以实际距离为准);
step3:编译上传;
step4:若打印的距离值同实际距离有较大差异,可按复位键重新校准;
step5:若校准成功,需记录offset和xtalk值,通过.setOffset(offset)和setXTalk(xtalk)手动输入较准;

  • 校准demo如下所示:
/*!
   file calibration.ino
   SEN0302 Distance Ranging Sensor
   The module is connected with Arduino Uno to read the distance
   This demo can be used to calibrate the sensor(both of offset and cross talk)
   This demo output the distance between sensor and target
   Copyright    [DFRobot](http://www.dfrobot.com), 2016
   Copyright    GNU Lesser General Public License
   version  V0.1
   date  2019-4-22
*/

#include "Arduino.h"
#include "Wire.h"
#include "DFRobot_VL53L1X.h" 

DFRobot_VL53L1X sensor(&Wire);
uint16_t actDistance;

void setup(void)
{
  Wire.begin();

  Serial.begin(9600);

  while (sensor.begin() != true){
    Serial.println("Sensor init failed!");
    delay(1000);
  }
  
  actDistance = 208;
  Serial.print("ActDistance(mm): ");
  Serial.println(actDistance);
  
  //sensor.setOffset(20);             //校准偏移值,参数 = 实际距离 - 测量距离,'''0''' 表示清除偏移校准值
  sensor.calibrateOffset(actDistance); //校准偏移值,参数为目标到传感器的距离,若不想校准,可屏蔽
  Serial.print("Offset(mm): ");
  Serial.println(sensor.getOffset());
  
  //sensor.setXTalk(0);              //清除校准参数:窜扰
  sensor.calibrateXTalk(actDistance);       //校准串扰值,参数为目标到传感器的距离,若不想校准可,可屏蔽(一般不用)
  Serial.print("XTalk(cps): ");
  Serial.println(sensor.getXTalk());
  Serial.println();
}

void loop(void)
{
  sensor.startRanging();
  int distance = sensor.getDistance();
  sensor.stopRanging();

  Serial.print("Distance(mm): ");
  Serial.println(distance);

  Serial.println();
  delay(1000);
}

程序功能:校准传感器,并打印校准后的测距结果,单位mm.

  • 校准前,传感器测距效果如下图所示:
校准前
  • 校准后,传感器测距效果如下图所示:
校准后
Warning yellow.png

注:当Offset和XTalk的值均为0时,代表传感器没有被校准,可以用sensor.setXTalk(0)和sensor.setOffset(0)清除校准值

Warning yellow.png

注:使用sensor.setOffset()校准距离偏移值时,需要先清除校准值


树莓派

硬件

  • 树莓派主控 x1
  • VL53L1X TOF Laser-ranging Sensor模块 x1


准备步骤

step1:连接VL53L1X传感器和树莓派主板.
step2:检测I2C接口是否使能。输入命令i2cdetect -y 1,若未使能,会显示如下图所示提示:

I2C接口失能提示

step3:使能I2C接口。(若已开启可忽略此步)键入命令sudo raspi-config,进入配置界面,操作流程如下所示:

步骤1
步骤2
步骤3

配置完成后,键入命令sudo reboot重启树莓派。
step4:检测I2C地址。键入命令i2cdetect -y 1检查设备I2C地址,如下图所示:

检测I2C地址0x29


step5:下载VL53L1X库。键入命令sudo git clone https://github.com/DFRobot/DFRobot_VL53L1X,输入ls查看命令,如下图所示:

下载DFRobot_VL53L1X库

样例程序

进入VL53L1X库python示例所在目录

   cd /DFRobot_VL53L1X/Python/RaspberryPi
  • 校准功能

运行getDistance.py示例,实现校准测距。校准之前,需要知道一个固定的目标距离。

   python getDistance.py

在树莓派上测得校准后的数据

校准后测距

产品尺寸

SEN0302 尺寸图.jpg


常见问题

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

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


更多


DFshopping car1.png DFRobot商城购买链接

个人工具
名字空间

变换
操作
导航
工具箱