控制器#

介绍#

V5 控制器包含按钮、两个摇杆、一个震动马达和一个屏幕。控制器模块可用于检测按钮按下、读取摇杆移动、使控制器震动、启用或禁用已配置的控制器操作、在控制器事件发生时运行模块,或在控制器屏幕上显示文本。

已配置的控制器操作是指在“设备”菜单中设置的控制器行为。使用控制器启用/禁用模块可以在项目进行期间临时启用或禁用这些已配置的操作。

以下是可用模块列表:

数值 — 检查控制器按钮状态或读取摇杆位置。

操作——震动控制器、启用/禁用已配置的控制器操作,或在控制器输入发生变化时运行代码块。

屏幕——在控制器屏幕上显示文本和数字。

价值观#

控制器被按下?#

**控制器是否被按下?**布尔块返回所选控制器按钮是否被按下。

V5 控制器的正面和背面,按钮以黄色高亮显示。控制器正面左侧有上、下、左、右方向键,右侧从 12 点钟方向顺时针方向依次为 X、A、B、Y 键。控制器背面左侧和右侧分别是 L1、L2、R1 和 R2 键。

控制器被按下?布尔块#
<[Controller 1 v] [▲ v] 按下?>

范围

描述

设备

要使用的控制器,在“设备”窗口中进行配置。

按钮

要检查的按钮:

  • X
  • B
  • Y
  • A
  • L1
  • L2
  • R1
  • R2

例子

启动时,按住 X 按钮即可向前行驶。#
当开始
[Drive forward while X is pressed.]
永久循环
如果 <[Controller 1 v] [X v] 按下?> 那么
驱动 [向前 v]
否则
驱动停止
结束
结束

控制器位置#

控制器位置报告器模块返回操纵杆沿选定轴的位置,数值范围为**-100100**。

一个 VEX V5 控制器,摇杆周围的轴已标注。轴 1 和轴 2 位于右侧摇杆周围,轴 3 和轴 4 位于左侧摇杆周围。

控制器位置报告块#
([Controller1 v] [1 v] position :: sensing)

范围

描述

设备

要使用的控制器,在“设备”窗口中进行配置。

要报告的操纵杆轴:

  • 1 — 右操纵杆水平轴
  • 2 — 右操纵杆垂直轴
  • 3 — 左操纵杆垂直轴
  • 4 — 左操纵杆水平轴

例子

启动时,向上推动左侧操纵杆即可向前行驶。#
当开始
[Drive forward while the left joystick is pushed up.]
永久循环
如果 <([Controller1 v] [3 v] position :: sensing) [math_greater_than v] [0]> 那么
驱动 [向前 v]
否则
驱动停止
结束
结束

行动#

在控制器上玩震动模式#

在控制器上播放震动效果 堆栈块会在控制器上播放震动模式。

在控制器堆叠块上玩震动#
[Controller 1 v] 播放 [Long v] 振动

范围

描述

图案

控制器震动模式:

  • 长震动 — 一次长震动
  • 短震动 — 一次短震动
  • 脉冲震动 — 间歇性震动

设备

要使用的控制器,在“设备”窗口中进行配置。

例子

按下 R1 按钮时,控制器会发出短暂的震动。#
当 [Controller 1 v] 按键 [R1 v] [pressed v] :: hat events
[Controller 1 v] 播放 [Short v] 振动

控制器启用/禁用#

控制器启用/禁用堆栈块启用或禁用从“设备”菜单对所有已连接控制器配置的操作。

控制器启用/禁用堆栈块#
控制器 [Disable v]

范围

描述

状态

控制器配置的操作状态:禁用启用

例子

启动后,在机器人向前行驶时禁用已配置的控制器操作。#
当开始
[Disable Controller configured actions until the drive movement is done.]
控制器 [Disable v]
驱动 [向前 v] (6) [英寸 v] ▶
控制器 [Enable v]

按下控制器按钮#

当按下控制器按钮时,当控制器按钮被按下时 Hat 模块会运行附加的堆栈。

V5 控制器的正面和背面,按钮以黄色高亮显示。控制器正面左侧有上、下、左、右方向键,右侧从 12 点钟方向顺时针方向依次为 X、A、B、Y 键。控制器背面左侧和右侧分别是 L1、L2、R1 和 R2 键。

当按下控制器按钮时,帽子方块#
当 [Controller 1 v] 按键 [▲ v] [pressed v] :: hat events

范围

描述

设备

要使用的控制器,在“设备”窗口中进行配置。

按钮

要检查的按钮:

  • X
  • B
  • Y
  • A
  • L1
  • L2
  • R1
  • R2

按钮状态

触发附加堆栈的按钮事件:按下释放

例子

按下 R1 按钮时,向前行驶 200 毫米。#
当 [Controller 1 v] 按键 [R1 v] [pressed v] :: hat events
[Drive forward when R1 is pressed.]
驱动 [向前 v] (200) [毫米 v] ▶

当控制器轴发生变化时#

当控制器轴改变时,当控制器轴改变时 Hat 模块会在操纵杆的位置沿选定轴改变时运行附加的堆栈。

