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.

  • .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.

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

button_up

controller.button_up.pressing() — El botón Arriba

button_down

controller.button_down.pressing() — El botón Abajo

button_left

controller.button_left.pressing() — El botón izquierdo

button_right

controller.button_right.pressing() — El botón derecho

button_stick

controller.button_stick.pressing() — El botón Joystick

Controlador VEX AIM One Stick con un joystick a la izquierda y cuatro botones a la derecha. El joystick y los cuatro botones están resaltados.

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

axis1

controller.axis1.position() — El eje vertical

axis2

controller.axis2.position() — El eje horizontal

Controlador VEX AIM con un joystick a la izquierda y cuatro botones a la derecha. Se resaltan los ejes 1 y 2 del joystick.

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

button_up

controller.button_up.pressed(callback, arg) — El botón Arriba

button_down

controller.button_down.pressed(callback, arg) — El botón Abajo

button_left

controller.button_left.pressed(callback, arg) — El botón izquierdo

button_right

controller.button_right.pressed(callback, arg) — El botón derecho

button_stick

controller.button_stick.pressed(callback, arg) — El botón Joystick

Controlador VEX AIM One Stick con un joystick a la izquierda y cuatro botones a la derecha. El joystick y los cuatro botones están resaltados.

Parámetro

Descripción

callback

Una función previamente definida para ejecutarse cada vez que se presiona el botón especificado.

arg

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

button_up

controller.button_up.released(callback, arg) — El botón Arriba

button_down

controller.button_down.released(callback, arg) — El botón Abajo

button_left

controller.button_left.released(callback, arg) — El botón izquierdo

button_right

controller.button_right.released(callback, arg) — El botón derecho

button_stick

controller.button_stick.released(callback, arg) — El botón Joystick

Controlador VEX AIM One Stick con un joystick a la izquierda y cuatro botones a la derecha. El joystick y los cuatro botones están resaltados.

Parámetro

Descripción

callback

Una función previamente definida para ejecutarse cada vez que se suelta el botón especificado.

arg

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

axis1

controller.axis1.changed(callback, arg) — El eje vertical

axis2

controller.axis2.changed(callback, arg) — El eje horizontal

Controlador VEX AIM con un joystick a la izquierda y cuatro botones a la derecha. Se resaltan los ejes 1 y 2 del joystick.

Parámetro

Descripción

callback

Una función previamente definida para ejecutarse cada vez que la posición del joystick cambia a lo largo del eje especificado.

arg

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)