机器人专用积木#

所有标准 VEXcode VR 块均可用于 V5RC 虚拟技能 - 高风险 游乐场。

运动#

这个游乐场的积木将可以访问所有运动积木的臂电机推杆电机参数。

当为运动块选择方向时,向上将使手臂向前旋转,向下将使手臂反向旋转。

对于推进器电机,降低将使推进器电机正向旋转,升高将使推进器电机反向旋转。

旋转#

Spin 块用于无限旋转电机。

这是一个非等待块,允许任何后续块无延迟地执行。

该块显示用于使标有“ArmMotor”的电机沿“向上”方向旋转的命令。

选择要使用的电机。

图片展示了一个来自可视化编程界面的模块,用户正在选择一个电机来执行“旋转”命令。所选电机为“ArmMotor”,下拉菜单中的备选选项为“PusherMotor”。该模块设置为使“ArmMotor”沿“向上”方向旋转。

选择电机移动的方向。

臂电机可以向上或向下旋转。

图片展示了可视化编程界面中的一个代码块,用户正在选择“旋转”命令的方向。所选的电机是“ArmMotor”,方向设置为“向上”,下拉菜单中可以选择切换到“向下”。

推进器电机可以朝降低升高方向旋转。

图片展示了一个可视化编程模块,其中“旋转”命令应用于“推进器电机”。旋转方向当前设置为“降低”,下拉菜单中有一个选项可切换为“升高”。

在这个例子中,手臂马达将旋转 1 秒以准备得分。

图片展示了一系列可视化编码块,这些块代表了使用“ArmMotor”抬起手臂,然后移动到移动目标的代码。代码以“启动时”块开头,后面跟着一条注释:“在移动到移动目标之前抬起手臂”。下一个块指示“ArmMotor”朝“向上”方向“旋转”。接下来是一个“等待”块,用于暂停执行“1 秒”。最后,代码包含一个“停止”块,用于停止“ArmMotor”。

旋转#

Spin for 块用于使电机旋转给定的距离。

这可以是非等待等待块,取决于是否使用并且不等待选项。

图片展示了一个可视化编程模块,它代表了控制“ArmMotor”的命令。该模块旨在使电机沿“向上”方向“旋转”90度。

选择要使用的电机。

图片展示了一个来自可视化编程界面的用于控制电机的模块。在这个特定的模块中,从下拉菜单中选择了“ArmMotor”,并将其设置为“向上”旋转“90度”。下拉菜单可见,并提供一个选项,可以选择“PusherMotor”而不是“ArmMotor”。

选择电机移动的方向。

臂电机可以向上或向下旋转。

图片展示了一个用于控制电机的可视化编程模块。在这个模块中,选择了“ArmMotor”,并从下拉菜单中将方向设置为“向上”。该模块指定电机将“向上”旋转“90度”。下拉菜单可见,提供选择“向下”而不是“向上”的选项。

推进器电机可以朝降低升高方向旋转。

图片展示了一个控制标有“PusherMotor”电机的编程模块。该模块指定电机应沿“降低”方向旋转 90 度。屏幕上会显示一个下拉菜单,用户可以选择“降低”或“升高”作为方向。

通过输入一个值并选择测量单位(度或圈)来设置电机旋转的距离。

图片展示了用于控制“ArmMotor”的编码模块。该模块设置为使电机沿“向上”方向旋转 90 个单位,单位可以从下拉菜单中选择,下拉菜单提供“度”或“圈”选项。

默认情况下,旋转块会阻止任何后续块的执行,直到其完成为止。通过展开旋转块以显示不等待,块将在电机转动时继续执行。

图片显示了用于控制“ArmMotor”的编码模块。该模块设置为使电机沿“向上”方向旋转 90 度。此外,该模块还包含一个选项,指示电机旋转后不应“等待”,这意味着代码将在电机开始旋转指定的 90 度后立即继续执行下一条指令。

在这个例子中,臂电机将向上旋转 350 度以免阻挡 AI 视觉传感器。

图片展示了一个设置为在代码启动时运行的编程模块。该模块指示“ArmMotor”朝“向上”方向旋转 350 度。

旋转至指定位置#

旋转到位置块用于将电机旋转到设定位置。

