0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

全球最小的 ToF 激光测距传感器展现多种用途

瑞科慧联(RAK) 2022-07-28 10:21 次阅读
由瑞科慧联(RAK)出品的 ToF 传感器模块 WisBlock RAK12014,采用 ST VL53L0X,后者是世界上最小的 ToF 测距传感器由瑞科慧联(RAK)出品的 ToF 传感器模块 WisBlock RAK12014,采用 ST VL53L0X,后者是世界上最小的 ToF 测距传感器

激光测距在生产生活中有很多应用,例如测距、定位、避障等等。而飞行时间(ToF)测距作为激光测距技术的一种,因为其测量精准、响应快速、低功耗等特点,常被用于机器人自动驾驶汽车、交通管理中的实时对象检测,我们手机的面部检测功能,也用到这种技术。

本文将介绍一款 ToF 激光测距传感器模块 WisBlock RAK12014,并利用 WisBlock开发板演示该模块如何工作。

什么是 ToF激光测距传感器模块?

ToF 激光测距传感器模块是一种使用激光脉冲来测量自身与目标物体之间距离的模块。WisBlock RAK12014 ToF 激光测距传感器模块基于意法半导体 ST VL53L0X而设计。VL53L0X采用目前市场上最小的封装,可谓世界上最小的 ToF 测距传感器。

WisBlock RAK12014 能提供精确的距离测量,可测量 2米的绝对距离。其 940nm VCSEL发射器(垂直腔面发射激光器)完全不为人眼所见,再加上内置的物理红外滤光片,使其测距距离更长、对环境光的抗干扰性更强、对盖片的光学串扰具有更好的稳定性。换言之,无论目标反射率如何,该传感器都能提供精确的距离测量。上述特点使之能胜任高精度的测距任务,适用于更多应用场景中。

RAK12014 是模块化的硬件开发平台 WisBlock 的一款传感器模块RAK12014 是模块化的硬件开发平台 WisBlock 的一款传感器模块

RAK12014模块规格与特性:

  • 测量绝对距离可达 2 m
  • 用于器件控制和数据传输的I2C接口
  • Xshutdown(复位)和中断 GPIO
  • 电源 2.6~3.5 V
  • 尺寸10 x 10mm

RAK12014模块包含一个兼容 WisBlock 基板传感器插槽的 24引脚连接器。通过该连接器可以将 RAK12014模块安装在 WisBlock 基板(如RAK5005-O)模块上。该连接器的引脚顺序以及引脚定义如下图所示。

RAK12014 的引脚分布RAK12014 的引脚分布

注意:仅 I2C相关引脚、XSHUT(复位)、INT、3V3_S以及 GND连接到了该模块的连接器上。

RAK12014典型示例:在 OLED显示屏上显示测试距离

RAK12014有一个很典型的应用,能够很形象地给我们展示 ToF 激光测距传感器模块的特性,即“在 OLED显示屏上显示出测试的距离”。

在这个例子中,将RAK12014连接到 RAK 5005-O 基板上,通过核心模块 RAK4631驱动它的测量距离功能,并将其测量到的距离信息在 OLED显示屏上显示。

 让 RAK12014 实现“在 OLED 显示屏上显示出测试的距离”应用所需的产品配置让 RAK12014 实现“在 OLED 显示屏上显示出测试的距离”应用所需的产品配置

  • RAK12014
  • RAK4631
  • RAK5005-O
  • RAK1921 OLED显示屏
  • 跳线
  • 电源线
原理图

以下是实现这一应用的具体步骤:

1、安装 OLED库

要控制 OLED显示屏,需要使用到“U8g2”库。

2、安装 ToF 激光测距传感器库

要控制 ToF 激光测距传感器模块,需要使用“stm32duino_vl53l0x”库。

注意:所有的库安装完成之后需要重启 Arduino IDE,才能使安装的库生效。

3、导入代码

接着将代码导入 OLED显示屏和 ToF 激光测距传感器模块所需的库当中,然后定义两个名为“u8g2”和“sensor_vl53l0”的对象。

#include #include // Click to install library: http://librarymanager/All#stm32duino_vl53l0x #include // Click to install library: http://librarymanager/All#u8g2 U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0); VL53L0X sensor_vl53l0x(&Wire, WB_IO2);

4、GetDistance()函数

GetDistance() 中,定义一个 report数据。当有数据的时候打印出当前读到的数据测量值,当没有数据时打印如下所示内容:

