传动系统#

介绍#

123 型机器人采用双轮驱动系统,使其能够行驶和转弯。驱动系统模块控制机器人的运动方式。

传动系统可以通过两种方式测量距离:步数毫米。一相当于123格子上的一个方格。

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

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

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

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

  • 驱动直到 — 使机器人前进或后退,直到检测到物体、碰撞或线条。

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

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

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

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

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

数值 — 检查移动状态。

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

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

行动#

驾驶#

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

驱动 [向前 v]

参数

描述

方向

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

例子

当开始
[Drive for 2 seconds.]
驱动 [向前 v]
等待 (2) 秒
驱动停止

驱动#

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

驱动 [向前 v] (1) [步数 v]

参数

描述

方向

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

距离

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

单元

距离单位:毫米

例子

当开始
[Drive back and forth.]
驱动 [向前 v] (3) [步数 v]
驱动 [反 v] (3) [步数 v]

开车直到#

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

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

参数

描述

方向

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

状况

导致机器人停止的条件:

  • 物体 — 眼部传感器检测到物体。2
  • 碰撞** — 机器人撞到物体。4
  • 线条** — 线条检测器检测到机器人下方有线条

例子

当开始
[Reverse after a crash.]
驱动 [向前 v] 直到 [撞毁 v]
驱动 [反 v] (1) [步数 v]

转动#

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

[右 v] 转

参数

描述

方向

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

例子

当开始
[Turn for 2 seconds.]
[右 v] 转
等待 (2) 秒
驱动停止

转向#

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

[右 v] 转 (90) 度

参数

描述

方向

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

角度

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

例子

当开始
[Turn left, then turn around to the right.]
[左 v] 转 (90) 度
[右 v] 转 (180) 度

转向标题#

航向角是指机器人面向的方向,以度为单位。转向航向角 代码块可以将机器人转向 -359 度到 359 度之间的特定航向角。机器人会选择到达目标航向角的最短路径。

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

归位至 (90) 度

参数

描述

标题

机器人应面向的方向,以度为单位。该值可以是-359到359之间的整数或小数。

例子

当开始
[Turn to face the cardinal directions.]
归位至 (90) 度
等待 (2) 秒
归位至 (180) 度
等待 (2) 秒
归位至 (270) 度
等待 (2) 秒
归位至 (0) 度
等待 (2) 秒

停止驾驶#

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

驱动停止

参数

描述

此代码块没有参数。

例子

当开始
[Stop driving after 4 seconds.]
驱动 [向前 v]
等待 [4] 秒
驱动停止

设置#

设置驱动超时#

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

设定驱动超时为 (1) 秒

参数

描述

时间

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

例子

当开始
[Turn right after driving for 1 second.]
设定驱动超时为 (1) 秒
驱动 [向前 v] (1000) [毫米 v]
[右 v] 转 (90) 度

设置驱动航向#

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

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

设定底盘归位至 (0) 度

参数

描述

标题

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

例子

当开始
[Face the new 0 degree heading.]
设定底盘归位至 (90) 度
归位至 (0) 度

价值观#

驾驶已完成#

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

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

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

该模块与以下传动系统模块配合使用:驱动至驱动至转向转向航向

<驱动已结束?>

参数

描述

此代码块没有参数。

例子

当开始
[Glow blue after a crash.]
驱动 [向前 v] 直到 [撞毁 v]
永久循环
如果 <驱动已结束?> 那么
发光 [蓝色 v]
否则
发光 [绿色 v]

行驶方向#

航向角是指机器人朝向的方向,以度为单位。驱动航向报告模块会报告机器人当前的航向角,范围从 0 度到 359 度。

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

(底盘归位角度值)

参数

描述

此代码块没有参数。

例子

当开始
[Display the heading after turning.]
[右 v] 转 (450) 度
打印 (底盘归位角度值) ▶