Controlador#

Introducción#

El controlador VEX AIM One Stick tiene cuatro botones y una palanca de mando. La palanca de mando se puede mover en dos ejes y también se puede pulsar como un botón.

Los métodos del controlador se pueden utilizar para comprobar las pulsaciones de los botones, leer el movimiento del joystick, comprobar la conexión y el estado de la batería, o ejecutar funciones cuando se producen eventos en el controlador.

A continuación se muestra una lista de todos los métodos:

Obtiene información: lee el estado de los botones, el joystick, la conexión y la batería.

  • .pressing — Returns whether a specified button is being pressed.

  • .position — Returns the joystick position along a specified axis.

  • is_connected — Returns whether the controller is connected.

  • get_battery_level — Returns the controller’s battery level.

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.

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

  • True — The specified button is being pressed.

  • False — The specified button is not being pressed.

Uso:
Se puede utilizar uno de los cinco objetos de botón disponibles con este método:

Botón

Dominio

button_up

controller.button_up.pressing() — The Up button

button_down

controller.button_down.pressing() — The Down button

button_left

controller.button_left.pressing() — The Left button

button_right

controller.button_right.pressing() — The Right button

button_stick

controller.button_stick.pressing() — The Joystick button

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

Uso:
Se puede utilizar uno de los dos objetos de eje disponibles con este método:

Eje

Dominio

axis1

controller.axis1.position() — The vertical axis

axis2

controller.axis2.position() — The horizontal axis

Controlador VEX AIM con un joystick a la izquierda y cuatro botones a la derecha. Los ejes 1 y 2 del joystick están resaltados.

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 returns whether the controller is connected.

  • True — The controller is connected.

  • False — The controller is not connected.

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 returns the controller’s battery level as a number from 0 to 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 llamadas#

.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 cinco objetos de botón disponibles con este método:

Botón

Dominio

button_up

controller.button_up.pressed(callback, arg) — The Up button

button_down

controller.button_down.pressed(callback, arg) — The Down button

button_left

controller.button_left.pressed(callback, arg) — The Left button

button_right

controller.button_right.pressed(callback, arg) — The Right button

button_stick

controller.button_stick.pressed(callback, arg) — The Joystick button

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 definida previamente para ejecutarse cada vez que se presione el botón especificado.

arg

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.

# Kick hard when the Up button is pressed
def kick_object():
    robot.kicker.kick(HARD)

controller.button_up.pressed(kick_object)

.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 cinco objetos de botón disponibles con este método:

Botón

Dominio

button_up

controller.button_up.released(callback, arg) — The Up button

button_down

controller.button_down.released(callback, arg) — The Down button

button_left

controller.button_left.released(callback, arg) — The Left button

button_right

controller.button_right.released(callback, arg) — The Right button

button_stick

controller.button_stick.released(callback, arg) — The Joystick button

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 definida previamente para ejecutarse cada vez que se suelte el botón especificado.

arg

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.

# 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 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 dos objetos de eje disponibles con este método:

Eje

Dominio

axis1

controller.axis1.changed(callback, arg) — The vertical axis

axis2

controller.axis2.changed(callback, arg) — The horizontal axis

Controlador VEX AIM con un joystick a la izquierda y cuatro botones a la derecha. Los ejes 1 y 2 del joystick están resaltados.

Parámetro

Descripción

callback

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

arg

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.

# Show an emoji when the joystick moves up or down
def move_joystick():
    robot.screen.show_emoji(CONFUSED)

controller.axis1.changed(move_joystick)