在 VEXcode IQ 中编码时,VEX IQ 智能电机有许多可用的功能。 在对手臂、爪子、进气口以及传动系统和使用 VEX IQ 创建的其他机构进行编码时,这会派上用场。 了解如何对电机进行编码将有助于缓解项目停滞或电机无法按预期工作等问题。
电机编码器
VEX IQ智能电机不仅能像大多数电机一样将电能转化为机械能,而且还具有大多数电机所不具备的功能,使其变得“智能”。 其主要特征之一是正交编码器。 该编码器安装在电机内部,以跟踪电机轴的速度和/或位置。
来自 VEX IQ 智能电机编码器的报告可以让您了解:
- 电机转动方向(正转/反转或开/关)
- 电机的位置以及电机的转数和位置(以转数或度为单位)
- 电机转速(基于编码器随时间的位置)
由于编码器会报告电机的状态,因此它们可用于幕后计算,以使许多运动和传感命令在 VEXcode IQ 中运行。
单个电机编码
在开始在 VEXcode IQ 中对单个智能电机进行编码之前,您需要配置电机。 单独的电机经常用于附加机构,例如入口、臂和爪。 然而,所有信息仍然适用于使用单独电机的其他机构。
按照本文中的步骤 在 VEXcode IQ 中配置您的个人电机。
配置单个电机后,控制该电机的命令将出现在工具箱中。 您会注意到有不同类型的命令:等待和非等待。
等待命令与非等待命令
请注意,此处的所有图像都显示块。 所有这些项目都可以用 Python 或 C++ 重新构建,并包含与块相同的功能。
等待命令会阻止项目继续进行,直到行为完成。 其中包括 [旋转为] 和 [旋转到位置] 等命令。
此处显示的项目使用 Clawbot(2 电机)模板,所有命令都在等待。 因此串联起来,爪电机将关闭 90 度,机器人将反向驱动,然后手臂将旋转到 180 度的位置。
相反,有非等待命令。 非等待命令将无限期地执行该行为,或者直到被告知更改为另一种行为为止。 其中包括诸如 [Spin]之类的命令。
此处显示的项目使用添加了入口的 BaseBot。 此时进气电机将开始旋转。 [Wait] 命令是一个等待命令,因此摄入量将继续旋转,直到 2 秒结束,然后移至项目中的下一个命令,即 [Stop] 命令。 然后电机就会停止旋转。
电机超时
将电机编码为手臂或爪的一部分时,重要的是要记住等待块和非等待块之间的区别以及它们将如何影响机器人的运动。 电机超时允许您设置电机到达预期目标位置的时间限制。 如果时间到期时仍未达到该位置,电机将停止尝试旋转,项目将移至下一个命令。
在此示例中,电机超时设置为 2 秒。 如果爪子在 2 秒内没有接近 90 度,电机将在 2 秒标记处停止旋转,然后移动到下一个命令并向前行驶。
如果您不确定电机要移动多远,请使用传感器仪表板。 仪表板以度数和转数报告电机的位置,因此当您移动电机(例如打开和关闭爪子)时,数字会发生变化。 使用此测试来确定需要多少度或旋转才能闭合爪子、举起手臂、旋转进气等。
请参阅这些文章以了解如何使用传感器仪表板。
将智能电机编码为传动系统的一部分
在开始在 VEXcode IQ 中编码传动系统之前,您需要配置传动系统,包括所使用的电机。 电机在传动系统内进行配置,以确保它们由相同的命令(例如 [Drive] 和 [Drive for])控制。
等待和非等待命令
在对传动系统进行编码时,可以使用等待和非等待命令来控制机器人的运动。
等待命令会阻止项目继续进行,直到行为完成。 这些命令包括 [Drive for] [Turn for] 和 [Turn to header] 等命令。
此处显示的项目使用 Clawbot(2 电机)模板,所有命令都在等待。 因此,在系列中,机器人将通过传动系统向前行驶 200 毫米,然后右转。
相反,有非等待命令。 非等待命令将无限期地执行该行为,或者直到被告知更改为另一种行为为止。 其中包括诸如 [Drive]之类的命令。
此处显示的项目使用 BaseBot。 在这里,机器人将无限期地向前行驶,直到按下保险杠开关。 然后项目将移至下一个命令,机器人将停止行驶并右转 90 度。