这可以是非等待等待块,取决于是否使用并且不等待选项。

图片展示了一个控制“ArmMotor”旋转到特定位置的编程模块。电机被设置为旋转到 90 度的位置。

选择要使用的电机。

图片显示了一个编程模块,其中选中了“ArmMotor”以使其旋转到特定 90 度的位置。此操作可以在“ArmMotor”和“PusherMotor”之间进行选择。

通过输入一个值并选择测量单位(度或圈)来设置电机旋转的距离。

图片展示了一个代码块,其中“ArmMotor”设置为旋转 90 个单位。单位可以在“度”和“圈”之间选择,当前选择的是“度”。

默认情况下,旋转到指定位置积木会阻止所有后续积木的执行,直到其完成。通过展开旋转到指定位置积木以显示不等待,积木将在电机移动时继续执行。

图片显示了一个代码块,其中“ArmMotor”被编程为旋转至 90 度的位置。该操作设置为在电机到达该位置后立即执行,无需等待电机到达即可继续执行下一个命令。

在这个例子中,臂电机将旋转到 350 度位置以免阻挡 AI 视觉传感器。

图片展示了一个代码块,它首先将“ArmMotor”抬升至 350 度的位置。此操作的目的是防止手臂等待 AI 视觉传感器。该命令在代码启动时触发。

停止电机#

停止电机块用于停止电机移动。

这是一个非等待块,允许任何后续块无延迟地执行。

该图显示了命令“ArmMotor”停止的编码块。

选择要使用的电机。

该图显示了一个编码块,用户可以在“ArmMotor”和“PusherMotor”之间进行选择,以停止所选电机。

在这个例子中,手臂马达将旋转 1 秒以准备得分。

图片展示了一系列可视化编码块,这些块代表了使用“ArmMotor”抬起手臂,然后移动到移动目标的代码。代码以“启动时”块开头,后面跟着一条注释:“在移动到移动目标之前抬起手臂”。下一个块指示“ArmMotor”朝“向上”方向“旋转”。接下来是一个“等待”块,用于暂停执行“1 秒”。最后,代码包含一个“停止”块,用于停止“ArmMotor”。

设置电机位置#

设置电机位置块用于将电机的编码器位置设置为输入的值。

这是一个非等待块,允许任何后续块无延迟地执行。

图片显示了用于将“ArmMotor”的位置设置为 0 度的编码块。

选择要使用的电机。

图片显示了一个代码块,它将“ArmMotor”的位置设置为 0 度。下拉菜单展开,显示两个选项:“ArmMotor”和“PusherMotor”。当前选中的是“ArmMotor”,表示位置命令将应用于该特定电机。

设置要使用的测量单位,度或圈。

图片展示了一个代码块,其中“ArmMotor”的位置设置为 0,测量单位从下拉菜单中选择。下拉菜单当前已展开,显示两个选项:“度”和“转”。选择“度”选项,表示位置命令将以度为单位执行。

在此示例中,手臂被提升到 350 度位置,并将其设置为新的 0 度位置。

图片显示了一个以“启动时”块开头的编码序列,表示这些命令将在代码启动时执行。序列中的第一个块命令“ArmMotor”旋转到 350 度的位置。然后,第二个块将“ArmMotor”位置设置为 0 度,使新位置成为参考点或“0 度”位置。

设置电机速度#

设置电机速度块用于设置电机的速度。

这是一个非等待块,允许任何后续块无延迟地执行。

该图显示了一个编码块,它将“ArmMotor”的速度设置为 50%。

选择要使用的电机。

图片显示了一个代码块,用于将“ArmMotor”的速度设置为 50%。下拉菜单已打开,显示可选择“ArmMotor”或“PusherMotor”作为速度设置的选项。当前已选择“ArmMotor”。

设置电机速度块将接受-100%到100%的范围。

在此示例中,在臂抬起之前,电机的速度设置为 100%。

图片展示了一组用于在代码启动时控制“ArmMotor”的编码块。第一个块将“ArmMotor”的速度设置为 100%,确保其全速移动。第二个块指示“ArmMotor”向上旋转 350 度。

设置电机超时#

设置电机超时块用于设置电机运动块的时间限制。

这可以防止未到达预定位置的运动块阻止后续块运行。

这是一个非等待命令,允许任何后续命令无延迟地执行。

 图中显示了一个代码块,它将“ArmMotor”的超时时间设置为 1 秒。这意味着电机将在运行 1 秒后自动停止,无论它是否完成了预期动作。

选择要使用的电机。

图片展示了一个编程模块,用户可以在其中设置电机的超时时间。在本例中,从下拉菜单中选择“ArmMotor”,并可选择根据需要切换到“PusherMotor”。超时时间设置为 1 秒,这意味着所选电机将在 1 秒后停止运行,无论其当前任务是什么。

在此示例中,在 Arm 升起之前,电机超时设置为 1 秒。

图片展示了一个以“启动时”模块开头的编程序列,表示代码将在启动时运行。第一个模块将“ArmMotor”的超时设置为 1 秒。这意味着 1 秒后,无论 ArmMotor 正在执行什么操作,它都会自动停止。第二个模块指示 ArmMotor 向上旋转 5 圈。此命令将使电机沿指定方向旋转给定的圈数。第一个模块中设置的超时确保电机在 1 秒后停止,即使它尚未完成 5 圈。

传感#

Axel 可以使用标准大脑、传动系统、保险杠、距离感应块。

眼部感应已重命名为光学感应,以匹配前置光学传感器。

电机传感#

电机已完成#

电机已完成块用于报告所选电机或电机组是否已完成其运动。

图中显示了一个标有“ArmMotor 完成了吗?”的块。该块用于检查“ArmMotor”是否已完成其任务,例如到达目标位置或完成旋转命令。

选择要使用的电机或电机组。

图片显示了一个标有“ArmMotor 是否完成?”的模块,其中包含一个用于选择电机的下拉菜单。下拉菜单当前显示已选中“ArmMotor”,但也允许用户选择“PusherMotor”。该模块用于检查所选电机(无论是“ArmMotor”还是“PusherMotor”)是否已完成其动作,例如到达指定位置或完成一次旋转。

当选定的电机或电机组完成其运动时,电机完成块会报告“True”。

当选定的电机或电机组尚未完成其运动时,电机已完成块将报告“False”。

电机已完成块用于具有六边形(六面)空间的块中。

电机旋转#

电机正在旋转块用于报告所选电机或电机组是否正在移动。

图片显示了一个标有“ArmMotor 正在旋转?”的模块,其中包含一个用于选择电机的下拉菜单。下拉菜单当前已选中“ArmMotor”。该模块用于检查“ArmMotor”或其他选定的电机当前是否正在旋转。

选择要使用的电机或电机组。

图片显示了一个标有“ArmMotor 正在旋转吗?”的模块,其下拉菜单当前处于展开状态。下拉菜单允许您在“ArmMotor”和“PusherMotor”之间进行选择,当前已选择“ArmMotor”。该模块用于检查所选电机(在本例中为“ArmMotor”)当前是否正在旋转。

当选定的电机或电机组正在移动时,电机正在旋转块会报告“True”。

当选定的电机或电机组没有移动时,电机正在旋转块会报告“False”。

马达正在旋转块用于具有六边形(六面)空间的块中。

电机位置#

电机位置块用于报告电机或电机组中第一个电机的位置。

图片显示了一个标有“ArmMotor 位置(度)”的模块。该模块用于检索“ArmMotor”的当前位置并以度为单位返回。下拉菜单允许您选择其他电机或更改测量单位,但目前已选择“ArmMotor”和“度”。

选择要使用的电机或电机组。

图片显示了“ArmMotor 位置(以度为单位)”模块,其中包含一个下拉菜单,可让您选择不同的电机。当前已选择“ArmMotor”,另有“PusherMotor”可供选择。

选择使用的单位,度或圈。

图片显示了“ArmMotor 位置(以度为单位)”模块,下拉菜单当前显示“度”作为所选单位。下拉菜单还提供了一个附加选项,可以用“转”来测量位置。

电机位置块用于具有圆形空间的块中。

在此示例中,手臂将升高,直到其位置大于 300 度。

