在 VEXcode VR 中使用距离传感器

VR 机器人上的距离传感器报告 VR 机器人与最近物体之间的距离。 传感器利用激光从物体反射并返回传感器所需的时间来计算距离。


VR机器人上的距离传感器

前眼朝下

距离传感器是报告 VR 机器人与最近固体物体之间距离的传感器。

VR 自上而下

距离传感器使用与声纳设备相同的原理来测量声音。 它通过传感器一侧的发射器发出微小的激光脉冲,然后计算光反射回传感器另一侧的接收器所需的时间。 传感器根据脉冲往返所需的时间来计算距离。 然后,距离传感器向 VR 机器人报告最近物体的距离。

Screen_Shot_2021-12-10_at_2.45.39_PM.png

当距离 VR 机器人前方的距离越来越远时,距离传感器的视野宽度会发生变化:

  • 当寻找小于 1000 毫米(约 39 英寸)远的物体时,传感器可以检测 10 度视野内的物体。
  • 当寻找 1000 毫米(约 39 英寸)和 2000 毫米(约 78 英寸)之间的物体时,传感器可以检测 5 度视野内的物体。
  • 当寻找大于 2000 毫米(约 78 英寸)远的物体时,传感器可以检测 2 度视野内的物体。

距离传感器的常见用途

VR 自上而下

距离传感器可以检测VR机器人前方是否有物体。 这可以用来避开障碍物。

VEXcode VR 块 墙迷宫游乐场
前距示例.png 游乐场距离1.jpeg
VEXcode VR Python
def main():
while not front_distance.get_distance(MM) < 50:
(FORWARD)
(20, MSEC)
()

距离传感器可以测量距离传感器正面与物体正面之间的距离。 这有助于完成迷宫而不会不断撞到墙壁或躲避物体。

VEXcode VR 块 动态城堡破坏者游乐场
永远的距离 example.png

游乐场距离 2.jpeg

VEXcode VR Python
def main():
while True:
if front_distance.found_object():
(FORWARD)
else:
(RIGHT)
(20,MSEC)

在此示例中,如果距离传感器发现物体,VR 机器人将向前行驶。 如果没有检测到物体,VR机器人将右转并继续检查是否有物体。

注意: 此示例将找到第一座建筑物,但需要改进以避免从桌子上掉下来。


将距离传感器与 VEXcode VR 块结合使用

距离传感器.png

与距离传感器一起使用的块可以在“传感”类别中找到。

<发现物体的距离> 块

距离发现物体块.png

距离传感器使用 <距离发现对象>块检测其前面是否有对象。 距离传感器可以检测距离传感器 3000 毫米(约 118 英寸)范围内的物体或表面。

等到距离找到object.png

<Distance found object>块是一个布尔块,返回条件为 truefalse ,并且适合与其他块具有六边形(六边形)空间的任何块内。

有关布尔块的更多信息, 查看这篇文章

找到物体的距离.png

<Distance found object> 块的值是一个布尔块,当距离传感器靠近物体时报告 true,当距离传感器距离物体不够近时报告 false。

Truefalse 将被报告并出现在监控控制台中。 

要了解有关 Monitor Console 的更多信息, 请查看本文

街区(距离)

距离下拉菜单.png

使用(距离)块,距离传感器可以报告最近物体的距离,以毫米 (mm) 或英寸为单位。

距离大于.png

(距离)块报告数值并适合任何带有椭圆形空间的块。

有关记者区块的更多信息, 查看这篇文章。 

前部距离(毫米或英寸).png

以毫米 (mm) 或英寸为单位的(距离)块的值可以显示在 VEXcode VR 的监视器控制台上。 

要了解有关 Monitor Console 的更多信息, 请查看本文


在 VEXcode VR Python 中使用距离传感器

Screen_Shot_2021-11-11_at_9.49.14_AM.png

要开始使用 Python 对距离传感器进行编程,您需要首先打开一个文本项目 VEXcode VR。 欲了解更多信息,请参阅 这篇文章。

Screen_Shot_2021-12-10_at_2.26.12_PM.png

接下来,在工具箱中找到 Sensing 类别,并找到 get_distance 命令。 这些函数报告有关传感器的布尔值或数值。

Screen_Shot_2021-12-10_at_2.38.31_PM.png

要将命令添加到项目中,您可以从工具箱中拖入命令,或使用自动完成功能在工作区中键入命令。

要了解有关使用 Python 在 VEXcode VR 中自动完成的更多信息, 请参阅本文。

def main(): 
while not front_distance.get_distance(MM) < 50:
(FORWARD)
(20, MSEC)
()

当您希望机器人执行诸如行驶之类的操作直到距离传感器距离墙壁 50 毫米或更小,然后停止或转弯时,可以将 while 循环与机器人上的传感器一起使用。

在本项目中,当距离传感器报告的值大于50mm时,机器人将向前行驶,当距离传感器距离墙壁小于50mm时,机器人将停止行驶。

def main():
monitor_sensor("front_distance.get_distance", "front_distance.found_object")

get_distance 命令的值可以显示在 VEXcode VR 的监视器控制台上。 要了解有关在 VEXcode VR Python 中使用监视器控制台的更多信息, 请参阅本文。

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

Last Updated: