Arduino Modulino 距离教程:使用STM ToF传感器

总结

文章亮点:

  • Arduino即插即用套件包含七个称为Modulinos的Qwiic模块。

  • 距离Modulino配备了一个STM飞行时间(ToF)传感器,能够精确测量距离,最大可达约1米。

  • 将距离Modulino和蜂鸣器Modulino模块结合,制作一个乐器。这提供了一种高度互动的方式来与ToF传感器交互。

  • 可以使用手机摄像头查看ToF传感器的激光发射器。

  • Arduino Modulino易于使用——软件已包含在内。

什么是 Arduino 距离 Modulino

距离Modulino是Arduino即插即用套件中包含的多个模块之一。它配备了Qwiic连接,提供了无需面包板的便捷连接,可直接连接到Arduino微控制器和套件中的其他Modulinos。

如图1所示,距离Modulino模块(ABX00102)是STMicroelectronics飞行时间(ToF)传感器型号VL53L4CDV0DH/1的扩展板。该传感器配备了一个940纳米红外(IR)激光器,可测量距离范围为0到3.9英尺(1200毫米)。使用I2C接口,与Arduino Modulino系列的其他成员兼容。请注意,距离模块与其他Modulinos不同,因为扩展板不包含专用的ARM微控制器,例如像素模块上使用的微控制器。

1 Arduino Modulino距离模块的图像,中心为STM ToF传感器。

什么是飞行时间( ToF )传感器?

ToF的工作原理类似于雷达。它根据反射脉冲的飞行时间计算到物体的距离。它发送的是来自激光器的IR脉冲,而不是微波脉冲。

所介绍的STM VL53L4CDV0DH/1传感器旨在提供与物体颜色或反射率无关的距离计算。STM传感器使用940纳米(红外)激光发射器。在同一表面安装的封装中,紧密排列的是一个SPAD(单光子雪崩二极管)。顾名思义,“接收器”对从目标反射的发射器能量非常敏感。

你用过那些洗手间的自动水龙头或自动纸巾机吗?很有可能这些设备都配备了与本文中类似的ToF传感器。该传感器专为低功耗电池应用而设计。它包括诸如检测到物体时中断等功能。这使得微控制器可以在低能耗状态下休眠,直到需要时才唤醒。

技术提示 :STM ToF传感器对颜色、环境光和红外发射有轻微的敏感性。使用不同颜色的目标来表征传感器。这些目标使用Munsell代码进行标识,例如N4.74表示反射率为17%的灰色目标。这类似于从五金店获得的样品颜色油漆色卡。

基于 Modulino 类的软件

Arduino为所有Arduino modulino设备提供了一个精心构建的基于类的接口。这为所有Modulino设备提供了一致的用户界面。关键代码作为Modulino.h文件的一部分包含在内:

 #include <Modulino.h>

距离模块有三个相关方法,包括:

  • begin( ); 初始化模块。
  • available( ); 返回一个布尔值,指示传感器是否正在检测物体。从实际角度来看,这表示在3.9英尺的窗口内没有检测到物体。
  • get( ); 返回测量物体的距离,单位为毫米。

技术提示 :红外发射器对人眼不可见。然而,大多数手机可以检测到发射器,如图2所示。请注意,手机摄像头专门设计用于过滤红外线。然而,它并不完美,仍然会有少量但可感知的红外线通过。

2 :当手机摄像头放置在传感器上方几英寸时,可以看到ToF红外发射器。它显示为一个紫色点。

示例代码

以下代码展示了作为特雷门琴一部分的Distance模块的工作演示。Distance和Buzzer Modulinos共同工作,制作出一个根据测量距离改变音高的简易乐器。Arduino即插即用设置如图3所示,并附有简短的演示视频作为视频1。请注意,系统速度很快,允许在摇动电路板时产生类似颤音的声音。通过提高I2C时钟速度并使用由微控制器的硬件定时器直接驱动的蜂鸣器,可以改善这种响应性。数据手册标识了100 Hz的刷新率。

#include "Modulino.h"

ModulinoDistance distance;
ModulinoBuzzer buzzer;

void setup() {
  //  Serial.begin(19200);
  Modulino.begin();
  distance.begin();
  buzzer.begin();
}

void loop() {
  if (distance.available()) {
    int measure = distance.get();
    buzzer.tone(measure << 1, 15);
    //    Serial.println(measure);
    delay(10);
  }
}

3 :安装在Arduino即插即用套件底座上的Distance和Buzzer Modulinos,以及一个UNO R4 WiFi。

视频 1 :使用Arduino特雷门琴演奏的类似万圣节的诡异音乐。请注意响应迅速的颤音。

下一步

以下是一些供您探索的想法:

  • 确定传感器最适合检测哪些材料。例如,ToF是否可以用作5加仑桶甚至2升瓶子的液位指示器?
  • 将ToF传感器安装在RC伺服电机上。这可以作为雷达扫描仪,让您的机器人能够检测并避开障碍物。
  • 探索诸如视野范围等概念,以确定传感器的注意力集中在何处。
  • 探索“窗口式”外壳,既能保护传感器,又能让其看到外界。一个例子是洗手池,我们必须保护传感器不被弄湿。
  • 探索低能耗传感器到微控制器的应用,以延长电池供电设备的运行时间。
  • 将ToF添加到四轴飞行器上,以在距离地面特定高度悬停。这增加了许多复杂性,因为您必须应对来自不同材料的不一致反射,以及来自太阳的红外能量。

最后的思考

Distance Modulino是Arduino即插即用套件中的一个有趣组件。特雷门琴提供了一个非常好的入门,因为它提供了近乎实时的音频响应。通过这种设置,我们可以立即获得反馈,从而直观地了解系统的特性,包括操作速度。

相关信息

请点击以下链接获取相关和有用的信息: