传动系统#

介绍#

驱动系统包括车轮和电机,用于控制机器人的行驶和转向。驱动系统常见于 Code Base 2.0、Super Car 等机器人或定制机器人中。

驱动系统利用大脑中的惯性传感器(Inertial.md)来检测碰撞,并帮助机器人精确地移动和转向。在每个项目开始时,驱动系统会自动校准惯性传感器。校准期间,请保持机器人静止约2秒钟,以便机器人能够正确地移动和转向。

传动系统编程方式有很多种。以下是所有传动系统模块的列表:

动作——移动和转向机器人。

  • drive — 使机器人无限向前或向后移动。

  • 驱动 — 使机器人向前或向后移动指定的距离。

  • 驱动直到 — 使机器人前进或后退,直到眼传感器检测到物体或机器人检测到碰撞。

  • turn — 使机器人永远向左或向右转弯。

  • turn for — 使机器人向左或向右旋转指定的角度数。

  • 转向航向 — 将机器人转向 -359 度到 359 度之间的特定航向。机器人将沿最短路径转向以达到目标航向。

  • 转向旋转 — 将机器人转向指定的旋转方向。

  • 停止驾驶 — 停止机器人的移动。

设置 — 调整传动系统设置。

数值 — 检查移动状态。

  • 驱动完成 — 报告机器人是否已完成移动。

  • 驱动航向 — 报告机器人的当前航向,范围从 0 到 359 度。

  • 驱动旋转 — 报告机器人的当前旋转方向。

  • 驱动速度 — 报告机器人的行驶速度,以 -100% 到 100% 的百分比表示。

行动#

驾驶#

驱动 模块使机器人能够无限向前或向后移动。机器人将持续移动,直到收到其他指令,例如转向或停止。

驱动 [向前 v]

参数

描述

方向

机器人移动方向:前进后退

例子

当开始 :: hat events
[Build Used: Code Base 2.0]
[Drive forward then stop.]
驱动 [向前 v]
等待 (2) 秒
驱动停止

开车去#

驱动堆栈模块控制机器人前进或后退一段特定距离。程序会等待机器人完成移动后,才会运行堆栈中的下一个模块。

驱动 [向前 v] [100] [毫米 v] ▶

参数

描述

方向

机器人移动方向:前进后退

距离

机器人行驶的距离。可以是整数,也可以是小数。

单元

距离单位:mm(毫米)或英寸

不要等待

选择箭头(▶)展开代码块,显示“不要等待”,这样堆栈中的下一个代码块就会立即运行。

例子

当开始 :: hat events
[Build Used: Code Base 2.0]
[Drive back and forth.]
驱动 [向前 v] [100] [毫米 v] ▶
驱动 [反 v] [4] [英寸 v] ▶

开车直到#

驱动直到堆叠块使机器人前进或后退,直到眼传感器检测到物体或机器人检测到碰撞为止。

驱动 [向前 v] 直到 [对象 v] ▶

参数

描述

方向

机器人移动方向:前进后退

状况

导致机器人停止运行的条件:遇到障碍物发生碰撞

不要等待

选择箭头(▶)展开代码块,显示“不要等待”,这样堆栈中的下一个代码块就会立即运行。

例子

当开始 :: hat events
[Build Used: Code Base 2.0]
[Turn right after a crash.]
驱动 [向前 v] 直到 [撞毁 v] ▶
[右 v] 转 (90) 度 ▶

转动#

转向 积木块会让机器人无限向左或向右转向。机器人会一直转向,直到收到其他动作指令,例如行驶或停止。

[右 v] 转

参数

描述

方向

机器人转向的方向:向左向右

例子

当开始 :: hat events
[Build Used: Code Base 2.0]
[Turn right and left, then stop.]
[右 v] 转
等待 [2] 秒
[左 v] 转
等待 [2] 秒
驱动停止

转向#

“转向”堆栈模块会使机器人向左或向右旋转指定的角度。旋转角度是相对于机器人的当前位置而言的。程序会等待机器人完成旋转后,才会运行堆栈中的下一个模块。

[右 v] 转 (90) 度 ▶

参数

描述

方向

机器人转向的方向:向左向右

角度

机器人旋转的角度数。可以是整数,也可以是小数。

不要等待

选择箭头(▶)展开代码块,显示“不要等待”,这样堆栈中的下一个代码块就会立即运行。

例子

当开始 :: hat events
[Build Used: Code Base 2.0]
[Turn right then left.]
[右 v] 转 (90) 度 ▶
[左 v] 转 (90) 度 ▶

转向航向#

航向角是指机器人大脑所面向的方向,以度为单位。转向航向角 堆栈块使机器人转向 -359 度到 359 度之间的特定航向角。机器人会选择到达目标航向角的最短路径。

起始航向为0度。

