Controlador#
Introdução#
O comando VEX IQ (2ª geração) possui botões e dois joysticks. Os métodos do controlador podem ser utilizados para verificar os toques dos botões, ler o movimento do joystick, ativar ou desativar as ações configuradas do controlador ou executar funções quando ocorrem eventos do controlador.
O módulo IQ (2ª geração) pode ser ligado a um controlador IQ (2ª geração) ou a um controlador IQ (1ª geração). Um controlador IQ (1ª geração) deve ter um Smart Radio azul instalado.
As ações de controlo configuradas são comportamentos do controlador definidos no menu Dispositivos. Utilize remote_control_code_enabled para ativar ou desativar temporariamente estas ações configuradas durante um projeto.
Esta página utiliza controller como nome de controlador de exemplo. Substitua-o pelo nome que configurou, se necessário.
Segue-se uma lista de todos os métodos disponíveis:
Ação — Ativar ou desativar as ações configuradas do controlador.
remote_control_code_enabled— Activa ou desactiva as acções do controlador configuradas no menu Dispositivos.
Getters — Leem os estados dos botões e as posições dos joysticks.
.pressing— Retorna se um botão especificado está a ser pressionado..position— Devolve a posição de um eixo de joystick especificado.
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.
Construtor — Cria manualmente um objeto Controller.
Controller— Cria um objeto Controller.
Ação#
remote_control_code_enabled#
A variável remote_control_code_enabled remote_control_code_enabled activa ou desactiva as acções do controlador configuradas no menu Dispositivos. As ações configuradas no controlador estão ativadas por defeito.
Usage:
remote_control_code_enabled = state
Valor |
Descrição |
|---|---|
|
Activa as ações configuradas pelo controlador. |
|
Desativa as ações configuradas pelo controlador. |
# Use custom controller code, then re-enable configured actions
remote_control_code_enabled = False
while True:
if controller.axisA.position() > 0:
drivetrain.drive(FORWARD)
elif controller.axisA.position() < 0:
drivetrain.drive(REVERSE)
elif controller.buttonEUp.pressing():
break
else:
drivetrain.stop()
wait(20, MSEC)
remote_control_code_enabled = True
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.buttonEUp.
True— O botão especificado está a ser premido.False— O botão especificado não está a ser premido.
Utilização:
Um dos 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. |
# Turn right while E Up is held
while True:
if controller.buttonEUp.pressing():
drivetrain.turn(RIGHT)
else:
drivetrain.stop()
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.axisA.
Utilização:
Um dos 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. |
# Turn with the left joystick
remote_control_code_enabled = False
while True:
if controller.axisB.position() > 10:
drivetrain.turn(RIGHT)
elif controller.axisB.position() < -10:
drivetrain.turn(LEFT)
else:
drivetrain.stop()
wait(20, MSEC)
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 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. |
# Drive forward when E Up is pressed
def drive_forward():
drivetrain.drive_for(FORWARD, 100, MM)
controller.buttonEUp.pressed(drive_forward)
.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 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. |
# Stop driving when E Up is released
def stop_driving():
drivetrain.stop()
controller.buttonEUp.released(stop_driving)
.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 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. |
# Play a sound when the right joystick moves
def beep():
brain.play_sound(SoundType.TADA)
controller.axisD.changed(beep)
Construtores#
Controller#
O comando Controller cria um objeto Controller. A criação manual de um objeto Controller só é necessária quando se configura um controlador fora do VEXcode.
Usage:
Controller()
Parâmetros |
Descrição |
|---|---|
Este construtor não possui parâmetros. |
# Create a Controller object
my_controller = Controller()