使用 VEX IQ(第一代)距离传感器

描述

该传感器报告它与最近的固体物体之间的距离(50mm - 1m 范围)。 它利用超声波从物体反射并返回传感器所需的时间来计算距离。


距离传感器的工作原理:监听距离

距离传感器使用与声纳设备相同的原理来测量声音。 它通过传感器一侧的发射器发出微小的超声波脉冲,然后计算听到声音反射回传感器另一侧的接收器所需的时间。 传感器根据声音脉冲往返所需的时间来计算距离。 然后距离传感器根据声速进行计算,告诉机器人大脑最近的物体有多远。 

如果表面不平坦,如弯曲的墙壁或球,则超声波不会均匀或同时从所有部件反射。 足够大以反射回可检测量的波的最近表面决定了物体的检测距离。


距离传感器的常见用途:

该传感器可以检测前方是否有物体。

该传感器可以测量它与物体之间的距离。

  • 机器人可以利用该传感器将物体驶离一定距离。

  • 机器人可以使用该传感器驱动到物体而不接触它。

  • 该传感器提供的值可用于根据机器人距离物体或表面的远近来调整机器人的速度。

距离传感器在竞赛机器人上的应用

  • 当机器人处于正确位置时,可以使用距离传感器启动一系列行为。 例如,机器人可以向前行驶,直到检测到距离墙壁150毫米,然后转向90度,并将物体释放到得分区。  
  • 当在范围内检测到物体时,距离传感器可用于触发机器人动作,例如拾取游戏棋子。
  • 机器人可以使用距离传感器向物体或表面行驶,直到其处于特定距离内,而不接触它。 这可用于确保机器人不会撞倒游戏棋子。
  • 机器人可以使用距离传感器驶离物体或表面,直到达到特定距离。 这可用于避免与现场其他机器人发生碰撞。

在 VEXcode IQ 中使用距离传感器

在 VEXcode IQ 中将距离传感器添加为设备

Screen_Shot_2023-03-01_at_10.40.38_AM.png

要在 VEXcode IQ 中对距离传感器进行编码,您必须首先配置距离传感器。 查看本文以了解有关在 VEXcode IQ 中配置传感器的更多信息。

配置传感器后,命令将出现在工具箱中,您可以在项目中使用它们。

对距离传感器进行块编码

Screen_Shot_2023-03-01_at_10.43.09_AM.png

<Object found> 块是一个布尔报告器块,用于报告条件为 true 或 false。 布尔块(例如 <Object found> 块)适合与其他块的六边形(六边形)输入的块内部。

如果传感器检测到物体,则 <Object found> 布尔块报告“真”;如果传感器未检测到物体,则报告“假”。 要了解有关布尔块的更多信息,请访问 帮助块形状和含义 文章。

 

截图_2023-02-28_at_1.07.13_PM.png

在此示例中, <Object found> 块与 [等待] 块一起使用,使机器人向前行驶,直到距离传感器检测到物体。 当传感器检测到物体时,机器人将停止行驶,如上图所示。 

Screen_Shot_2023-03-01_at_11.03.40_AM.png

(距离)块报告距离传感器最近的物体的距离。 它报告的范围从24mm 到 1000mm,或 1 英寸到 40 英寸。 (距离)块是一个报告块,用于具有圆形空间的块内。

 

Screen_Shot_2023-03-01_at_11.13.38_AM.png

在此示例中,(距)模块与 [打印] 模块一起使用,以在 Brain 屏幕上显示距离传感器与物体之间的距离。 (距离)块也显示在 {Wait until} 块内的 <Less than> 块内。 这将导致机器人行驶,直到距离传感器检测到距离小于 50 毫米的物体,然后停止行驶。 这如上面的第一个视频所示。

用 Python 编写距离传感器

注意:要使用 Python 编码 VEX IQ(第一代)距离传感器,它必须连接到 VEX IQ(第二代)大脑。 VEX IQ(第一代)Brain 不支持 Python。

Screen_Shot_2023-03-01_at_11.31.30_AM.png

命令报告有关保险杠开关的布尔值 true 或 false。 

如果检测到对象,则 distance.is_object_detected 命令报告“true”;如果未检测到对象,则报告“false”。

注意:命令中出现的距离传感器的名称与配置中给出的名称相对应。 

 

Screen_Shot_2023-03-01_at_11.52.29_AM.png

在此示例中,具有 not 条件的While 循环与 distance.is_object_Detected 命令一起使用,使机器人向前行驶,直到距离传感器检测到物体。 当传感器检测到物体时,机器人将停止行驶,如上图所示。

Screen_Shot_2023-03-01_at_11.56.14_AM.png

distance.distance 命令报告距离传感器最近的物体的距离。 它报告的范围从24mm 到 1000mm,或 1 英寸到 40 英寸

Screen_Shot_2023-03-01_at_12.03.41_PM.png

在此示例中,具有 not 条件的 While 循环与 distance.is_object_Detected 命令一起使用,使机器人向前行驶,直到距离传感器检测到物体。 当传感器检测到物体时,机器人将停止行驶。

在此示例中, distance.distance 命令与 Brain.screen.print 命令一起使用,以在 Brain 屏幕上显示距离传感器与物体之间的距离。 distance.distance 命令也显示在具有 而不是 条件的 While 循环内。 这将导致机器人行驶,直到距离传感器检测到距离小于 50 毫米的物体,然后停止行驶。 这如上面的第一个视频所示。

要了解有关使用 Python 编写距离传感器的更多信息,请查看计算机科学 1 级 - Python 课程的第 5 单元。 

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: