Controlador#

Introdução#

O Controlador V5 possui botões, dois joysticks, um motor de vibração e um ecrã. Os blocos do controlador podem ser utilizados para verificar pressionamentos de botões, ler o movimento do joystick, vibrar o controlador, ativar ou desativar ações configuradas no controlador, executar blocos quando ocorrem eventos do controlador ou exibir texto no ecrã do controlador.

As ações do controlador configuradas são comportamentos do controlador definidos no menu Dispositivos. Utilize o bloco Ativar/desativar controlador para ativar ou desativar temporariamente estas ações configuradas durante um projeto.

Segue abaixo a lista dos blocos disponíveis:

Valores — Verificar o estado dos botões do controlador ou ler a posição do joystick.

Ações — Faça vibrar o comando, ative/desative as ações configuradas no comando ou execute blocos quando a entrada do comando é alterada.

Ecrã — Apresenta texto e números no ecrã do controlador.

Valores#

Comando pressionado?#

O bloco booleano Controlador pressionado? retorna se um botão selecionado do Controlador estiver a ser pressionado.

A parte frontal e traseira do Controlador V5 com os botões destacados a amarelo. Na superfície do controlador estão os botões de seta para cima, para baixo, para a esquerda e para a direita à esquerda, e os botões X, A, B e Y no sentido dos ponteiros do relógio a partir das 12 horas à direita. Na parte traseira do comando estão L1, L2, R1 e R2 nos lados esquerdo e direito, respectivamente.

Controlador pressionado? Bloco booleano#
<[Controller1 v] [▲ v] pressionado?>

Parâmetro

Descrição

dispositivo

O controlador a utilizar, configurado na janela Dispositivos.

botão

Botão para verificar:

  • ▲
  • ▼
  • ◀
  • ▶
  • X
  • B
  • Y
  • A
  • L1
  • L2
  • R1
  • R2

Exemplo

Ao ser ligado, o veículo avança enquanto o botão X estiver pressionado.#
quando iniciar
[Drive forward while X is pressed.]
para sempre
se <[Controller1 v] [X v] pressionado?> então
conduzir [frente v]
senão
parar de conduzir
fim
fim

Posição do controlador#

O bloco de relatório Posição do controlador devolve a posição do joystick ao longo de um eixo selecionado como um número de -100 a 100.

Um controlador VEX V5 com os eixos em redor dos joysticks identificados. Os eixos 1 e 2 estão à volta do joystick direito e os eixos 3 e 4 estão à volta do joystick esquerdo.

Bloco repórter de posição do controlador#
([Controller1 v] [1 v] position :: sensing)

Parâmetro

Descrição

dispositivo

O controlador a utilizar, configurado na janela Dispositivos.

eixo

Eixos do joystick a reportar:

  • 1 — eixo horizontal do joystick direito
  • 2 — eixo vertical do joystick direito
  • 3 — eixo vertical do joystick esquerdo
  • 14 — eixo horizontal do joystick esquerdo

Exemplo

Ao ser ligado, o veículo avança enquanto o joystick esquerdo é pressionado para cima.#
quando iniciar
[Drive forward while the left joystick is pushed up.]
para sempre
se <([Controller1 v] [3 v] position :: sensing) [math_greater_than v] [0]> então
conduzir [frente v]
senão
parar de conduzir
fim
fim

Ações#

Ative a vibração no comando#

O bloco de pilha reproduzir vibração no controlador reproduz um padrão de vibração no controlador.

reproduzir vibração no bloco de pilha do controlador#
reproduzir vibração [Longa v] em [Controller1 v]

Parâmetro

Descrição

padrão

Padrão de vibração para reproduzir no comando:

  • Longa — uma vibração longa
  • Curta — uma vibração curta
  • Pulso — um padrão de vibrações intermitentes

dispositivo

O controlador a utilizar, configurado na janela Dispositivos.

Exemplo

Ao premir o botão R1, o comando emite uma breve vibração.#
quando[Controller1 v] botão [R1 v] [pressionado v] :: hat events
reproduzir vibração [Curta v] em [Controller1 v]

Ativar/desativar controlador#

O bloco de pilha Ativar/Desativar Controlador ativa ou desativa as ações configuradas pelo Controlador no menu Dispositivos para todos os controladores ligados.

Controlador de ativação/desativação de bloco de pilha#
Controle [Desativar v]

Parâmetro

Descrição

estado

O controlador configurou o estado da ação: Desativar ou Ativar.

Exemplo

Ao ser iniciado, desativa as ações configuradas do controlador enquanto o robô se move para a frente.#
quando iniciar
[Disable Controller configured actions until the drive movement is done.]
Controle [Desativar v]
conduzir [frente v] por (6) [polegadas v] ▶
Controle [Ativar v]

quando o botão do comando é pressionado#

O bloco Hat quando o botão do controlador é premido executa a pilha associada quando um botão do controlador selecionado é premido ou libertado.

A parte frontal e traseira do Controlador V5 com os botões destacados a amarelo. Na superfície do controlador estão os botões de seta para cima, para baixo, para a esquerda e para a direita à esquerda, e os botões X, A, B e Y no sentido dos ponteiros do relógio a partir das 12 horas à direita. Na parte traseira do comando estão L1, L2, R1 e R2 nos lados esquerdo e direito, respectivamente.

Quando o botão do comando é pressionado, o bloco Hat#
quando[Controller1 v] botão [▲ v] [pressionado v] :: hat events

Parâmetro

Descrição

dispositivo

O controlador a utilizar, configurado na janela Dispositivos.

botão

Botão para verificar:

  • ▲
  • ▼
  • ◀
  • ▶
  • X
  • B
  • Y
  • A
  • L1
  • L2
  • R1
  • R2

estado do botão

O evento do botão que aciona a pilha associada: premido ou libertado.

Exemplo

Ao premir o botão R1, o veículo avança 200 milímetros.#
quando[Controller1 v] botão [R1 v] [pressionado v] :: hat events
[Drive forward when R1 is pressed.]
conduzir [frente v] por (200) [mm v] ▶

quando o eixo do controlador é alterado#

O bloco Hat quando o eixo do controlador é alterado executa a pilha associada quando a posição de um joystick muda ao longo do eixo selecionado.

Um controlador VEX V5 com os eixos em redor dos joysticks identificados. Os eixos 1 e 2 estão à volta do joystick direito e os eixos 3 e 4 estão à volta do joystick esquerdo.

Quando o eixo do controlador é alterado, o bloco Hat é alterado.#
when [Controller1 v] axis [1 v] is changed :: hat events

Parâmetro

Descrição

dispositivo

O controlador a utilizar, configurado na janela Dispositivos.

eixo

Eixos do joystick a verificar:

  • 1 — eixo horizontal do joystick direito
  • 2 — eixo vertical do joystick direito
  • 3 — eixo vertical do joystick esquerdo
  • 4 — eixo horizontal do joystick esquerdo

Exemplo