图片展示了一个基于块的编码序列,以“启动时”块开头。该代码旨在升起 ArmMotor,以确保其不会遮挡 AI 视觉传感器。该序列首先指示 ArmMotor 朝“向上”方向旋转。然后,代码会等待 ArmMotor 的位置(以度为单位)超过 300 度。一旦 ArmMotor 超过 300 度,电机就会停止,确保 ArmMotor 升至避开 AI 视觉传感器的位置后再停止。

电机转速#

电机速度块用于报告电机或电机组中第一个电机的当前速度。

图片展示了一个用于检索 ArmMotor 速度百分比的模块。该模块是基于模块的编程界面的一部分,您可以在其中选择不同的电机并以百分比形式测量其速度。ArmMotor 可从下拉菜单中选择,并将速度单位设置为百分比。

选择要使用的电机或电机组。

图片显示了一个基于块的编程界面中的块,用户可以在其中选择一个电机来获取其速度百分比。下拉菜单当前已展开,显示“ArmMotor”或“PusherMotor”的选项。选择“ArmMotor”,并将速度单位设置为百分比(“%”)。

电机速度块用于具有圆形空间的块中。

旋转感应#

设置旋转位置#

设置旋转位置块用于将推进器电机的当前旋转位置设置为新值。

图片展示了一个基于块的编程界面中的块,该界面允许用户设置旋转传感器或电机的位置。该块当前配置为将“PusherRotation”设置为 0 度。

在此示例中,将环推离臂的旋转将设置为 0 度。

该图显示了一个基于块的编码序列,其中代码设置为在启动时执行两个操作。首先,它旋转“PusherMotor”并将其降低 270 度。执行此操作后,代码将“PusherRotation”设置为 0 度的新位置,本质上使较低的 Pusher 位置成为 0 度旋转的新参考点。

旋转角度#

旋转角度块用于报告推进器电机当前的旋转角度(以度为单位)。

该图显示了一个编码块,用于检索“PusherRotation”的当前角度(以度为单位)。

在这个例子中,推动器将把环从臂上推下来,然后报告电机的旋转角度。

图片显示了一系列代码块。代码首先为下部推进器机构设置一个新的零度旋转位置。“旋转”块控制“推进器电机”将机构降低 270 度。执行此操作后,“打印”块将检索并打印“推进器旋转”的当前角度(以度为单位),从而提供有关推进器电机精确旋转位置的反馈。

旋转位置#

旋转位置块用于报告推进器电机的当前位置。

图中显示了一个标有“PusherRotation 位置(度)”的编码块。此块用于检索“PusherRotation”组件的当前位置,并以度为单位表示。

选择报告的单位,

图片显示了一个代码块,其中“PusherRotation”组件的位置可以用“度”或“圈”来检查。下拉菜单当前设置为“度”,但也提供了切换到“圈”作为测量单位的选项。

在这个例子中,推动器将把环从臂上推下来,然后以度为单位报告电机的位置。

图片展示了一个代码块序列,其中“PusherMotor”设置为降低270度。一旦电机旋转到这个位置,代码块就会打印“PusherRotation”的位置(以度为单位)。这个序列的目的似乎是为下部推进器设置新的零度旋转位置,以确保后续操作能够准确跟踪起始位置。

GPS传感#

GPS 位置#

The GPS position block uses the GPS (Game Positioning System™) Sensor to report the positional offset of the robot’s turning reference point from the center of a field.

图片显示了一个标有“GPS 位置 X 坐标(毫米)”的编码块。该块用于检索 GPS 传感器位置的 X 坐标(以毫米为单位)。

选择要报告的 X 轴或 Y 轴。

图片展示了一个代码块,允许用户在 X 和 Y 坐标之间进行选择,以便从 GPS 传感器检索位置。下拉菜单中选定的选项是“X”,但也可以选择“Y”。

选择报告偏移值的单位,毫米 (MM) 还是英寸。

图片显示了一个代码块,允许用户选择 GPS 位置的测量单位,具体来说是毫米 (mm) 和英寸。下拉菜单中的当前选择是“mm”,表示位置将以毫米为单位进行测量。

GPS 航向#

The GPS heading block uses the GPS (Game Positioning System™) Sensor to report the heading that a robot is currently facing based on a GPS Sensor’s readings from the VEX GPS Field Code.

GPS 航向报告范围从 0.00 到 359.99 度。

