Controlador#
Introducción#
El controlador VEX IQ (2.ª generación) cuenta con botones y dos joysticks. Los métodos del controlador permiten comprobar si se han pulsado los botones, leer el movimiento de los joysticks, activar o desactivar las acciones configuradas o ejecutar funciones cuando se producen eventos en el controlador.
El módulo IQ (2.ª generación) puede conectarse a un controlador IQ (2.ª generación) o a un controlador IQ (1.ª generación). Un controlador IQ (1.ª generación) debe tener instalada una radio inteligente azul.
Configured controller actions are controller behaviors set in the Devices menu. Use remote_control_code_enabled to temporarily enable or disable those configured actions during a project.
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:
Acción: Activa o desactiva las acciones del controlador configuradas.
remote_control_code_enabled— Enables or disables controller actions configured in the Devices menu.
Obtenedores: Leen el estado de los botones y la posición del joystick.
.pressing— Returns whether a specified button is being pressed..position— Returns the position of a specified joystick axis.
Funciones de devolución de llamada: ejecutan funciones cuando cambia la entrada del controlador.
.pressed— Runs a function when a specified button is pressed..released— Runs a function when a specified button is released..changed— Runs a function when the joystick’s position changes along a specified axis.
Constructor: crea manualmente un objeto Controller.
Controller— Creates a Controller object.
Acción#
remote_control_code_enabled#
remote_control_code_enabled is a variable that enables or disables controller actions configured in the Devices menu. Controller configured actions are enabled by default.
Usage:
remote_control_code_enabled = state
Valor |
Descripción |
|---|---|
|
Habilita las acciones configuradas por el controlador. |
|
Deshabilita las acciones configuradas por el controlador. |
# Use custom controller code, then re-enable configured actions
remote_control_code_enabled = False
while True:
if controller.axisA.position() > 0:
drivetrain.drive(FORWARD)
elif controller.axisA.position() < 0:
drivetrain.drive(REVERSE)
elif controller.buttonEUp.pressing():
break
else:
drivetrain.stop()
wait(20, MSEC)
remote_control_code_enabled = True
Captadores#
.pressing#
.pressing returns whether a specific button on the controller is currently being pressed. This method must be called on a specific button object, such as controller.buttonEUp.
True— The specified button is being pressed.False— The specified button is not being pressed.
Uso:
Se puede utilizar uno de los objetos de botón disponibles con este método:

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()
wait(20, MSEC)
.position#
.position returns the position of a joystick axis as a number from -100 to 100.
This method must be called on a specific axis object, such as controller.axisA.
Uso:
Se puede utilizar uno de los objetos de eje disponibles con este método:

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)
Devoluciones de llamada#
.pressed#
.pressed runs a function when the specified button is pressed. Once it is used, the function will run automatically each time that button is pressed.
Uso:
Se puede utilizar uno de los objetos de botón disponibles con este método:

Botón |
Dominio |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Parámetro |
Descripción |
|---|---|
|
Una función definida previamente para ejecutarse cada vez que se presione el botón especificado. |
|
Opcional. Una tupla que contiene los argumentos que se pasarán a la función de devolución de llamada. Consulte Uso de eventos con parámetros para obtener 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 runs a function when the specified button is released. Once it is used, the function will run automatically each time that button is released.
Uso:
Se puede utilizar uno de los objetos de botón disponibles con este método:

Botón |
Dominio |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Parámetro |
Descripción |
|---|---|
|
Una función definida previamente para ejecutarse cada vez que se suelte el botón especificado. |
|
Opcional. Una tupla que contiene los argumentos que se pasarán a la función de devolución de llamada. Consulte Uso de eventos con parámetros para obtener más información. |
# Stop driving when E Up is released
def stop_driving():
drivetrain.stop()
controller.buttonEUp.released(stop_driving)
.changed#
.changed runs a function when the joystick’s position changes along the specified axis. Once it is used, the function will run automatically each time the joystick’s position changes along that axis.
Uso:
Se puede utilizar uno de los objetos de eje disponibles con este método:

Eje |
Dominio |
|---|---|
|
|
|
|
|
|
|
|
Parámetro |
Descripción |
|---|---|
|
Una función definida previamente para ejecutarse cada vez que la posición del joystick cambie a lo largo del eje especificado. |
|
Opcional. Una tupla que contiene los argumentos que se pasarán a la función de devolución de llamada. Consulte Uso de eventos con parámetros para obtener más información. |
# Play a sound when the right joystick moves
def beep():
brain.play_sound(SoundType.TADA)
controller.axisD.changed(beep)
Constructores#
Controller#
Controller creates a Controller object. Manually creating a Controller object is only needed when configuring a controller outside of VEXcode.
Usage:
Controller()
Parámetros |
Descripción |
|---|---|
Este constructor no tiene parámetros. |
# Create a Controller object
my_controller = Controller()