传动系统#

简介#

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

Drivetrains use the Inertial Sensor in the Brain to detect crashes and help the robot move and turn precisely. At the start of each project, the drivetrain calibrates the Inertial Sensor automatically. Keep the robot still for about 2 seconds during calibration, so the robot can move and turn correctly.

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

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

  • 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% 的速度行驶。

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

设定驱动速度为 (50) %

参数

描述

速度

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

例子

当开始 :: hat events
[Build Used: Code Base 2.0]
[Drive at different velocities.]
驱动 [向前 v] [100] [毫米 v] ▶
等待 [1] 秒
[Drive slow.]
设定驱动速度为 (20) %
驱动 [向前 v] [100] [毫米 v] ▶
等待 [1] 秒
[Drive fast.]
设定驱动速度为 (100) %
驱动 [向前 v] [100] [毫米 v] ▶

设置转弯速度#

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

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

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

设定转向速度为 [50]%

参数

描述

速度

转弯速度从 0% 到 100%。

例子

当开始 :: hat events
[Build Used: Code Base 2.0]
[Turn at different velocities.]
[右 v] 转 [180] 度 ▶
等待 [1] 秒
[Turn fast.]
设定转向速度为 [100]%
[右 v] 转 [180] 度 ▶

设置驱动器停止#

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

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

参数

描述

停止行为

How the robot will stop:

  • brake — Stops immediately.
  • coast — Slows to a stop.
  • hold — Stops immediately and holds the wheels’ position.

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

例子

当开始 :: hat events
[Build Used: Code Base 2.0]
[Drive, then coast to a stop.]
设定驱动速度为 (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 for、drive until、turn for、turn to heading和turn 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: ] ▶
打印 (驱动速度为%) ▶
驱动停止