Controlador#
Introducción#
El controlador V5 tiene botones, dos joysticks, un motor de estruendo y una pantalla. Los métodos del controlador se pueden utilizar para verificar las pulsaciones de botones, leer el movimiento del joystick, hacer sonar el controlador, habilitar o deshabilitar las acciones configuradas del controlador, ejecutar funciones cuando ocurren eventos del controlador o mostrar texto en la pantalla del controlador.
Las acciones del controlador configuradas son comportamientos del controlador establecidos en el menú Dispositivos. Utilice remote_control_code_enabled para habilitar o deshabilitar temporalmente las acciones configuradas durante un proyecto.
Esta página utiliza controller_1 como ejemplo Nombre del controlador. Reemplácelo con su propio nombre configurado según sea necesario.
A continuación se muestra una lista de todos los métodos disponibles:
Acciones: haga sonar el controlador o habilite/deshabilite las acciones configuradas del controlador.
rumble— Reproduce un patrón de estruendo en el controlador.remote_control_code_enabled— Activa o desactiva las acciones del controlador configuradas en el menú Dispositivos.
Pantalla: muestra el texto y los números en la pantalla del controlador.
print— Muestra texto, números o valores de variables en la pantalla del controlador.set_cursor— Mueve el cursor a una fila y columna especificadas en la pantalla del controlador.column— Devuelve la columna del cursor actual en la pantalla del controlador.row— Devuelve la fila del cursor actual en la pantalla del controlador.clear_screen— Borra la pantalla del controlador.clear_row— Borra una fila en la pantalla del controlador.next_row— Mueve el cursor a la siguiente fila en la pantalla del controlador.
Getters: lee los estados de los botones y las posiciones del joystick.
.pressing— Devuelve si se está presionando un botón especificado..position— Devuelve la posición de un eje de joystick especificado.
Devoluciones de llamada: ejecute las funciones cuando cambie la entrada del controlador.
.pressed— Ejecuta una función cuando se presiona un botón especificado..released— Ejecuta una función cuando se suelta un botón especificado..changed— Ejecuta una función cuando la posición del joystick cambia a lo largo de un eje especificado.
Constructor: crea manualmente un objeto Controller.
Controller— Crea un objeto Controller.
Acciones#
rumble#
rumble reproduce un patrón de retumbar en el Controlador. En la cadena de patrones, los períodos son retumbos cortos, los guiones son retumbos largos y los espacios son pausas.
Usage:
controller_1.rumble(pattern)
Parámetro |
Descripción |
|---|---|
|
Una cuerda hecha de puntos, guiones y espacios que representan el patrón de estruendo. |
# Rumble the Controller with a short-short-long-long pattern
controller_1.rumble("..--")
remote_control_code_enabled#
remote_control_code_enabled es una variable que habilita o deshabilita las acciones del controlador configuradas en el menú Dispositivos. Las acciones configuradas por el controlador están habilitadas de forma predeterminada.
Usage:
remote_control_code_enabled = state
Valor |
Descripción |
|---|---|
|
Habilita las acciones configuradas por el controlador. |
|
Desactiva las acciones configuradas por el controlador. |
# Drive forward or backward using the left joystick
remote_control_code_enabled = False
while True:
if controller_1.axis3.position() > 0:
drivetrain.drive(FORWARD)
elif controller_1.axis3.position() < 0:
drivetrain.drive(REVERSE)
# Press A to use Controller configured actions again
elif controller_1.buttonA.pressing():
break
else:
drivetrain.stop()
wait(20, MSEC)
remote_control_code_enabled = True
Pantalla#
La pantalla del controlador V5 tiene 3 filas y 19 columnas para mostrar texto y números.