图片显示了一个用于获取 GPS 航向(以度为单位)的编码块。该块允许用户选择 GPS 传感器,然后检索航向信息,该信息指示机器人或物体所面向的方向(以度为单位)。

AI视觉传感#

拍摄快照#

拍摄快照块将从 AI 视觉传感器捕获当前图像,以便进行处理和分析以进行 AI 分类。

AI 分类为移动目标、红环和蓝环。

该块显示“拍摄 AI 视觉的 AI 分类快照”。它涉及使用 AI 视觉传感器拍摄快照,尤其专注于 AI 分类。

所有后续的 AI 视觉传感器模块都依赖于最新快照的数据。为了确保您使用最新的信息,定期拍摄新的快照至关重要。每次新的快照都会刷新所有 AI 视觉传感器模块可用的数据,使它们能够处理来自传感器环境的最新视觉信息。

在尝试访问上次快照存储的数据之前,请务必检查是否检测到 AI 分类。操作方法如下:

  1. 拍摄快照之后,用如果块包裹你的 AI 视觉块。

  2. 使用对象存在吗?块作为如果块的条件。

  3. 这将检查在尝试从上次拍摄的快照中提取任何数据之前是否检测到 AI 分类。

在此示例中,拍摄了快照并将检测到的最大 AI 分类的宽度和高度打印到打印控制台。

  • 默认情况下,对象按大小进行索引,最大的对象位于索引 1。

  • AI 视觉传感器在快照后自动选择最大的物体(索引 1)。

图中,积木呈现的代码在代码启动时生效,使机械臂电机向上旋转 270 度,以防止 AI 视觉传感器受到遮挡。使用专注于 AI 分类的 AI 视觉传感器拍摄快照,代码会检查上次快照中是否检测到任何 AI 分类。如果 AI 视觉传感器检测到物体,代码会打印检测到的最大物体的宽度。

AI分类是#

如果检测到指定的 AI 分类,则 AI 分类是 块将报告。

图片中的区块显示:“AI Vision AI 分类是 MobileGoal?” 该区块的结构用于检查 AI Vision 传感器是否检测到了被归类为“MobileGoal”的物体。

选择在最后一张快照中检测的 AI 分类。

图片中的方块写着:“AI Vision AI Classification 是 MobileGoal 吗?” “MobileGoal” 旁边的下拉菜单已打开,显示可选择“MobileGoal”、“RedRing”或“BlueRing”的选项。

在尝试访问上次快照存储的数据之前,请务必检查是否检测到 AI 分类。操作方法如下:

  1. 拍摄快照之后,用如果块包裹你的 AI 视觉块。

  2. 使用对象存在吗?块作为如果块的条件。

  3. 这将检查在尝试从上次拍摄的快照中提取任何数据之前是否检测到 AI 分类。

在此示例中,拍摄快照后,代码将检查是否检测到任何移动目标。

此图显示了一个编码序列,其中臂电机设置为旋转 270 度,以确保 AI 视觉传感器不受遮挡。然后,AI 视觉传感器拍摄快照,检查是否检测到任何 AI 分类。如果检测到任何物体,该序列将检查该物体是否被归类为移动目标。

设置对象项#

设置对象项 块将从检测到的对象中设置(您想要了解更多信息的对象)的对象项。默认情况下,项目开始时对象项设置为 1。

该图显示了将 AI Vision 系统的对象项设置为 1 的编码块。

在尝试访问上次快照存储的数据之前,请务必检查是否检测到 AI 分类。操作方法如下:

  1. 拍摄快照之后,用如果块包裹你的 AI 视觉块。

  2. 使用对象存在吗?块作为如果块的条件。

  3. 这将检查在尝试从上次拍摄的快照中提取任何数据之前是否检测到 AI 分类。

在此示例中,拍摄快照后,当前对象索引被设置为检测到的第二大对象,并且其高度被打印到打印控制台。

该图展示了一个基于块的编码序列。代码首先将 Arm 电机向上旋转 270 度,以免遮挡 AI 视觉传感器。接下来,AI 视觉传感器拍摄 AI 分类的快照。然后,程序检查上次快照中是否检测到任何 AI 分类。如果存在对象,程序会将 AI 视觉对象的 item 设置为 2,表示第二大对象。最后,程序打印该对象的高度,并将光标设置到下一行。

