Controlador#

Introdução#

O comando VEX AIM One Stick possui quatro botões e um joystick. O joystick pode ser movido em dois eixos e também pode ser premido como um botão.

Os métodos do controlador podem ser utilizados para verificar os toques dos botões, ler o movimento do joystick, verificar a ligação e o estado da bateria ou executar funções quando ocorrem eventos do controlador.

Segue-se uma lista de todos os métodos:

Getters — Lê o estado do botão, do joystick, da ligação e da bateria.

  • .pressing — Retorna se um botão especificado está a ser pressionado.

  • .position — Devolve a posição do joystick ao longo de um eixo especificado.

  • is_connected — Retorna se o controlador está ligado.

  • get_battery_level — Retorna o nível da bateria do controlador.

Callbacks — Executam funções quando a entrada do controlador é alterada.

  • .pressed — Executa uma função quando um botão especificado é premido.

  • .released — Executa uma função quando um botão especificado é libertado.

  • .changed — Executa uma função quando a posição do joystick muda ao longo de um eixo especificado.

Getters#

.pressing#

.pressing retorna se um botão específico no controlador está a ser pressionado no momento. Este método deve ser chamado num objeto de botão específico, como controller.button_up.

  • True — O botão especificado está a ser premido.

  • False — O botão especificado não está a ser premido.

Utilização:
Um dos cinco objetos de botão disponíveis pode ser utilizado com este método:

Botão

Comando

button_up

controller.button_up.pressing() — O botão para cima

button_down

controller.button_down.pressing() — O botão Para baixo

button_left

controller.button_left.pressing() — O botão Esquerda

button_right

controller.button_right.pressing() — O botão Direita

button_stick

controller.button_stick.pressing() — O botão Joystick

Comando VEX AIM One Stick com um joystick à esquerda e quatro botões à direita. O joystick e os quatro botões estão destacados.

Parâmetros

Descrição

Este método não tem 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 devolve a posição de um eixo do joystick como um número de -100 a 100.

Este método deve ser chamado num objeto de eixo específico, como controller.axis1.

Utilização:
Um dos dois objetos de eixo disponíveis pode ser utilizado com este método:

Eixo

Comando

axis1

controller.axis1.position() — O eixo vertical

axis2

controller.axis2.position() — O eixo horizontal

Controlador VEX AIM com um joystick à esquerda e quatro botões à direita. Os eixos 1 e 2 do joystick estão destacados.

Parâmetros

Descrição

Este método não tem 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 retorna se o controlador está ligado.

  • True — O controlador está ligado.

  • False — O controlador não está ligado.

Usage:
controller.is_connected()

Parâmetros

Descrição

Este método não tem 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 devolve o nível da bateria do controlador como um número de 0 a 100.

Usage:
controller.get_battery_level()

Parâmetros

Descrição

Este método não tem parâmetros.

# Display the controller's battery level
robot.screen.print(controller.get_battery_level())

Retornos de chamada#

.pressed#

.pressed executa uma função quando o botão especificado é premido. Uma vez utilizada, a função será executada automaticamente sempre que este botão for pressionado.

Utilização:
Um dos cinco objetos de botão disponíveis pode ser utilizado com este método:

Botão

Comando

button_up

controller.button_up.pressed(callback, arg) — O botão para cima

button_down

controller.button_down.pressed(callback, arg) — O botão Para baixo

button_left

controller.button_left.pressed(callback, arg) — O botão Esquerda

button_right

controller.button_right.pressed(callback, arg) — O botão Direita

button_stick

controller.button_stick.pressed(callback, arg) — O botão Joystick

Comando VEX AIM One Stick com um joystick à esquerda e quatro botões à direita. O joystick e os quatro botões estão destacados.

Parâmetro

Descrição

callback

Uma função previamente definida para ser executada sempre que o botão especificado for premido.

arg

Opcional. Uma tupla contendo argumentos para passar para a função de callback. Consulte Utilizar eventos com parâmetros para obter mais informações.

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

controller.button_up.pressed(kick_object)

.released#

.released executa uma função quando o botão especificado é libertado. Uma vez utilizada, a função será executada automaticamente sempre que este botão for libertado.

Utilização:
Um dos cinco objetos de botão disponíveis pode ser utilizado com este método:

Botão

Comando

button_up

controller.button_up.released(callback, arg) — O botão para cima

button_down

controller.button_down.released(callback, arg) — O botão Para baixo

button_left

controller.button_left.released(callback, arg) — O botão Esquerda

button_right

controller.button_right.released(callback, arg) — O botão Direita

button_stick

controller.button_stick.released(callback, arg) — O botão Joystick

Comando VEX AIM One Stick com um joystick à esquerda e quatro botões à direita. O joystick e os quatro botões estão destacados.

Parâmetro

Descrição

callback

Uma função previamente definida para ser executada sempre que o botão especificado for libertado.

arg

Opcional. Uma tupla contendo argumentos para passar para a função de callback. Consulte Utilizar eventos com parâmetros para obter mais informações.

# 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 executa uma função quando a posição do joystick muda ao longo do eixo especificado. Uma vez utilizada, a função será executada automaticamente sempre que a posição do joystick se altere ao longo desse eixo.

Utilização:
Um dos dois objetos de eixo disponíveis pode ser utilizado com este método:

Eixo

Comando

axis1

controller.axis1.changed(callback, arg) — O eixo vertical

axis2

controller.axis2.changed(callback, arg) — O eixo horizontal

Controlador VEX AIM com um joystick à esquerda e quatro botões à direita. Os eixos 1 e 2 do joystick estão destacados.

Parâmetro

Descrição

callback

Uma função previamente definida para ser executada sempre que a posição do joystick se altere ao longo do eixo especificado.

arg

Opcional. Uma tupla contendo argumentos para passar para a função de callback. Consulte Utilizar eventos com parâmetros para obter mais informações.

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

controller.axis1.changed(move_joystick)