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); }

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

    关注

    2525

    文章

    48129

    浏览量

    740188
  • TOF
    TOF
    +关注

    关注

    9

    文章

    435

    浏览量

    35905
  • RAK
    RAK
    +关注

    关注

    0

    文章

    48

    浏览量

    2007
收藏 人收藏

    评论

    相关推荐

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

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

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

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

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

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

    ST超低功耗飞行时间 (ToF) 传感器:解锁智能生活新场景

      点击上方  “ 意法半导体中国” , 关注我们 ‍‍‍‍‍‍‍‍ 未来,ToF在接近检测传感器、人体存在检测和激光自动对焦等领域的应用中不可估量。作为主要的ToF技术和方案提供商,
    的头像 发表于 10-20 01:35 337次阅读
    ST超低功耗飞行时间 (<b class='flag-5'>ToF</b>) <b class='flag-5'>传感器</b>:解锁智能生活新场景

    如何选择激光测距传感器

    激光测距传感器是一种广泛应用于工业、测量和科学领域的高精度测量设备,它可以通过激光束测量目标距离。但是,如何选择适合自己需要的激光
    的头像 发表于 10-10 17:11 584次阅读
    如何选择<b class='flag-5'>激光</b><b class='flag-5'>测距</b><b class='flag-5'>传感器</b>?

    兰宝传感激光高精度测距助力中国智造高端化转型

    兰宝传感激光系列传感器是工业自动化感知层的重要一环,相较摄像头、红外线等其他传感技术,激光具有“精准、快速、高效作业”的巨大优势。以兰宝
    的头像 发表于 08-25 16:23 455次阅读
    兰宝<b class='flag-5'>传感</b>以<b class='flag-5'>激光</b>高精度<b class='flag-5'>测距</b>助力中国智造高端化转型

    tof原理介绍 ToF传感器的优缺点

    ToF传感器使用微小的发射器发射红外光或者激光,其中产生的光会从任何物体反弹并返回到传感器。根据光的发射与被物体反射后返回传感器之间的时间差
    发表于 08-23 11:21 2742次阅读
    <b class='flag-5'>tof</b>原理介绍 <b class='flag-5'>ToF</b><b class='flag-5'>传感器</b>的优缺点

    ToF传感器的原理及优缺点分析

    ToF传感器使用微小的发射器发射红外光或者激光,其中产生的光会从任何物体反弹并返回到传感器。根据光的发射与被物体反射后返回传感器之间的时间差
    发表于 08-22 09:52 3111次阅读
    <b class='flag-5'>ToF</b><b class='flag-5'>传感器</b>的原理及优缺点分析

    意法半导体全新多区测距 TOF 传感器发布:90 度视场角,号称“堪比相机水准”

    7 月 20 日消息,意法半导体今日宣布推出一款视场角达 90° 的 FlightSense 多区 ToF 测距传感器,视场角比上一代产品扩大 33%,用于家庭自动化、家电、计算机、机器人以及商店
    的头像 发表于 08-10 13:08 339次阅读
    意法半导体全新多区<b class='flag-5'>测距</b> <b class='flag-5'>TOF</b> <b class='flag-5'>传感器</b>发布:90 度视场角,号称“堪比相机水准”

    什么是激光 激光测距传感器原理与应用

    激光传感器是利用激光技术进行测量的传感器,一般是由激光器,光学零件,和光电器件所构成的,它能把被测物理量(如长度,流量,速度等)转换成光信号
    发表于 08-07 09:55 873次阅读
    什么是<b class='flag-5'>激光</b> <b class='flag-5'>激光</b><b class='flag-5'>测距</b><b class='flag-5'>传感器</b>原理与应用

    意法半导体全新多区测距TOF传感器:高达90度视场角堪比相机水准

    的隐私保护 功能 意法半导体新推出一款视场角达90°的FlightSense多区ToF测距传感器,视场角比上一代产品扩大33%,可为家庭自动化、家电、计算机、机器人以及商店、工厂等场所使用的智能设备带来逼真的场景感知功能。 意
    的头像 发表于 07-20 08:10 534次阅读

    意法半导体推出多区域ToF测距传感器——VL53L7CX

    “我们的多区域ToF测距传感器中的FlightSense飞行时间技术能够实现复杂的场景理解,对系统功率要求很低,并且操作简便。”
    发表于 07-11 11:14 537次阅读
    意法半导体推出多区域<b class='flag-5'>ToF</b><b class='flag-5'>测距</b><b class='flag-5'>传感器</b>——VL53L7CX

    SLDS-D150P远距离/高频率激光测距传感器概述

    SLDS-D150P 激光测距传感器是新一代测距传感装置,产品集功能强大、性能稳定可靠、安装使用方便、应用范围广等诸多优点于一体,是一种性能
    发表于 05-29 09:40 334次阅读
    SLDS-D150P远距离/高频率<b class='flag-5'>激光</b><b class='flag-5'>测距</b><b class='flag-5'>传感器</b>概述

    ToF传感器究竟有多神奇?

    ToF是飞行时间(Time of Flight)的缩写,ToF传感器的工作原理与声纳探测非常相似,它是通过测量光从物体上反射所需的时间来进行物体的定位和通信。ToF
    的头像 发表于 05-18 09:48 4984次阅读
    <b class='flag-5'>ToF</b><b class='flag-5'>传感器</b>究竟有多神奇?

    什么是LiDAR(激光探测与测距

    LiDAR(激光探测与测距) LiDAR是Light Detection And Ranging(激光探测与测距)的缩写,是使用近红外光、可见光或紫外光照射对象物,并通过光学
    的头像 发表于 04-30 14:41 3022次阅读
    什么是LiDAR(<b class='flag-5'>激光</b>探测与<b class='flag-5'>测距</b>)