VEX GO 代码库 2.0 显示航向方向:向前 0 度,向右 90 度,向后 180 度,向左 270 度。

该项目将等待机器人完成转向后,才会运行堆栈中的下一个模块。

归位至 [90] 度 ▶

参数

描述

标题

机器人应面向的方向,以整数表示,范围从 -359 度到 359 度。

不要等待

选择箭头(▶)展开代码块,显示“不要等待”,这样堆栈中的下一个代码块就会立即运行。

例子

当开始 :: hat events
[Build Used: Code Base 2.0]
[Turn to face the cardinal directions.]
归位至 [90] 度 ▶
等待 [1] 秒
归位至 [180] 度 ▶
等待 [1] 秒
归位至 [270] 度 ▶
等待 [1] 秒
归位至 [0] 度 ▶

转向旋转#

旋转到旋转堆栈块使机器人旋转到特定方向。

旋转角度是指机器人转动的幅度,以度为单位。在项目开始时,旋转角度值设置为 0 度。也可以使用 set drive rotation 代码块来设置旋转角度。

旋转角度是绝对值。这意味着转弯方向取决于机器人当前的旋转角度。向右转弯会增加旋转角度,向左转弯会减少旋转角度。

例如,如果机器人从0度开始,你将其旋转720度,它会向右转两次。如果你再将其旋转360度,它会向左转一次,因为360小于720。

VEX GO 代码库 2.0,显示向右和向左旋转的箭头。左箭头表示“减号”,右箭头表示“加号”。

该项目将等待机器人完成转向后,才会运行堆栈中的下一个模块。

转向至 (90) 度 ▶

参数

描述

旋转

机器人将要旋转的角度值,以度为单位。该值可以是整数。

不要等待

选择箭头(▶)展开代码块,显示“不要等待”,这样堆栈中的下一个代码块就会立即运行。

例子

当开始 :: hat events
[Build Used: Code Base 2.0]
[Make one full turn to the right.]
转向至 [360] 度 ▶
[Make another full turn to the right.]
转向至 [720] 度 ▶
[Make one full turn to the left, returning to 360 degrees.]
转向至 [360] 度 ▶

停止驾驶#

停止驱动堆栈块会停止机器人的运动。

驱动停止

参数

描述

该块没有参数。

例子

当开始 :: hat events
[Build Used: Code Base 2.0]
[Drive forward then stop.]
驱动 [向前 v]
等待 (2) 秒
驱动停止

设置#

设置驱动速度#

设置驱动速度 代码块告诉机器人以多快的速度行驶。百分比越高,机器人行驶速度越快;百分比越低,机器人行驶速度越慢。

每个项目开始时,机器人默认以 50% 的速度行驶。

注意: 速度越高,机器人行驶速度越快,但精度可能越低。速度越低,机器人行驶速度越慢,但精度越高。

set drive velocity to [50] %

参数

描述

速度

行驶速度,范围从 0% 到 100%。

例子

当开始 :: hat events
[Build Used: Code Base 2.0]
[Drive at different velocities.]
驱动 [向前 v] [100] [毫米 v] ▶
等待 [1] 秒
[Drive slow.]
set drive velocity to [20] %
驱动 [向前 v] [100] [毫米 v] ▶
等待 [1] 秒
[Drive fast.]
set drive velocity to [100] %
驱动 [向前 v] [100] [毫米 v] ▶

设置转弯速度#

设置转弯速度 代码块告诉机器人转弯的速度。百分比越高,机器人转弯越快;百分比越低,机器人转弯越慢。

每个项目开始时,机器人默认以 50% 的速度旋转。

注意: 速度越高,机器人转弯越快,但精度可能越低。速度越低,机器人转弯越慢,但精度越高。

set turn velocity to [50] %

参数

描述

速度

转弯速度从 0% 到 100%。

例子

当开始 :: hat events
[Build Used: Code Base 2.0]
[Turn at different velocities.]
[右 v] 转 [180] 度 ▶
等待 [1] 秒
[Turn fast.]
set turn velocity to [100] %
[右 v] 转 [180] 度 ▶

设置驱动器停止#

设置驱动停止堆栈块设置机器人停止移动的方式:通过制动、滑行或保持。

设定驱动停止模式为 [刹车 v]

参数

描述

停止行为

机器人停止方式:

  • 刹车 — 立即停止。2
  • 滑行** — 减速直至停止。4
  • 保持** — 立即停止并保持车轮位置

如果不使用此模块,机器人停止时将使用刹车

例子

当开始 :: hat events
[Build Used: Code Base 2.0]
[Drive, then coast to a stop.]
set drive velocity to [100] %
设定驱动停止模式为 [滑行 v]
驱动 [向前 v]
等待 [2] 秒
驱动停止

设置驱动器超时#

设置驱动超时 代码块用于设置机器人尝试完成一次动作的秒数。如果机器人无法在规定时间内完成,它将停止尝试并执行代码块中的下一个。这样可以防止机器人卡在某个动作上。