void GetDistance(){ int status; char report[64]; uint32_t distance; u8g2.clearBuffer(); // clear the internal memory u8g2.setFont(u8g2_font_ncenB10_tr); // choose a suitable font // Read Range. status = sensor_vl53l0x.GetDistance(&distance); if (status == VL53L0X_ERROR_NONE) { // Output data. snprintf(report, sizeof(report), "Range: %ld mm", distance); } else { snprintf(report, sizeof(report), "Nothing at all", distance); } Serial.println(report); u8g2.drawStr(15, 30, report); u8g2.sendBuffer(); }

5、setup()函数

在 setup()中,ToF 激光测距传感器和 OLED显示器都会被初始化。在串口监视器上打印一条消息,这样就能知道 ToF 激光测距传感器是否成功找到了。如下所示:

void setup() { int status; pinMode(LED_BUILTIN, OUTPUT); digitalWrite(LED_BUILTIN, LOW); pinMode(WB_IO2, OUTPUT); digitalWrite(WB_IO2, HIGH); // Initialize Serial for debug output Serial.begin(115200); time_t serial_timeout = millis(); // On nRF52840 the USB serial is not available immediately while (!Serial) { if ((millis() - serial_timeout) < 5000)     {       delay(100);       digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));     }     else     {       break;     }   }   u8g2.begin();   // Initialize I2C bus.   Wire.begin();   // Configure VL53L0X component.   sensor_vl53l0x.begin();   // Switch off VL53L0X component.   sensor_vl53l0x.VL53L0X_Off();   // Initialize VL53L0X component.   status = sensor_vl53l0x.InitSensor(0x52);   if(status)   {     Serial.println("Init sensor_vl53l0x failed...");   } }

6、loop()函数

loop() 中,代码在 OLED显示屏上显示了主屏幕,而这其实是在 GetDistance() 函数中完成的。

void loop() { uint32_t distance; int status; GetDistance(); delay(300); }

7、代码上传

完成前面的代码撰写之后,选择所使用的开发板 RAK4631,选择正确的端口之后开始代码上传烧录,然后打开 Arduino IDE的串口监视器。选择 115200的波特率,我们就可以看见ToF 激光测距传感器模块的测距数据:

8、演示程序

完成以上操作后,一旦 ToF 激光测距传感器上方有物体,OLED显示屏就会显示当前物体与传感器的距离;当传感器上方没有物体时,OLED显示屏则会显示当前无物体,点击链接查看视频展示了详细的演示过程。

总结

ToF 激光测距传感器模块可以应用的范围很广泛,它可以根据场景的不同调整距离。另外,所有来自传感器的信息都可以直接上传到云上,便于实时调整。本文主要向大家展示了如何使用 ToF 激光测距传感器模块测量物体离传感器的距离。今后再向大家介绍该模块在我们生活中的更多实际应用。

备注:以下是本次用例的完整代码,仅大家参考:

/** @file RAK12014_Distance_Detection.ino @author rakwireless.com @brief Distance detection by laser @version 0.1 @date 2021-8-28 @copyright Copyright (c) 2020 **/ #include #include // Click to install library: http://librarymanager/All#stm32duino_vl53l0x #include // Click to install library: http://librarymanager/All#u8g2 U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0); VL53L0X sensor_vl53l0x(&Wire, WB_IO2); void GetDistance(){ int status; char report[64]; uint32_t distance; u8g2.clearBuffer(); // clear the internal memory u8g2.setFont(u8g2_font_ncenB10_tr); // choose a suitable font // Read Range. status = sensor_vl53l0x.GetDistance(&distance); if (status == VL53L0X_ERROR_NONE) { // Output data. snprintf(report, sizeof(report), "Range: %ld mm", distance); } else { snprintf(report, sizeof(report), "Nothing at all", distance); } Serial.println(report); u8g2.drawStr(15, 30, report); u8g2.sendBuffer(); } void setup() { int status; pinMode(LED_BUILTIN, OUTPUT); digitalWrite(LED_BUILTIN, LOW); pinMode(WB_IO2, OUTPUT); digitalWrite(WB_IO2, HIGH); // Initialize Serial for debug output Serial.begin(115200); time_t serial_timeout = millis(); // On nRF52840 the USB serial is not available immediately while (!Serial) { if ((millis() - serial_timeout) < 5000) { delay(100); digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN)); } else { break; } } u8g2.begin(); // Initialize I2C bus. Wire.begin(); // Configure VL53L0X component. sensor_vl53l0x.begin(); // Switch off VL53L0X component. sensor_vl53l0x.VL53L0X_Off(); // Initialize VL53L0X component. status = sensor_vl53l0x.InitSensor(0x52); if(status) { Serial.println("Init sensor_vl53l0x failed..."); } } void loop() { uint32_t distance; int status; GetDistance(); delay(300); }

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2546

    文章

    50522

    浏览量

    751370
  • TOF
    TOF
    +关注

    关注

    9

    文章

    475

    浏览量

    36240
  • RAK
    RAK
    +关注

    关注

    0

    文章

    48

    浏览量

    2062
收藏 人收藏

    评论

    相关推荐

    基于XIAO的迷你激光数显测距仪设计

    今天小编给大家带来的是来自国外的Maker Gokux 的Tiny LiDAR的项目。这个测距仪项目使用了一个0.49英寸的OLED显示屏,配合微型电池和微XIAO ESP32c3,打造出一个超级迷你的激光测距仪。通过使用VL5
    的头像 发表于 10-22 15:03 178次阅读
    基于XIAO的迷你<b class='flag-5'>激光</b>数显<b class='flag-5'>测距</b>仪设计

    VL53L1CB TOF开发(1)----驱动TOF进行测距

    VL53L1传感器,可以实现对物体的快速、准确测距,最高测量距离可达800厘米。该传感器支持I2C接口,具备多种预设模式(如测距模式、多区域
    的头像 发表于 10-09 10:16 1146次阅读
    VL53L1CB <b class='flag-5'>TOF</b>开发(1)----驱动<b class='flag-5'>TOF</b>进行<b class='flag-5'>测距</b>

    物联网系统中的高精度测距方案_单点TOF激光雷达

    激光雷达的优势 高精度测距TOF激光雷达通过测量光脉冲往返目标的时间来计算距离,这种方法能够提供高精度的距离数据。在物联网系统中,精确的距离测量是许多应用的基础,如自动导航、环境建
    的头像 发表于 09-24 11:37 422次阅读
    物联网系统中的高精度<b class='flag-5'>测距</b>方案_单点<b class='flag-5'>TOF</b><b class='flag-5'>激光</b>雷达

    一文了解激光测距传感器

    来源:SonneWay 编辑:感知芯视界 Link 在工业自动化中,激光测距传感器是最常见的传感器之一。不过,您对它真的了解吗?本文将让您一文了解它的原理、选型和应用。 PART.01
    的头像 发表于 09-09 09:03 170次阅读

    激光测距传感器怎么接线

    激光测距传感器是一种利用激光技术进行距离测量的传感器,广泛应用于工业自动化、机器人导航、无人驾驶等领域。 一、
    的头像 发表于 08-29 16:13 591次阅读

    激光测距传感器输出什么信号

    基于激光束的时间飞行原理(TOF, Time of Flight)。通过发射激光脉冲并接收其反射回来的信号,传感器能够计算激光脉冲的飞行时间
    的头像 发表于 08-29 16:08 425次阅读

    激光测距传感器的工作原理、输出信号及性能指标

    激光测距传感器是一种利用激光技术进行距离测量的传感器。它可以广泛应用于工业自动化、机器人导航、无人驾驶、无人机测绘、安防监控等领域。 一、
    的头像 发表于 08-29 16:04 1003次阅读

    激光测距传感器的安装方式有哪些

    激光测距传感器是一种高精度的测量工具,广泛应用于工业自动化、机器人导航、无人驾驶、航空航天等领域。 一、安装前的准备工作 了解激光测距
    的头像 发表于 08-29 16:03 313次阅读

    激光测距传感器的缺点有哪些

    激光测距传感器是一种利用激光技术进行距离测量的传感器,具有测量速度快、精度高、抗干扰能力强等优点,在工业、科研、军事等领域得到了广泛应用。但
    的头像 发表于 08-29 16:01 509次阅读

    激光测距传感器的工作原理是什么?

    激光测距传感器是一种利用激光技术进行距离测量的高精度仪器。它具有测量速度快、精度高、抗干扰能力强等优点,广泛应用于工业、科研、军事等领域。 一、激光
    的头像 发表于 08-29 15:58 394次阅读

    lidar传感器激光测距传感器的区别

    LiDAR传感器激光测距传感器是两种不同类型的传感器,它们在原理、应用和性能方面存在一些区别。 原理区别 LiDAR
    的头像 发表于 08-29 15:56 434次阅读

    使用激光测距传感器和esp32进行can通信,为什么esp32只能接收到6组数据?

    目前,我使用激光测距传感器和esp32进行can通信,esp32发送一条读指令给传感器传感器返回16组距离数值,128个字节。can卡能接
    发表于 06-12 08:20

    激光传感器与光电传感器的区别在哪

    激光传感器与光电传感器的区别  激光传感器与光电传感器是两种常见的光学
    的头像 发表于 03-07 15:48 1771次阅读

    激光测距传感器的原理和应用实例

    激光测距传感器原理和应用实例 激光测距传感器是一种通过激光
    的头像 发表于 03-05 16:29 1438次阅读

    ToF4M Unit高精度距离传感器单元

    发射到物体上再返回传感器的时间。通过测量光脉冲的飞行时间,传感器可以计算出物体与传感器之间的距离。ToF技术在测距方面具有许多优势,包括高精
    的头像 发表于 11-25 08:29 868次阅读
    <b class='flag-5'>ToF</b>4M Unit高精度距离<b class='flag-5'>传感器</b>单元