VL53L0X:高精度激光距离传感器

VL53L0X

在某些项目中,您将需要测量距离。 好吧,你应该知道 VL53L0X是可以高精度测量的设备。 此外,它的小尺寸和低价格使其非常适合您的DIY项目,尤其是与Arduino集成时。

有很多可以测量距离的设备,其中一些是基于超声波的测距仪,它发出声音,当与物体弹跳时,它可以足够精确地知道存在的距离。 但是,如果要获得最高的精度,则需要 光学测距仪。 这种类型的测量设备 基于激光,与VL53L0X一样。

什么是ToF?

ToF原理(方案)

飞行时间或ToF(飞行时间)相机 它是一种用于测量距离的技术。 它基于光学原理,测量从光束发射到接收之间的时间。 它们可以是CCD,CMOS传感器,脉冲可以是红外,激光等。 当脉冲被触发时,系统将被同步以开始时间测量,而当它们接收到来自传感器的反弹时,系统将停止计数器。

以这种方式 距离可以很准确地计算出来。 从发射光束的那一刻到接收到光束,仅需集成到芯片中的附加逻辑电路即可执行计算,从而确定距离。 原理很简单。

ESP8266
相关文章:
ESP8266:Arduino的WIFI模块

这种类型的设备用于 机器人 允许机器人或无人驾驶飞机避开障碍物,知道它们距目标有多远,检测移动或接近,用于不同应用的汽车传感器,实现电子仪表(例如执行器),以便Arduino在它可以检测到物体的一定距离等。

什么是VL53L0X和数据表

VL53L0X

El VL53L0X使用此原理通过激光红外测量距离。 上一代。 与像Arduino这样的处理器一起使用,它可以成为强大的测量工具。 具体而言,芯片可以捕获50mm至2000mm之间的距离,即5厘米至2米之间的距离。

为了测量更近的距离,您可能需要该芯片的变体VL6180X,该变体允许您测量5到200毫米之间的范围,即在半厘米到20厘米之间。 如果出于任何技术原因想要找​​到类似的但基于超声波的设备,则应查看HC-SR04,这是另一种在制造商中颇为便宜的模块。

El VL53L0X芯片 旨在 即使周围光线很高也可以工作。 请记住,以光学方式工作时,环境的光“污染”越大,充分捕获信号反射的难度就越大。 但是在这种情况下,它不会带来太多问题。 此外,它集成的补偿系统即使在保护玻璃后面使用它也可以进行测量。

那使它成为一个 最佳距离传感器 您会在市场上找到的。 与基于超声波或红外(IR)的传感器相比,其精度要高得多。 如此精确的原因是,激光不会像其他情况一样受到物体回波或反射率的影响。

目前,您可以将其集成到integrated子中,并附有一些额外的配件,价格约为16欧元,或者在其他情况下,也可以将其集成在价格略高于1欧元或3欧元的简单盘子中。 您已经知道可以在eBay,AliExpress,Amazon等商店中找到它。 这些设备的制造商各不相同,因此,如果您需要了解所购买型号的详细信息,最好检查一下 制造商的数据表 您选择的。 例如:

El VL53L0X 它在芯片内具有激光脉冲的发射器和用于捕获返回光束的传感器。 在这种情况下,发射器是940nm波长的激光器和VCSEL型(垂直腔表面发射激光器)。 至于捕获传感器,它是SPAD(单光子雪崩二极管)。 它还集成了称为FlightSenseTM的内部电子设备,可以计算距离。

El 测量角度或FOV(视场) 在这种情况下为25º。 这意味着在0,44m的距离处直径为1m的测量区域。 尽管测量范围将取决于周围条件。 如果在室内完成,则比在室外完成的要高一些。 它还将取决于您所指向的对象的反射率:

目标反射率 条款 室内情况 外墙
白靶 典型的 200cm 80cm
模仿 120cm 60cm
灰色目标 典型的 80cm 50cm
最低限度 70cm 40cm

此外,VL53L0X还具有多个 操作模式 这可能会改变结果。 下表总结了这些模式:

摩多 定时 范围 精确
默认值 30ms 1.2 m 见下表
精度高 200ms 1.2 m + / - 3%
长距离 33ms 2m 见下表
高速 20ms 1.2 m + / - 5%

根据这些模式,我们有几种 标准和远程精度 您在此表中拥有的:

室内情况 外墙
目标反射率 距离 33ms 66ms 距离 33ms 66ms
白靶 120厘米 4% 3% 60厘米 7% 6%
灰色目标 70厘米 7% 6% 40厘米 12% 9%

引脚排列和连接

VL53L0X芯片图

为了使所有这些正常工作,您需要 与外界的接口。 这是通过一些引脚或连接来实现的。 VL53L0X的引脚排列非常简单,只有6个引脚。 为了与Arduino集成,可以通过I2C进行通信。

要喂它,你可以 连接引脚 所以:

  • Arduino的VCC至5v
  • Arduino的GND至GND
  • SCL到Arduino模拟引脚。 例如A5
  • SDA连接到另一个模拟引脚。 例如A4
  • 目前无需使用GPI01和XSHUT引脚。

与Arduino集成

VL53L0X连接到Arduino

至于其他许多模块,对于VL53L0X,您还具有库(例如,用于 Adafruit的)可用于编写某些功能的可用代码 在Arduino IDE中处理项目的源代码。 如果这是您第一次使用Arduino,我建议 我们的编程手册.

一个例子 简单的代码,您可以通过串行端口进行测量并显示测量值 因此,当您连接Arduino板时,可以从PC屏幕上看到它:

#include "Adafruit_VL53L0X.h"
 
Adafruit_VL53L0X lox = Adafruit_VL53L0X();
 
void setup() {
  Serial.begin(9600);
 
  // Iniciar sensor
  Serial.println("VL53L0X test");
  if (!lox.begin()) {
    Serial.println(F("Error al iniciar VL53L0X"));
    while(1);
  }
}
 
 
void loop() {
  VL53L0X_RangingMeasurementData_t measure;
    
  Serial.print("Leyendo sensor... ");
  lox.rangingTest(&measure, false); // si se pasa true como parametro, muestra por puerto serie datos de debug
 
  if (measure.RangeStatus != 4)
  {
    Serial.print("Distancia (mm): ");
   Serial.println(measure.RangeMilliMeter);
  } 
  else
  {
    Serial.println("  Fuera de rango ");
  }
    
  delay(100);
}

在Adafruit自己的库中,如果需要,您可以使用更多示例...


成为第一个发表评论

发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。