Controlador#
Introducción#
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.
A continuación se muestra una lista de todos los métodos disponibles:
Actions — Turn controller configured actions on or off.
remote_control_code_enabled— Enable or disable controller configured actions.
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.
Controller— Create a controller.
Comportamiento#
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
Captadores#
.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.
Uso:
Se puede usar uno de los cinco objetos de botón disponibles con este método, como se muestra a continuación:

Botón |
Dominio |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
# 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).
Uso:
Se puede utilizar uno de los cuatro ejes disponibles con este método, como se muestra a continuación:

Eje |
Dominio |
|---|---|
|
|
|
|
|
|
|
|
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
# 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)
Llamar de vuelta#
.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).
Uso:
Uno de los objetos de botón disponibles se puede utilizar con este método, como se muestra a continuación:

Botón |
Dominio |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Parámetros |
Descripción |
|---|---|
|
Una función que se define previamente para ejecutarse cuando se presiona el botón especificado. |
|
Opcional. Una tupla que contiene argumentos para la función de devolución de llamada. Funciones con parámetros para más información. |
# 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).
Uso:
Uno de los objetos de botón disponibles se puede utilizar con este método, como se muestra a continuación:

Botón |
Dominio |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Parámetros |
Descripción |
|---|---|
|
Una función que se define previamente para ejecutarse cuando se suelta el botón especificado. |
|
Opcional. Una tupla que contiene argumentos para la función de devolución de llamada. Funciones con parámetros para más información. |
# 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).
Uso:
Se puede utilizar uno de los cuatro ejes disponibles con este método, como se muestra a continuación:

Eje |
Dominio |
|---|---|
|
|
|
|
|
|
|
|
Parámetros |
Descripción |
|---|---|
|
A function that is previously defined to execute when the axis’ value changes. |
|
Opcional. Una tupla que contiene los argumentos que se pasarán a la función de devolución de llamada. Consulte Funciones con parámetros para obtener más información. |
# Play a sound when the right joystick moves
def beep():
brain.play_sound(SoundType.TADA)
wait(1, SECONDS)
controller.axisD.changed(beep)
Constructores#
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()
Parámetros |
Descripción |
|---|---|
Este constructor no tiene parámetros. |
# Create a Controller object
my_controller = Controller()