print#
controller_1.screen.print muestra texto, números o valores variables en la pantalla del Controlador utilizando la posición actual del cursor.
Usage:
controller_1.screen.print(value, sep, precision)
Parámetro |
Descripción |
|---|---|
|
El texto, el número o el valor de la variable que se mostrará en la pantalla del controlador. Se puede imprimir más de un valor separando los valores con comas. |
|
Opcional. Una cadena para colocar entre los valores. Esto debe escribirse como un argumento de palabra clave, como |
|
Opcional. El número de decimales que se mostrarán al imprimir números simples. Esto debe escribirse como un argumento de palabra clave, como |
# Print a number on the Controller screen
controller_1.screen.print(1)
# Print multiple numbers separated by hyphens
controller_1.screen.print(1, 2, 3, 4, sep="-")
# Print a number using one decimal place
controller_1.screen.print(1 / 3, precision=1)
set_cursor#
set_cursor mueve el cursor a una fila y columna especificadas en la pantalla del Controlador. El siguiente valor impreso aparecerá en esa posición.
Usage:
controller_1.screen.set_cursor(row, col)
Parámetro |
Descripción |
|---|---|
|
La fila del cursor, del |
|
La columna del cursor, del |
# Print text at row 2, column 1
controller_1.screen.set_cursor(2, 1)
controller_1.screen.print("Ready")
column#
column devuelve la columna actual donde se imprimirá el texto en la pantalla del controlador.
Usage:
controller_1.screen.column()
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
# Print the current column number
controller_1.screen.set_cursor(2, 3)
controller_1.screen.print(controller_1.screen.column())
row#
la row devuelve la fila actual donde se imprimirá el texto en la pantalla del Controlador.
Usage:
controller_1.screen.row()
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
# Print the current row number
controller_1.screen.set_cursor(2, 3)
controller_1.screen.print(controller_1.screen.row())
clear_screen#
clear_screen borra la pantalla del controlador y mueve el cursor de nuevo a la posición inicial.
Usage:
controller_1.screen.clear_screen()
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
# Print text, then clear the Controller screen
controller_1.screen.print("VEX V5")
wait(2, SECONDS)
controller_1.screen.clear_screen()
clear_row#
clear_row borra una fila en la pantalla del controlador.
Usage:
controller_1.screen.clear_row(row)
Parámetro |
Descripción |
|---|---|
|
Opcional. La fila a borrar, de |
# Clear row 2 on the Controller screen
controller_1.screen.clear_row(2)
next_row#
next_row mueve el cursor a la columna 1 en la siguiente fila de la pantalla del controlador. El siguiente valor impreso aparecerá en esa fila.
Usage:
controller_1.screen.next_row()
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
# Print on two rows
controller_1.screen.print("VEX V5")
controller_1.screen.next_row()
controller_1.screen.print("Controller")
Getters#
.pressing#
.pressing devuelve si se está presionando actualmente un botón específico en el controlador. Se debe llamar a este método en un objeto de botón específico, como controller_1.buttonA.
True: se está presionando el botón especificado.False— No se está presionando el botón especificado.
Uso:
Uno de los objetos de botón disponibles se puede usar con este método:

Botón |
Comando |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
# Turn right while L1 is pressed
while True:
if controller_1.buttonL1.pressing():
drivetrain.turn(RIGHT)
else:
drivetrain.stop()
wait(20, MSEC)
.position#
.position devuelve la posición de un eje del joystick como un número de -100 a 100.
Este método debe llamarse en un objeto de eje específico, como controller_1.axis1.
Uso:
Uno de los objetos de eje disponibles se puede utilizar con este método:

Eje |
Comando |
|---|---|
|
|
|
|
|
|
|
|
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_1.axis4.position() > 10:
drivetrain.turn(RIGHT)
elif controller_1.axis4.position() < -10:
drivetrain.turn(LEFT)
else:
drivetrain.stop()
wait(20, MSEC)
Devoluciones de llamada#
.pressed#
.pressed ejecuta una función cuando se presiona el botón especificado. Una vez utilizada, la función se ejecutará automáticamente cada vez que se presione ese botón.
Uso:
Uno de los objetos de botón disponibles se puede usar con este método:

Botón |
Comando |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Parámetro |
Descripción |
|---|---|
|
Una función previamente definida para ejecutarse cada vez que se presiona el botón especificado. |
|
Opcional. Una tupla que contiene argumentos para pasar 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 A is pressed
def drive_forward():
drivetrain.drive_for(FORWARD, 100, MM)
controller_1.buttonA.pressed(drive_forward)
.released#
.released ejecuta una función cuando se suelta el botón especificado. Una vez utilizada, la función se ejecutará automáticamente cada vez que se suelte ese botón.
Uso:
Uno de los objetos de botón disponibles se puede usar con este método:

Botón |
Comando |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Parámetro |
Descripción |
|---|---|
|
Una función previamente definida para ejecutarse cada vez que se suelta el botón especificado. |
|
Opcional. Una tupla que contiene argumentos para pasar a la función de devolución de llamada. Consulte Uso de eventos con parámetros para obtener más información. |
# Drive backward when A is released
def back_up():
drivetrain.drive_for(REVERSE, 100, MM)
controller_1.buttonA.released(back_up)
.changed#
.changed ejecuta una función cuando la posición del joystick cambia a lo largo del eje especificado. Una vez utilizada, la función se ejecutará automáticamente cada vez que la posición del joystick cambie a lo largo de ese eje.
Uso:
Uno de los objetos de eje disponibles se puede utilizar con este método:

Eje |
Comando |
|---|---|
|
|
|
|
|
|
|
|
Parámetro |
Descripción |
|---|---|
|
Una función previamente definida para ejecutarse cada vez que la posición del joystick cambia a lo largo del eje especificado. |
|
Opcional. Una tupla que contiene argumentos para pasar 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 left joystick moves
def tada_sound():
brain.play_sound(SoundType.TADA)
controller_1.axis4.changed(tada_sound)
Constructores#
Controller#
Controller crea un objeto Controller. La creación manual de un objeto Controller solo es necesaria cuando se configura un controlador fuera de VEXcode.
Usage:
Controller(controller_type)
Parámetro |
Descripción |
|---|---|
|
Opcional. El tipo de controlador a crear: |
# Create the primary Controller
controller_1 = Controller(PRIMARY)
# Create a partner Controller
controller_2 = Controller(PARTNER)