控制器#

介绍#

The IQ (2nd gen) Brain can connect to either an IQ (2nd gen) or IQ (1st gen) Controller. Both controllers have two analog joysticks and multiple buttons that the Brain can use to detect movements and presses.

This page uses controller as the example controller name. Replace it with your own configured name as needed.

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

Actions — Turn controller configured actions on or off.

Getters — Read button states and joystick positions.

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

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

Callback — Run code when buttons or joysticks change state.

  • .pressed — Registers a function to be called when the specified button is pressed.

  • .released — Registers a function to be called when the specified button is released.

  • .changed — Registers a function to be called when the joystick’s axis changes.

Constructors — Manually initialize and configure the controller.

行动#

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

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

while True:
    if controller.axisA.position() > 0:
        drivetrain.drive(FORWARD)
    elif controller.axisA.position() < 0:
        drivetrain.drive(REVERSE)
    # Press E Up to use the controller configured actions
    elif controller.buttonEUp.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.

用法:
五个可用按钮对象之一可与此方法一起使用,如下所示:

Front and back views of a VEX controller with joysticks, buttons, and rear triggers highlighted in yellow.

按钮

命令

buttonEDown

controller.buttonEDown.pressing() — The E ▼ button

buttonEUp

controller.buttonEUp.pressing() — The E ▲ button

buttonFDown

controller.buttonFDown.pressing() — The F ▼ button

buttonFUp

controller.buttonFUp.pressing() — The F ▲ button

buttonL3

controller.buttonL3.pressing() — The Left Joystick button - IQ (2nd gen) Controller only

buttonLDown

controller.buttonLDown.pressing() — The L ▼ button

buttonLUp

controller.buttonLUp.pressing() — The L ▲ button

buttonR3

controller.buttonR3.pressing() — The Right Joystick button - IQ (2nd gen) Controller only

buttonRDown

controller.buttonRDown.pressing() — The R ▼ button

buttonRUp

controller.buttonRUp.pressing() — The R ▲ button

参数

描述

该方法没有参数。

# Turn right while E Up is held
while True:
    if controller.buttonEUp.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 axisA (see full list of axis objects below).

用法:

此方法可使用四个可用轴之一,如下所示:

Front view of a VEX controller with directional labels (A, B, C, and D) highlighted in yellow near the joysticks.

命令

axisA

controller.axisA.position() — The Left Joystick’s vertical axis

axisB

controller.axisB.position() — The Left Joystick’s horizontal axis

axisC

controller.axisC.position() — The Right Joystick’s horizontal axis

axisD

controller.axisD.position() — The Right Joystick’s vertical axis

参数

描述

该方法没有参数。

# Turn with the left joystick
remote_control_code_enabled = False

while True:
    if controller.axisB.position() > 10:
        drivetrain.turn(RIGHT)
    elif controller.axisB.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).

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

Front and back views of a VEX controller with joysticks, buttons, and rear triggers highlighted in yellow.

按钮

命令

buttonEDown

controller.buttonEDown.pressed(callback, arg) — The E ▼ button

buttonEUp

controller.buttonEUp.pressed(callback, arg) — The E ▲ button

buttonFDown

controller.buttonFDown.pressed(callback, arg) — The F ▼ button

buttonFUp

controller.buttonFUp.pressed(callback, arg) — The F ▲ button

buttonL3

controller.buttonL3.pressed(callback, arg) — The Left Joystick button - IQ (2nd gen) only

buttonLDown

controller.buttonLDown.pressed(callback, arg) — The L ▼ button

buttonLUp

controller.buttonLUp.pressed(callback, arg) — The L ▲ button

buttonR3

controller.buttonR3.pressed(callback, arg) — The Right Joystick button - IQ (2nd gen) only

buttonRDown

controller.buttonRDown.pressed(callback, arg) — The R ▼ button

buttonRUp

controller.buttonRUp.pressed(callback, arg) — The R ▲ button

参数

描述

callback

先前定义的在按下指定按钮时执行的 函数

arg

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

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

controller.buttonEUp.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 buttonEDown (see full list of button objects below).

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

Front and back views of a VEX controller with joysticks, buttons, and rear triggers highlighted in yellow.

按钮

命令

buttonEDown

controller.buttonEDown.released(callback, arg) — The E ▼ button

buttonEUp

controller.buttonEUp.released(callback, arg) — The E ▲ button

buttonFDown

controller.buttonFDown.released(callback, arg) — The F ▼ button

buttonFUp

controller.buttonFUp.released(callback, arg) — The F ▲ button

buttonL3

controller.buttonL3.released(callback, arg) — The Left Joystick button - IQ (2nd gen) Controller only

buttonLDown

controller.buttonLDown.released(callback, arg) — The L ▼ button

buttonLUp

controller.buttonLUp.released(callback, arg) — The L ▲ button

buttonR3

controller.buttonR3.released(callback, arg) — The Right Joystick button - IQ (2nd gen) Controller only

buttonRDown

controller.buttonRDown.released(callback, arg) — The R ▼ button

buttonRUp

controller.buttonRUp.released(callback, arg) — The R ▲ button

参数

描述

callback

先前定义的在释放指定按钮时执行的 函数

arg

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

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

controller.buttonFDown.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 axisA (see full list of axis objects below).

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

Front view of a VEX controller with directional labels (A, B, C, and D) highlighted in yellow near the joysticks.

命令

axisA

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

axisB

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

axisC

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

axisD

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

参数

描述

callback

A function that is previously defined to execute when the axis’ value changes.

arg

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

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

controller.axisD.changed(beep)

构造函数#

Constructors are used to manually create Controller objects, which are necessary for configuring a controller outside of VEXcode.

Controller#

Controller creates a controller.

Usage:
Controller()

参数

描述

此构造函数没有参数。

# Create a Controller object
my_controller = Controller()