机器人专用积木#

介绍#

VIQRC 25-26 Mix & Match 游乐场采用专为该游乐场设计的专属积木,包括两种电机选项、IQ AI 视觉传感器、光学传感器和触摸 LED。

所有标准 VEXcode VR 积木均可用于 VIQRC 25-26 Mix & Match 游乐场。

以下是所有可用的游乐场特定块的列表:

运动——移动并跟踪机器人的马达。

  • 行动

    • spin – 无限旋转选定的电机或电机组。

    • spin for – 以度数或圈数为单位,使电机或电机组旋转特定距离。

    • 旋转到位置 – 将电机或电机组旋转到设定位置。

    • 停止电机 – 停止特定电机或电机组旋转。

  • 设置

    • 设置电机速度 – 以百分比设置电机或电机组的速度。

    • [设置电机超时](#set-motor-timeout)——限制当运动受阻时电机阻塞在放弃之前等待的时间。

  • 位置

  • 价值观

AI视觉——使用IQ AI视觉传感器捕捉和分析物体。

感知——利用机器人的各种传感器。

运动#

Actions#

旋转#

旋转块使用 当前电机速度 沿指定方向旋转选定的电机或电机组。

[ClawMotor v] [打开 v] 转

参数

描述

发动机

要旋转的电机或电机组:

  • ClawMotor
  • LiftMotor

方向

旋转方向:

    爪电机
    • 打开
    • 关闭
    升降电机
    • 向下
    • 向上

例子

当开始
[Place a pin atop another pin.]
[LiftMotor v] [向上 v] 转 [600] [度 v] ▶
驱动 [向前 v] (140) [毫米 v] ▶
[ClawMotor v] [打开 v] 转

旋转#

spin for 块使用 当前电机速度(以度或圈数为单位)旋转选定的电机或电机组特定的旋转量。

[ClawMotor v] [打开 v] 转 (90) [度 v] ▶

参数

描述

发动机

要旋转的电机或电机组:

  • ClawMotor
  • LiftMotor

方向

旋转方向:

    爪电机
    • 打开
    • 关闭
    升降电机
    • 向下
    • 向上

距离

旋转量,为整数或小数。

单元

表示距离的计量单位:

扩大箭头

默认情况下,这是一个等待块,因此电机会在运行下一个块之前完成移动。要使电机开始移动并立即运行下一个块,请将块扩展为不等待

例子

当开始
[Place a pin atop another pin.]
[LiftMotor v] [向上 v] 转 [600] [度 v] ▶
驱动 [向前 v] (140) [毫米 v] ▶
[ClawMotor v] [打开 v] 转

旋转至位置#

旋转到位置块使用当前 电机速度电机位置 将电机或电机组旋转到特定的绝对位置。

[ClawMotor v] 转至 (90) [度 v] ▶

参数

描述

发动机

要旋转的电机或电机组:

  • ClawMotor
  • LiftMotor

位置

电机或电机组旋转的目标位置。

单元

计量单位:

扩大箭头

默认情况下,这是一个等待块,因此电机会在运行下一个块之前完成移动。要使电机开始移动并立即运行下一个块,请将块扩展为不等待

例子

当开始
[Place a pin atop another pin.]
[LiftMotor v] 转至 [-2] [转 v] ▶
驱动 [向前 v] (140) [毫米 v] ▶
[ClawMotor v] [打开 v] 转

停止电机#

停止电机块立即停止选定的电机或电机组。

[ClawMotor v] 停止

参数

描述

发动机

需要停止的电机或电机组:

  • ClawMotor
  • LiftMotor

例子

当开始
[Place a pin atop another pin.]
[LiftMotor v] [向上 v] 转
等待 [2] 秒
[LiftMotor v] 停止
驱动 [向前 v] (140) [毫米 v] ▶
[ClawMotor v] [打开 v] 转

Settings#

设定电机速度#

设置电机速度块将电机或电机组的默认旋转速度设置为项目中所有后续电机块的百分比。

设定 [ClawMotor v] 转速为 (50) [% v]

参数

描述

发动机

需要设置速度的电机或电机组:

  • ClawMotor
  • LiftMotor

速度

将默认移动速度设置为 0 至 100 的百分比。

单元

表示速度的单位:

  • %

例子

当开始
[Place a pin atop another pin.]
设定 [LiftMotor v] 转速为 [100] [% v]
[LiftMotor v] [向上 v] 转 [600] [度 v] ▶
驱动 [向前 v] (140) [毫米 v] ▶
[ClawMotor v] [打开 v] 转

设置电机超时#

设置电机超时 模块设置了电机模块等待到达目标的时间限制。如果机器人无法在设定的时间内完成移动,它将自动停止并继续执行下一个模块。

**注意:**电机的时间限制用于防止未到达目标位置的电机块停止堆栈中其他块的执行。

设定 [ClawMotor v] 超时为 (1) 秒

参数

描述

发动机

需要设置超时的电机或电机组:

  • ClawMotor
  • LiftMotor

时间

电机块在停止并移动到下一个块之前运行的最大秒数。

例子

当开始
[Place a pin atop another pin.]
设定 [LiftMotor v] 超时为 [2] 秒
[LiftMotor v] [向上 v] 转 [5] [转 v] ▶
驱动 [向前 v] (140) [毫米 v] ▶
[ClawMotor v] [打开 v] 转

Position#

电机位置#

电机位置块返回所选电机或电机组旋转的总距离。

([ClawMotor v] 转位 [度 v])

参数

描述

发动机

返回位置的电机或电机组:

  • ClawMotor
  • LiftMotor

单元

计量单位:

例子

当开始
[Place a pin atop another pin.]
[LiftMotor v] [向上 v] 转
等到 <[-600] [math_greater_than v] ([LiftMotor v] 转位 [度 v])>
[LiftMotor v] 停止
驱动 [向前 v] (140) [毫米 v] ▶
[ClawMotor v] [打开 v] 转

设置电机位置#

设置电机位置块为电机或电机组设置特定的位置值,从而更新编码器读数。

设定 [ClawMotor v] 转位至 (0) [度 v]

参数

描述

发动机

需要设置位置的电机或电机组:

  • ClawMotor
  • LiftMotor

位置

要设置的编码器位置值。

单元

计量单位:

例子

当开始
[Place a pin atop another pin.]
设定 [LiftMotor v] 位置为 [100] 度
[LiftMotor v] 转至 [-500] [度 v] ▶
驱动 [向前 v] (140) [毫米 v] ▶
[ClawMotor v] [打开 v] 转

Values#

电机完成#

电机是否完成? 块返回一个布尔值,指示电机或电机组是否未旋转。

  • 正确 – 电机没有旋转。

  • 错误 – 电机正在旋转。

<[ClawMotor v] 已结束?>

参数

描述

发动机

检查电机或电机组是否旋转完成:

  • ClawMotor
  • LiftMotor

例子

当开始
[Place a pin atop another pin.]
[LiftMotor v] [向上 v] 转 [600] [度 v] ◀ 并且不等待
等待 [0.1] 秒
重复直到 <[LiftMotor v] 已结束?>
设定 [TouchLED v] 颜色为 [红色 v]
等待 [0.5] 秒
设定 [TouchLED v] 颜色为 [红色 v]
等待 [0.5] 秒
结束
驱动 [向前 v] (140) [毫米 v] ▶
[ClawMotor v] [打开 v] 转

电机在旋转吗?#

电机正在旋转? 块返回一个布尔值,指示电机是否正在旋转。

  • 真 – 电机正在旋转。

  • 错误 – 电机没有旋转。

<[ClawMotor v] 正在转?>

参数

描述

发动机

检查当前是否正在旋转的电机或电机组:

  • ClawMotor
  • LiftMotor

例子

当开始
[Place a pin atop another pin.]
[LiftMotor v] [向上 v] 转 [600] [度 v] ◀ 并且不等待
等待 [0.1] 秒
当 <[LiftMotor v] 正在转?>
设定 [TouchLED v] 颜色为 [红色 v]
等待 [0.5] 秒
设定 [TouchLED v] 颜色为 [红色 v]
等待 [0.5] 秒
结束
驱动 [向前 v] (140) [毫米 v] ▶
[ClawMotor v] [打开 v] 转

电机速度#

电机速度块返回电机或电机组的当前转速,范围从 -100% 到 100%。

([ClawMotor v] 速度 [% v] 值 :: custom-motion)

参数

描述

发动机

返回速度的电机或电机组:

  • ClawMotor
  • LiftMotor

单元

表示速度的单位:

  • %

例子

当开始
[Place a pin atop another pin.]
设定 [LiftMotor v] 转速为 [100] [% v]
[LiftMotor v] [向上 v] 转 [600] [度 v] ◀ 并且不等待
等待 [0.5] 秒
打印 ([LiftMotor v] 速度 [% v] 值 :: custom-motion) ▶
驱动 [向前 v] (140) [毫米 v] ▶
[ClawMotor v] [打开 v] 转

人工智能视觉#

Actions#

获取对象数据#

“获取对象数据”模块用于过滤来自 IQ AI 视觉传感器帧的数据。IQ AI 视觉传感器可以检测场地上的比赛元素。

数据集按宽度从大到小排序存储对象,索引从 0 开始。可以使用 AI Vision 对象属性 代码块访问每个对象的属性。如果没有检测到匹配的对象,则返回空数据集。

获取对象数据堆栈块。#
从 [AIVision v]获取 [AI Classifications v] 数据

范围

描述

签名

筛选数据集,仅包含给定签名的数据。唯一可用的签名是:

  • AI 分类 –
光束以及蓝色、红色和橙色图钉。2

例子

当开始
[Place the Red Pin on the top left Blue Pin.]
[LiftMotor v] [向上 v] 转 [600] [度 v] ▶
[左 v] 转 [38] 度 ▶
重复直到 <([AIVision v] 对象 [宽 v]) [math_greater_than v] [48]>
[Move forward until the robot is close to the Pin.]
从 [AIVision v]获取 [AI Classifications v] 数据
驱动 [向前 v]
结束
驱动 [向前 v] [160] [毫米 v] ▶
[ClawMotor v] [打开 v] 转

Settings#

设置对象项#

设置对象项 块设置要使用数据集中的哪个项。

设置 AI Vision 对象项堆叠块。#
设定 [AIVision v] 对象标号为 [1]

参数

描述

物品

要使用的数据集中的项目编号。

例子

当开始
[Find the object index of the nearest Orange Pin.]
[LiftMotor v] [向上 v] 转 [600] [度 v] ▶
设定 [object_counter v] 为 [1]
从 [AIVision v]获取 [AI Classifications v] 数据
[Iterate through all detected objects.]
重复 ([AIVision v] 对象数目)
设定 [AIVision v] 对象标号为 (object_counter)
如果 <[AIVision v] object is [Orange Pin v] ?> 那么
打印 (连接 [Nearest Orange Pin is ] (object_counter)) ▶
否则
将 [object_counter v] 改变 [1]

Values#

对象是否存在?#

对象存在? 代码块返回一个布尔值,指示是否在数据集中检测到任何对象。

  • 正确——数据集中包含检测到的对象。

  • 错误——该数据集不包含任何检测到的对象。

AI Vision 对象存在布尔块。#
<AI 视觉仪对象存在?>

参数

描述

该块没有参数。

例子

当开始
[Raise the Lift until a Pin or Beam is detected.]
重复直到 <[AIVision v] 对象存在?>
从 [AIVision v]获取 [AI Classifications v] 数据
[LiftMotor v] [向上 v] 转
结束
[LiftMotor v] 停止

对象计数#

对象计数 模块返回数据集中检测到的对象数量,以整数形式表示。

设置 AI Vision 对象项堆叠块。#
([AIVision v] 对象数目)

参数

描述

该块没有参数。

例子

当开始
[Find the object index of the nearest Orange Pin.]
[LiftMotor v] [向上 v] 转 [600] [度 v] ▶
设定 [object_counter v] 为 [1]
从 [AIVision v]获取 [AI Classifications v] 数据
[Iterate through all detected objects.]
重复 ([AIVision v] 对象数目)
设定 [AIVision v] 对象标号为 (object_counter)
如果 <[AIVision v] object is [Orange Pin v] ?> 那么
打印 (连接 [Nearest Orange Pin is ] (object_counter)) ▶
否则
将 [object_counter v] 改变 [1]

对象属性#

使用 获取对象数据 后,每个对象都包含六个属性(如下所示)。

AI视觉对象属性报告器模块。#
([AIVision v] 对象 [宽 v])

某些属性值基于使用“获取对象数据”模块时,检测到的对象在 IQ AI 视觉传感器视野中的位置。IQ AI 视觉传感器的分辨率为 320 x 240 像素。

范围

描述

财产

要使用检测到的对象的哪个属性:

宽度#

width 函数返回检测到的对象的宽度(以像素为单位),数值为 1 到 320 之间的整数。

AI Vision 对象属性堆栈块,其参数设置为宽度。#
([AIVision v] 对象 [宽 v])

例子

当开始
[Place the Red Pin on the top left Blue Pin.]
[LiftMotor v] [向上 v] 转 [600] [度 v] ▶
[左 v] 转 [38] 度 ▶
重复直到 <([AIVision v] 对象 [宽 v]) [math_greater_than v] [48]>
[Move forward until the robot is close to the Pin.]
从 [AIVision v]获取 [AI Classifications v] 数据
驱动 [向前 v]
结束
驱动 [向前 v] [160] [毫米 v] ▶
[ClawMotor v] [打开 v] 转
高度#

height 返回检测到的对象的高度(以像素为单位),数值为 1 到 240 之间的整数。

AI Vision 对象属性堆栈块,其参数设置为高度。#
([AIVision v] 对象 [高 v])

例子

当开始
[Place the Red Pin on the top left Blue Pin.]
[LiftMotor v] [向上 v] 转 [600] [度 v] ▶
[左 v] 转 [38] 度 ▶
重复直到 <([AIVision v] 对象 [高 v]) [math_greater_than v] [68]>
[Move forward until the robot is close to the Pin.]
从 [AIVision v]获取 [AI Classifications v] 数据
驱动 [向前 v]
结束
驱动 [向前 v] [160] [毫米 v] ▶
[ClawMotor v] [打开 v] 转
centerX#

centerX 返回检测到的对象中心的 x 坐标(以像素为单位),数值为 0 到 320 之间的整数。

AI Vision 对象属性堆栈块,其参数设置为 centerX。#
([AIVision v] 对象 [中心X坐标 v])

例子

当开始
[Place the Red Pin on the bottom left Blue Pin.]
驱动 [向前 v] [50] [毫米 v] ▶
[LiftMotor v] [向上 v] 转 [450] [度 v] ▶
设定转向速度为 [10] [% v]
从 [AIVision v]获取 [AI Classifications v] 数据
重复直到 <([AIVision v] 对象 [中心X坐标 v]) [math_less_than v] [190]>
[Turn until the robot is centered on the Blue Pin.]
从 [AIVision v]获取 [AI Classifications v] 数据
[右 v] 转
结束
驱动 [向前 v] [350] [毫米 v] ▶
[ClawMotor v] [打开 v] 转
中心Y#

centerY 返回检测到的对象中心的 y 坐标(以像素为单位),数值为 0 到 240 之间的整数。

AI Vision 对象属性堆栈块,其参数设置为 centerY。#
([AIVision v] 对象 [中心Y坐标 v])

例子

当开始
[Place the Red Pin on the top left Blue Pin.]
[LiftMotor v] [向上 v] 转 [600] [度 v] ▶
[左 v] 转 [38] 度 ▶
重复直到 <([AIVision v] 对象 [中心Y坐标 v]) [math_greater_than v] [210]>
[Move forward until the robot is close to the Pin.]
从 [AIVision v]获取 [AI Classifications v] 数据
驱动 [向前 v]
结束
驱动 [向前 v] [160] [毫米 v] ▶
[ClawMotor v] [打开 v] 转
originX#

originX 返回检测到的对象边界框左上角的 x 坐标(以像素为单位),数值为 0 到 320 之间的整数。

AI Vision 对象属性堆栈块,其参数设置为 originX。#
([AIVision v] 对象 [原点X v])

例子

当开始
[Place the Red Pin on the bottom left Blue Pin.]
驱动 [向前 v] [50] [毫米 v] ▶
[LiftMotor v] [向上 v] 转 [450] [度 v] ▶
设定转向速度为 [10] [% v]
从 [AIVision v]获取 [AI Classifications v] 数据
重复直到 <([AIVision v] 对象 [中心X坐标 v]) [math_less_than v] [160]>
[Turn until the robot is centered on the Blue Pin.]
从 [AIVision v]获取 [AI Classifications v] 数据
[右 v] 转
结束
驱动 [向前 v] [350] [毫米 v] ▶
[ClawMotor v] [打开 v] 转
originY#

originY 返回检测到的对象边界框左上角的 y 坐标(以像素为单位),数值为 0 到 240 之间的整数。

AI Vision 对象属性堆栈块,其参数设置为 originY。#
([AIVision v] 对象 [原点Y v])

例子

当开始
[Place the Red Pin on the top left Blue Pin.]
[LiftMotor v] [向上 v] 转 [600] [度 v] ▶
[左 v] 转 [38] 度 ▶
重复直到 <([AIVision v] 对象 [原点Y v]) [math_greater_than v] [180]>
[Move forward until the robot is close to the Pin.]
从 [AIVision v]获取 [AI Classifications v] 数据
驱动 [向前 v]
结束
驱动 [向前 v] [160] [毫米 v] ▶
[ClawMotor v] [打开 v] 转

人工智能分类是#

AI Vision 对象是? 块返回一个布尔值,指示检测到的对象是否与特定分类匹配。

  • 正确——数据集中的项就是特定的对象。

  • 错误——数据集中的项不是特定对象。

AI视觉AI分类是一个对象布尔块。#
<[AIVision] object is [Beam v]?>

范围

描述

目的

要将该物品与哪个物体进行比较:

  • 蓝色图钉
  • 红色图钉
  • 橙色图钉

例子

当开始
[Find the object index of the nearest Orange Pin.]
[LiftMotor v] [向上 v] 转 [600] [度 v] ▶
设定 [object_counter v] 为 [1]
从 [AIVision v]获取 [AI Classifications v] 数据
[Iterate through all detected objects.]
重复 ([AIVision v] 对象数目)
设定 [AIVision v] 对象标号为 (object_counter)
如果 <[AIVision v] object is [Orange Pin v] ?> 那么
打印 (连接 [Nearest Orange Pin is ] (object_counter)) ▶
否则
将 [object_counter v] 改变 [1]

传感#

Optical#

光学发现物体?#

**光学发现物体?**块返回一个布尔值,指示光学传感器是否检测到物体。

  • 真 – 光学传感器已检测到物体。

  • 错误 – 光学传感器未检测到物体。

<[Optical v] 发现对象?>

参数

描述

该块没有参数。

例子

当开始
[Place a pin atop another pin.]
[LiftMotor v] [向上 v] 转 [600] [度 v] ▶
驱动 [向前 v] (140) [毫米 v] ▶
[ClawMotor v] [打开 v] 转
等到 <非 <[Optical v] 发现对象?>>
[LiftMotor v] 转至 [0] [度 v] ▶

光学检测颜色?#

**光学检测颜色?**块返回一个布尔值,指示光学传感器是否检测到特定颜色。

  • 真 – 光学传感器已检测到指定的颜色。

  • 错误 – 光学传感器未检测到指定的颜色。

<[Optical v] 测得 [红色 v]?>

参数

描述

颜色

要检查的颜色:

  • 红色
  • 绿色
  • 蓝色
  • 黄色
  • 橙色
  • 紫色

例子

当开始
[Place a pin atop another pin.]
[LiftMotor v] [向上 v] 转 [600] [度 v] ▶
驱动 [向前 v] (140) [毫米 v] ▶
[ClawMotor v] [打开 v] 转
等到 <非 <[Optical v] 测得 [红色 v]?>>
[LiftMotor v] 转至 [0] [度 v] ▶

光学亮度#

光学亮度块返回光学传感器检测到的光量,范围从 0% 到 100%。

([Optical v] 亮度百分比)

参数

描述

该块没有参数。

例子

当开始
[Place a pin atop another pin.]
[LiftMotor v] [向上 v] 转 [600] [度 v] ▶
驱动 [向前 v] (140) [毫米 v] ▶
[ClawMotor v] [打开 v] 转
等到 <[30] [math_greater_than v] ([Optical v] 亮度百分比)>
[LiftMotor v] 转至 [0] [度 v] ▶

光学色调#

光学色调块返回光学传感器检测到的颜色的色调值。

色调值范围从 0 到 359 度,对应于下面显示的色轮上的位置。

圆形色轮,显示全光谱色调,周边标有度数值,从顶部的 0° 到 360°,以 30 度为增量增加。

([Optical v] 色调度数)

参数

描述

该块没有参数。

例子

当开始
[Place a pin atop another pin.]
[LiftMotor v] [向上 v] 转 [600] [度 v] ▶
驱动 [向前 v] (140) [毫米 v] ▶
[ClawMotor v] [打开 v] 转
等到 <([Optical v] 色调度数) [math_greater_than v] [0]>
[LiftMotor v] 转至 [0] [度 v] ▶

当光学#

当光学传感器检测到或丢失物体时,当光学模块会运行其堆叠。你可以使用多个当光学模块来同时运行多个模块堆叠。

当 [Optical v] [detects v] 一个对象

参数

描述

行动

哪些动作触发帽子积木:

  • 检测
  • 丢失

例子

当开始
[Place a pin atop another pin.]
[LiftMotor v] [向上 v] 转 [600] [度 v] ▶
驱动 [向前 v] (140) [毫米 v] ▶
[ClawMotor v] [打开 v] 转
当 [Optical v] [loses v] 一个对象
[Lower the lift when the red pin is not in the claw.]
[LiftMotor v] 转至 [0] [度 v] ▶

Touch LED#

设置 TouchLED 颜色#

设置触摸LED颜色块设置触摸LED的颜色。

设定 [TouchLED v] 颜色为 [none v]

参数

描述

颜色

将 LED 的颜色设置为:

  • 无 – 关闭触摸 LED
  • 红色
  • 绿色
  • 蓝色
  • 白色
  • 黄色
  • 橙色
  • 紫色
  • 红紫色
  • 紫色
  • 蓝紫色
  • 蓝绿色
  • 黄绿色
  • 黄橙色
  • 红橙色

例子

当开始
[Place a pin atop another pin.]
设定 [TouchLED v] 颜色为 [红色 v]
[LiftMotor v] [向上 v] 转 [600] [度 v] ▶
驱动 [向前 v] (140) [毫米 v] ▶
[ClawMotor v] [打开 v] 转
设定 [TouchLED v] 颜色为 [none v]