一个 VEX V5 控制器,摇杆周围的轴已标注。轴 1 和轴 2 位于右侧摇杆周围,轴 3 和轴 4 位于左侧摇杆周围。

当控制器轴改变时,帽子块#
when [Controller1 v] axis [1 v] is changed :: hat events

范围

描述

设备

要使用的控制器,在“设备”窗口中进行配置。

需要检查的摇杆轴:

  • 1 — 右摇杆水平轴
  • 2 — 右摇杆垂直轴
  • 3 — 左摇杆垂直轴
  • 4 — 左摇杆水平轴

例子

当操纵杆沿控制器轴 3 的位置发生变化时,向前行驶 200 毫米。#
when [Controller1 v] axis [3 v] is changed :: hat events
[Drive forward when the joystick's position changes along axis 3.]
驱动 [向前 v] (200) [毫米 v] ▶

屏幕#

将光标设置到控制器上的行列#

“将光标设置到控制器屏幕上的行列”堆栈块会将光标移动到控制器屏幕上的指定行和列。下一个打印值将显示在该位置。

将光标设置到控制器堆栈块的行列。#
在 [Controller 1 v] 设定光标至 [1] 行 [1] 列 :: custom-controller-inertial-timer

范围

描述

在控制器屏幕上,光标要移动到的行。

柱子

在控制器屏幕上,光标要移动到的列。

设备

要使用的控制器,在“设备”窗口中进行配置。

例子

启动时,在控制器屏幕的第 2 行第 1 列打印文本。#
当开始
[Display a message on row 2.]
在 [Controller 1 v] 设定光标至 [2] 行 [1] 列 :: custom-controller-inertial-timer
在 [Controller 1 v] ▶上打印 [Ready] :: custom-controller-inertial-timer

将光标设置到控制器上的下一行#

“将光标移至控制器屏幕的下一行”堆栈块会将光标移动到控制器屏幕下一行的第 1 列。下一个打印值将显示在该行。

将光标设置到控制器堆栈块的下一行#
设定 [Controller 1 v] 光标至下一行 :: custom-controller-inertial-timer

范围

描述

设备

要使用的控制器,在“设备”窗口中进行配置。

例子

启动时,在控制器屏幕上打印两行。#
当开始
[Display two rows of text.]
在 [Controller 1 v] ▶上打印 [Row 1] :: custom-controller-inertial-timer
设定 [Controller 1 v] 光标至下一行 :: custom-controller-inertial-timer
在 [Controller 1 v] ▶上打印 [Row 2] :: custom-controller-inertial-timer

在控制器上设置打印精度#

设置控制器打印精度堆栈块用于设置控制器屏幕上打印数字时显示的小数位数。此设置适用于使用此堆栈块之后打印的数字。

设置控制器堆栈块的打印精度#
将打印精度设置为 [0.1 v] 到 [Controller 1 v] :: custom-controller-inertial-timer

范围

描述

精确

打印精度:

  • 1 — 无小数位
  • 0.1 — 1 位小数
  • 0.01 — 2 位小数
  • 0.001 — 3 位小数
  • 所有数字 — 所有可用小数位

设备

要使用的控制器,在“设备”窗口中进行配置。

例子

启动时,控制器屏幕上显示 1/3,保留两位小数。#
当开始
[Display 1/3 with two decimals.]
将打印精度设置为 [0.01 v] 到 [Controller 1 v] :: custom-controller-inertial-timer
在 [Controller 1 v] ▶上打印 ([1] [math_division v] [3]) :: custom-controller-inertial-timer

清晰控制器#

清除控制器堆栈块清除控制器屏幕上的所有行,并将光标移回第一行。

清除控制器堆栈块#
clear [Controller1 v] :: custom-controller-inertial-timer

范围

描述

设备

要使用的控制器,在“设备”窗口中进行配置。

例子

启动时,打印文本,等待片刻,然后清除控制器屏幕。#
当开始
[Clear the Controller screen after printing.]
在 [Controller 1 v] ▶上打印 [This will disappear...] :: custom-controller-inertial-timer
等待 [2] 秒
clear [Controller1 v] :: custom-controller-inertial-timer

清除控制器上的行#

清除控制器上的行堆栈块清除控制器屏幕上的一行。

清除控制器堆栈块上的行#
清除 [Controller 1 v] 第 [1] 行 :: custom-controller-inertial-timer

范围

描述

控制器屏幕上要清除的行。

设备

要使用的控制器,在“设备”窗口中进行配置。

例子

启动时,清除控制器屏幕上的第 1 行。#
当开始
[Clear one row on the Controller screen.]
在 [Controller 1 v] ▶上打印 [Row 1] :: custom-controller-inertial-timer
设定 [Controller 1 v] 光标至下一行 :: custom-controller-inertial-timer
在 [Controller 1 v] ▶上打印 [Row 2] :: custom-controller-inertial-timer
等待 [2] 秒
清除 [Controller 1 v] 第 [1] 行 :: custom-controller-inertial-timer