Quando a posição do joystick muda ao longo do eixo 3 do controlador, este avança 200 milímetros.#
when [Controller1 v] axis [3 v] is changed :: hat events
[Drive forward when the joystick's position changes along axis 3.]
conduzir [frente v] por (200) [mm v] ▶

Ecrã#

Defina o cursor para a linha/coluna do controlador.#

O bloco de pilha definir cursor para linha e coluna no controlador move o cursor para uma linha e coluna específicas no ecrã do controlador. O próximo valor impresso aparecerá nessa posição.

Defina o cursor para a linha/coluna no bloco de pilha do controlador.#
definir cursor para linha [1] coluna [1] em [Controller1 v] :: custom-controller-inertial-timer

Parâmetro

Descrição

linha

A linha para a qual o cursor será movido no ecrã do Controlador.

coluna

A coluna para a qual o cursor será movido no ecrã Controlador.

dispositivo

O controlador a utilizar, configurado na janela Dispositivos.

Exemplo

Ao ser iniciado, imprime o texto na linha 2, coluna 1 no ecrã do Controlador.#
quando iniciar
[Display a message on row 2.]
definir cursor para linha [2] coluna [1] em [Controller1 v] :: custom-controller-inertial-timer
imprimir [Ready] em [Controller1 v] ▶ :: custom-controller-inertial-timer

Posicione o cursor na linha seguinte do controlador.#

O bloco de pilha set cursor to next row on controller move o cursor para a coluna 1 na linha seguinte do ecrã do Controlador. O próximo valor impresso aparecerá nessa linha.

posicionar o cursor na linha seguinte do bloco de pilha do controlador#
mover cursor para a próxima linha em [Controller1 v] :: custom-controller-inertial-timer

Parâmetro

Descrição

dispositivo

O controlador a utilizar, configurado na janela Dispositivos.

Exemplo

Ao ser iniciado, imprime duas linhas no ecrã do Controlador.#
quando iniciar
[Display two rows of text.]
imprimir [Row 1] em [Controller1 v] ▶ :: custom-controller-inertial-timer
mover cursor para a próxima linha em [Controller1 v] :: custom-controller-inertial-timer
imprimir [Row 2] em [Controller1 v] ▶ :: custom-controller-inertial-timer

Defina a precisão de impressão no controlador.#

O bloco de pilha definir precisão de impressão no controlador define quantas casas decimais são apresentadas quando os números são impressos no ecrã do controlador. Esta configuração aplica-se aos números impressos após a utilização deste bloco.

Defina a precisão de impressão no bloco de pilha do controlador.#
definir precisão de impressão para [0.1 v] em [Controller1 v] :: custom-controller-inertial-timer

Parâmetro

Descrição

precisão

Precisão de impressão a utilizar:

  • 1 — sem casas decimais
  • 0,1 — 1 casa decimal
  • 0,01 — 2 casas decimais
  • 0,001 — 3 casas decimais
  • Todos os dígitos — todas as casas decimais disponíveis

dispositivo

O controlador a utilizar, configurado na janela Dispositivos.

Exemplo

Ao ser iniciado, apresenta 1/3 com duas casas decimais no ecrã do controlador.#
quando iniciar
[Display 1/3 with two decimals.]
definir precisão de impressão para [0.01 v] em [Controller1 v] :: custom-controller-inertial-timer
imprimir ([1] [math_division v] [3]) em [Controller1 v] ▶ :: custom-controller-inertial-timer

controlador limpo#

O bloco de pilha limpar controlador limpa todas as linhas do ecrã do Controlador e move o cursor de volta para a primeira linha.

limpar bloco de pilha do controlador#
limpar [Controller1 v] :: custom-controller-inertial-timer

Parâmetro

Descrição

dispositivo

O controlador a utilizar, configurado na janela Dispositivos.

Exemplo

Ao ser iniciado, imprime o texto, aguarda e, em seguida, limpa o ecrã do Controlador.#
quando iniciar
[Clear the Controller screen after printing.]
imprimir [This will disappear...] em [Controller1 v] ▶ :: custom-controller-inertial-timer
aguardar [2] segundos
limpar [Controller1 v] :: custom-controller-inertial-timer

limpar linha no controlador#

O bloco de pilha limpar linha no controlador limpa uma única linha no ecrã do Controlador.

limpar linha no bloco de pilha do controlador#
limpar linha [1] em [Controller1 v] :: custom-controller-inertial-timer

Parâmetro

Descrição

linha

A linha a limpar no ecrã do Controlador.

dispositivo

O controlador a utilizar, configurado na janela Dispositivos.

Exemplo

Ao ser iniciado, limpa a linha 1 no ecrã do Controlador.#
quando iniciar
[Clear one row on the Controller screen.]
imprimir [Row 1] em [Controller1 v] ▶ :: custom-controller-inertial-timer
mover cursor para a próxima linha em [Controller1 v] :: custom-controller-inertial-timer
imprimir [Row 2] em [Controller1 v] ▶ :: custom-controller-inertial-timer
aguardar [2] segundos
limpar linha [1] em [Controller1 v] :: custom-controller-inertial-timer