设定驱动超时为 [1] 秒

参数

描述

时间

机器人尝试完成一次动作的秒数。该值可以是整数或小数。

例子

当开始 :: hat events
[Build Used: Code Base 2.0]
[Drive as far as possible for 1 second before turning right.]
设定驱动超时为 [1] 秒
驱动 [向前 v] [25] [英寸 v] ▶
[右 v] 转 [90] 度 ▶

设置驾驶航向#

航向角是指机器人大脑所朝向的方向,以度为单位。设置驱动航向堆栈块会将机器人的当前航向角更改为新的航向角值。

例如,如果机器人转向右侧,将航向设置为 0 度,则该右侧位置将成为新的 0 度航向。然后,机器人可以根据新的航向转向其他位置。

设定底盘归位至 [0] 度

参数

描述

标题

要设置的机器人航向角值,单位为度。该值可以是 0 到 359 之间的整数。

例子

当开始 :: hat events
[Build Used: Code Base 2.0]
[Face the new 0 degree heading.]
设定底盘归位至 [90] 度
归位至 [0] 度 ▶

设置驱动器旋转#

旋转角度是指机器人转动的程度,以度为单位。在项目开始时,旋转角度值设置为 0 度。设置驱动旋转角度 代码块会将机器人的当前旋转角度更改为新值。

例如,如果机器人向右转了两圈,它的旋转角度将为 720 度。将旋转角度设置为 0 度会将旋转角度从 720 度重置为 0 度。然后,机器人可以根据这个新的旋转角度进行旋转。

设定底盘转向至 (0) 度

参数

描述

旋转

机器人旋转角度值,以度为单位。该值可以是整数。

例子

当开始 :: hat events
[Build Used: Code Base 2.0]
[Spin counterclockwise two times.]
设定底盘转向至 [720] 度
转向至 [0] 度 ▶

价值观#

驾驶已完成#

“驱动完成”布尔模块用于报告机器人是否已停止移动。这可用于根据机器人的移动状态来控制其他行为的执行时间。

  • 正确 — 机器人已停止移动。

  • 错误 — 机器人仍在移动。

该模块与以下具有and don’t wait参数的传动系统模块配合使用:drive fordrive untilturn forturn to headingturn to rotation

<驱动已结束?>

参数

描述

该块没有参数。

例子

当开始 :: hat events
[Build Used: Code Base 2.0]
[Turn when the drivetrain is done moving forward.]
驱动 [向前 v] [100] [毫米 v] ◀ 并且不等待
等待 [0.25] 秒
永久循环
如果 <驱动已结束?> 那么
[右 v] 转 [180] 度 ▶
退出循环
否则
打印 [Still moving...] ▶
等待 [0.1] 秒
清除所有行

行驶方向#

航向是指机器人大脑所面向的方向,以度为单位。驱动航向报告模块会报告该航向,范围从 0 度到 359 度。

机器人的初始航向角为0度。

VEX GO 大脑显示航向:向前 0 度,向右 90 度,向后 180 度,向左 270 度。

(底盘归位角度值)

参数

描述

该块没有参数。

例子

当开始 :: hat events
[Build Used: Code Base 2.0]
[Display the heading while turning.]
[右 v] 转 [450] 度 ◀ 并且不等待
永久循环
清除所有行
打印 (底盘归位角度值) ▶
等待 [0.1] 秒

驱动旋转#

旋转角度是指机器人转动的程度,以度为单位。项目开始时,旋转角度值设置为 0 度。“驱动旋转”报告模块会报告机器人当前的旋转角度。

向右转会增加旋转角度,向左转会减少旋转角度。例如,向右转两圈,旋转角度将达到 720 度。

VEX GO 代码库 2.0,显示向右和向左旋转的箭头。左箭头表示“减号”,右箭头表示“加号”。

(底盘转向角度值)

参数

描述

该块没有参数。

例子

当开始 :: hat events
[Build Used: Code Base 2.0]
[Display the rotation while turning.]
[右 v] 转 [450] 度 ◀ 并且不等待
永久循环
清除所有行
打印 (底盘转向角度值) ▶
等待 [0.1] 秒

驱动速度#

驱动速度报告模块会报告机器人的行驶速度,以 -100% 到 100% 的百分比表示。

正值表示机器人向前行驶,负值表示机器人向后行驶。

(驱动速度为%)

参数

描述

该块没有参数。

例子

当开始 :: hat events
[Build Used: Code Base 2.0]
[Display the velocity of the robot before and while moving.]
打印 [Start: ] ▶
打印 (驱动速度为%) ▶
设定光标至下一行
驱动 [向前 v]
等待 [0.5] 秒
打印 [Moving: ] ▶
打印 (驱动速度为%) ▶
驱动停止