对象计数#

对象计数 块将从检测到的对象中设置(您想要了解更多信息的对象)的对象项。默认情况下,项目开始时的对象项设置为 1。

图片显示了一个标有“AIVision 对象计数”的块。该块开头的下拉菜单设置为“AIVision”,该块将返回 AI Vision 传感器检测到的物体数量。

在尝试访问上次快照存储的数据之前,请务必检查是否检测到 AI 分类。操作方法如下:

  1. 拍摄快照之后,用如果块包裹你的 AI 视觉块。

  2. 使用对象存在吗?块作为如果块的条件。

  3. 这将检查在尝试从上次拍摄的快照中提取任何数据之前是否检测到 AI 分类。

在这个例子中,代码将检查快照后是否检测到 AI 分类,如果检测到,将打印检测到了多少个 AI 分类。

该图展示了用于执行与 AI 视觉传感器交互的程序的一系列块。该程序首先将手臂电机向上旋转 270 度,以避免等待 AI 视觉传感器。电机完成运动后,将拍摄 AI 分类的快照。然后,程序检查 AI 视觉传感器是否检测到任何物体。如果检测到物体,程序将打印检测到的物体的数量,并将光标移动到下一行。

对象存在#

如果 AI 视觉传感器检测到 AI 分类,则对象存在块将进行报告。

该图显示了一个块,用于检查 AI 视觉传感器检测到的物体是否存在。该块输出一个布尔值,指示是否检测到了物体。

在尝试访问上次快照存储的数据之前,请务必检查是否检测到 AI 分类。操作方法如下:

  1. 拍摄快照之后,用如果块包裹你的 AI 视觉块。

  2. 使用对象存在吗?块作为如果块的条件。

  3. 这将检查在尝试从上次拍摄的快照中提取任何数据之前是否检测到 AI 分类。

在这个例子中,代码将检查快照后是否检测到 AI 分类,如果检测到,将打印检测到了多少个 AI 分类。

该图展示了用于执行与 AI 视觉传感器交互的程序的一系列块。该程序首先将手臂电机向上旋转 270 度,以避免等待 AI 视觉传感器。电机完成运动后,将拍摄 AI 分类的快照。然后,程序检查 AI 视觉传感器是否检测到任何物体。如果检测到物体,程序将打印检测到的物体的数量,并将光标移动到下一行。

人工智能视觉对象#

AI 视觉对象块将报告上次使用拍摄快照块时的 AI 分类信息。

该图显示了一个用于检索 AI 视觉传感器检测到的物体宽度的块。该块包含下拉菜单,用于选择 AI 视觉传感器并将测量类型指定为宽度。它输出检测到的物体的宽度值。

选择要报告的 AI 分类属性:

  • 宽度:AI 分类的像素宽度。

  • 高度:AI 分类的高度(以像素为单位)。

  • centerX:AI 分类正中心的 X 坐标。

  • centerY:AI 分类正中心的 Y 坐标。

  • originX:AI分类左上角的X坐标。

  • originY:AI分类左上角的Y坐标。

图片顶部水平排列着一组蓝色圆形按钮,分别标有“AIVision”、“对象”和“宽度”。在“宽度”按钮下方,展开了一个下拉菜单,显示一系列选项,包括“宽度”(已选中)、“高度”、“中心X”、“中心Y”、“原点X”和“原点Y”。

在尝试访问上次快照存储的数据之前,请务必检查是否检测到 AI 分类。操作方法如下:

  1. 拍摄快照之后,用如果块包裹你的 AI 视觉块。

  2. 使用对象存在吗?块作为如果块的条件。

  3. 这将检查在尝试从上次拍摄的快照中提取任何数据之前是否检测到 AI 分类。

图中,积木呈现的代码在代码启动时生效,使机械臂电机向上旋转 270 度,以防止 AI 视觉传感器受到遮挡。使用专注于 AI 分类的 AI 视觉传感器拍摄快照,代码会检查上次快照中是否检测到任何 AI 分类。如果 AI 视觉传感器检测到物体,代码会打印检测到的最大物体的宽度。