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.
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 |
|---|---|
|
|
|
|
|
|
|
|
|
|
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 |
|---|---|
|
|
|
|
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 |
|---|---|
|
|
|
|
|
|
|
|
|
|
Parâmetro |
Descrição |
|---|---|
|
Uma função previamente definida para ser executada sempre que o botão especificado for premido. |
|
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 |
|---|---|
|
|
|
|
|
|
|
|
|
|
Parâmetro |
Descrição |
|---|---|
|
Uma função previamente definida para ser executada sempre que o botão especificado for libertado. |
|
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 |
|---|---|
|
|
|
|
Parâmetro |
Descrição |
|---|---|
|
Uma função previamente definida para ser executada sempre que a posição do joystick se altere ao longo do eixo especificado. |
|
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)