控制器#

介绍#

EXP 控制器允许用户控制和自定义机器人的行为。

以下是所有可用方法的列表:

操作 – 开启或关闭控制器编程的操作。

Getter 函数——读取按钮状态和摇杆位置。

  • .pressing – Returns whether the specified button is being pressed.

  • .position – Returns the position of the joystick’s specified axis.

回调函数——当按钮或摇杆状态改变时运行的代码。

  • .pressed – Calls a function when the specified button is pressed.

  • .released – Calls a function when the specified button is released.

  • .changed – Calls a function when the joystick’s axis changes.

构造函数——手动初始化和配置控制器。

行动#

remote_control_code_enabled#

remote_control_code_enabled is a variable that can be set to a boolean that enables or disables Controller configured actions from the Devices menu. The Controller is enabled by default. It can be set to either of the following:

  • True — Enable Controller configured actions.

  • False — Disable Controller configured actions.

Usage: remote_control_code_enabled = False

# Drive forward or backward using the left joystick
remote_control_code_enabled = False

while True:
    if controller.axis3.position() > 0:
        drivetrain.drive(FORWARD)
    elif controller.axis3.position() < 0:
        drivetrain.drive(REVERSE)
    # Press A to use the controller configured actions
    elif controller.buttonA.pressing():
        break
    else:
        drivetrain.stop()
    wait(20, MSEC)

remote_control_code_enabled = True

获取器#

.pressing#

.pressing returns an integer indicating whether a specific button on the controller is currently being pressed. This method must be called on a specific button object, such as buttonEDown (see full list of button objects below).

  • 1 - The specified button is being pressed.

  • 0 - The specified button is not being pressed.

用法:
此方法可以使用十个可用按钮对象中的一个,如下所示:

EXP 控制器的正面和顶部,摇杆、方向键和动作键以黄色高亮显示。控制器表面左右两侧各有一个摇杆,左侧是上下方向键,右侧是 A 键和 B 键。控制器顶部左侧是 L1 键和 L2 键,右侧是 R1 键和 R2 键。

按钮

命令

buttonA

controller.buttonA.pressing() — The A button

buttonB

controller.buttonB.pressing() — The B button

buttonDown

controller.buttonDown.pressing() — The Down button

buttonUp

controller.buttonUp.pressing() — The Up button

buttonL1

controller.buttonL1.pressing() — The L1 button

buttonL2

controller.buttonL2.pressing() — The L2 button

buttonL3

controller.buttonL3.pressing() — The L3 button

buttonR1

controller.buttonR1.pressing() — The R1 button

buttonR2

controller.buttonR2.pressing() — The R2 button

buttonR3

controller.buttonR3.pressing() — The R3 button

参数

描述

此方法没有参数。

# Turn right while L1 is pressed
while True:
    if controller.buttonL1.pressing():
        drivetrain.turn(RIGHT)
    else:
        drivetrain.stop()

.position#

.position returns the position of the joystick’s specified axis as an integer from –100 to 100, representing a percentage. This method must be called on a specific axis object, such as axis1 (see full list of axis objects below).

用法:

该方法可以使用以下四个可用坐标轴之一:

EXP 控制器的正面,摇杆轴编号以红色突出显示。控制器表面显示,左侧摇杆标记为轴 4(左右移动)和轴 3(上下移动),而右侧摇杆标记为轴 1(左右移动)和轴 2(上下移动)。

命令

axis1

controller_1.axis1.position() — The Right Joystick’s horizontal axis

axis2

controller_1.axis2.position() — The Right Joystick’s vertical axis

axis3

controller_1.axis3.position() — The Left Joystick’s vertical axis

axis4

controller_1.axis4.position() — The Left Joystick’s horizontal axis

参数

描述

此方法没有参数。

# Turn with the left joystick
remote_control_code_enabled = False

while True:
    if controller.axis4.position() > 10:
        drivetrain.turn(RIGHT)
    elif controller.axis4.position() < -10:
        drivetrain.turn(LEFT)
    else:
        drivetrain.stop()
    wait(20, MSEC)

打回来#

.pressed#

.pressed registers a function to be called when a specific button on the controller is pressed. This method must be called on a specific button object, such as buttonEDown – (see full list of button objects below).

用法:
此方法可以使用十个可用按钮对象中的一个,如下所示:

