Controlador#
Introducción#
El controlador VEX AIM One Stick tiene cuatro botones y un joystick. El joystick se puede mover a lo largo de dos ejes y también se puede presionar como un botón.
Los métodos del controlador se pueden utilizar para verificar las pulsaciones de los botones, leer el movimiento del joystick, verificar la conexión y el estado de la batería, o ejecutar funciones cuando ocurren eventos del controlador.
A continuación se muestra una lista de todos los métodos:
Getters — Botón de lectura, joystick, conexión y estado de la batería.
.pressing— Devuelve si se está presionando un botón especificado..position— Devuelve la posición del joystick a lo largo de un eje especificado.is_connected— Devuelve si el controlador está conectado.get_battery_level— Devuelve el nivel de batería del controlador.
Devoluciones de llamada: ejecuta funciones cuando cambia la entrada del controlador.
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.button_up.
True: se está presionando el botón especificado.False— No se está presionando el botón especificado.
Uso:
Se puede usar uno de los cinco objetos de botón disponibles con este método:
Botón |
Comando |
|---|---|
|
|
|
|
|
|
|
|
|
|
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
# Move forward while the Up button is being pressed
while True:
if controller.button_up.pressing():
robot.move_at(0)
else:
robot.stop_all_movement()
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.axis1.
Uso:
Se puede usar uno de los dos objetos de eje disponibles con este método:
Eje |
Comando |
|---|---|
|
|
|
|
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
# Move forward when the joystick is moved up
while True:
if controller.axis1.position() > 0:
robot.move_at(0)
else:
robot.stop_all_movement()
wait(20, MSEC)
is_connected#
is_connected devuelve si el controlador está conectado.
True: el controlador está conectado.False— El controlador no está conectado.
Usage:
controller.is_connected()
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
# Stop the robot if the controller disconnects
robot.move_at(0)
while True:
if not controller.is_connected():
robot.stop_all_movement()
wait(100, MSEC)
get_battery_level#
get_battery_level devuelve el nivel de batería del controlador como un número de 0 a 100.
Usage:
controller.get_battery_level()
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
# Display the controller's battery level
robot.screen.print(controller.get_battery_level())
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:
Se puede usar uno de los cinco objetos de botón disponibles 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. |
# Kick hard when the Up button is pressed
def kick_object():
robot.kicker.kick(HARD)
controller.button_up.pressed(kick_object)
.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:
Se puede usar uno de los cinco objetos de botón disponibles 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. |
# Clear the screen after the Up button is released
def clear_screen():
robot.screen.clear_screen()
controller.button_up.released(clear_screen)
robot.screen.print("Press Up, then")
robot.screen.next_row()
robot.screen.print("Release 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:
Se puede usar uno de los dos objetos de eje disponibles 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. |
# Show an emoji when the joystick moves up or down
def move_joystick():
robot.screen.show_emoji(CONFUSED)
controller.axis1.changed(move_joystick)