EXP 控制器的正面和顶部,摇杆、方向键和动作键以黄色高亮显示。控制器表面左右两侧各有一个摇杆,左侧是上下方向键,右侧是 A 键和 B 键。控制器顶部左侧是 L1 键和 L2 键,右侧是 R1 键和 R2 键。

按钮

命令

buttonA

controller.buttonA.pressed(callback, arg) — The A button

buttonB

controller.buttonB.pressed(callback, arg) — The B button

buttonDown

controller.buttonDown.pressed(callback, arg) — The Down button

buttonUp

controller.buttonUp.pressed(callback, arg) — The Up button

buttonL1

controller.buttonL1.pressed(callback, arg) — The L1 button

buttonL2

controller.buttonL2.pressed(callback, arg) — The L2 button

buttonL3

controller.buttonL3.pressed(callback, arg) — The L3 button

buttonR1

controller.buttonR1.pressed(callback, arg) — The R1 button

buttonR2

controller.buttonR2.pressed(callback, arg) — The R2 button

buttonR3

controller.buttonR3.pressed(callback, arg) — The R3 button

参数

描述

打回来

一个预先定义好的函数,当按下指定的按钮时执行。

参数

可选。包含要传递给回调函数的参数的元组。带参数的函数 提供更多信息。

# Drive forward when A is pressed
def drive_forward():
    drivetrain.drive_for(FORWARD, 100, MM)

controller.buttonA.pressed(drive_forward)

.released#

.released registers a function to be called when a specific button on the controller is released. This method must be called on a specific button object, such as buttonL1 – (see full list of button objects below).

用法:
此方法可以使用十个可用按钮对象中的一个,如下所示:

EXP 控制器的正面和顶部,摇杆、方向键和动作键以黄色高亮显示。控制器表面左右两侧各有一个摇杆,左侧是上下方向键,右侧是 A 键和 B 键。控制器顶部左侧是 L1 键和 L2 键,右侧是 R1 键和 R2 键。

按钮

命令

buttonA

controller.buttonA.released(callback, arg) — The A button

buttonB

controller.buttonB.released(callback, arg) — The B button

buttonDown

controller.buttonDown.released(callback, arg) — The Down button

buttonUp

controller.buttonUp.released(callback, arg) — The Up button

buttonL1

controller.buttonL1.released(callback, arg) — The L1 button

buttonL2

controller.buttonL2.released(callback, arg) — The L2 button

buttonL3

controller.buttonL3.released(callback, arg) — The L3 button

buttonR1

controller.buttonR1.released(callback, arg) — The R1 button

buttonR2

controller.buttonR2.released(callback, arg) — The R2 button

buttonR3

controller.buttonR3.released(callback, arg) — The R3 button

参数

描述

打回来

一个预先定义好的函数,当指定的按钮被释放时执行。

参数

可选。包含要传递给回调函数的参数的元组。带参数的函数 提供更多信息。

# Drive backward when A is released
def back_up():
    drivetrain.drive_for(REVERSE, 100, MM)

controller.buttonA.released(back_up)

.changed#

.changed registers a function to be called when the joystick’s position changes. This method must be called on a specific axis object, such as axis1 (see full list of axis objects below).

用法:
此方法可以使用以下所示的四个可用轴之一:

EXP 控制器的正面,摇杆轴编号以红色突出显示。控制器表面显示,左侧摇杆标记为轴 4(左右移动)和轴 3(上下移动),而右侧摇杆标记为轴 1(左右移动)和轴 2(上下移动)。

命令

axis1

controller.axis1.changed(callback, arg) — The Right Joystick’s horizontal axis

axis2

controller.axis2.changed(callback, arg) — The Right Joystick’s vertical axis

axis3

controller.axis3.changed(callback, arg) — The Left Joystick’s vertical axis

axis4

controller.axis4.changed(callback, arg) — The Left Joystick’s horizontal axis

参数

描述

打回来

先前定义的当轴的值发生变化时执行的函数

参数

可选。包含要传递给回调函数的参数的元组。有关更多信息,请参阅带参数的函数

# Play a sound when the left joystick moves
def tada_sound():
    brain.play_sound(SoundType.TADA)
    wait(1, SECONDS)

controller.axis4.changed(tada_sound)

构造函数#

Constructors are used to manually create Controller objects, which are necessary for configuring a controller outside of VEXcode. You can only create two controllers in a project.

Controller#

Controller creates a controller.

Usage:
Controller()

参数

描述

此构造函数没有参数。

# Create a Controller
controller = Controller()