Blocos específicos para robôs#

Introdução#

O robô herói, Flex, inclui um motor de garra, um motor de braço, um sensor de visão com IA, um sensor de distância e um sensor de sistema de posicionamento de jogo (GPS).

Todos os blocos VR padrão do VEXcode estão disponíveis para utilização no V5 26-27 Override Playground.

Abaixo está uma lista de todos os blocos específicos para robôs disponíveis:

Sistema de transmissão – Movimenta e roda o robô.

Movimento – Movimente e acompanhe os motores do robô.

Visão com IA – Capte e analise objetos utilizando o sensor de Visão com IA.

Deteção – Utilize os vários sensores do robô.

Os exemplos nesta página utilizam o Local de Partida C da lista de verificação pré-jogo do Playground.

Transmissão#

O sistema de transmissão controla a forma como o robô de realidade virtual se move e gira. Pode mover-se para a frente ou para trás, virar para a esquerda ou para a direita, mudar de direção e acompanhar a sua rotação.

Ações#

conduzir#

O bloco de acionamento move o robô para a frente ou para trás indefinidamente. O robô continuará a mover-se até receber outra ação, como virar-se ou parar.

conduzir [frente v]

Parâmetros

Descrição

direção

A direção em que o robô se move: para a frente ou para trás.

Exemplo

quando iniciar :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
girar [ArmMotor v] [subir v] por (300) [graus v] ▶
conduzir [frente v]
aguardar (0.5) segundos
parar de conduzir
girar [ClawMotor v] [aberto v] por (180) [graus v] ▶

conduzir para#

O bloco de pilha drive for move o robô para a frente ou para trás por uma distância específica. O projeto aguardará até que o robô termine de se mover antes de executar o próximo bloco na pilha.

conduzir [frente v] por (200) [mm v] ▶

Parâmetros

Descrição

direção

A direção em que o robô se move: para a frente ou para trás.

distância

A distância percorrida pelo robô. Pode ser um número inteiro ou decimal.

unidade

A unidade de distância: mm (milímetros) ou polegadas

e não espere

Selecione a seta ( ▶ ) para expandir o bloco e apresentar e não esperar, para que o próximo bloco da pilha seja executado imediatamente.

Exemplo

quando iniciar :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
girar [ArmMotor v] [subir v] por (300) [graus v] ▶
conduzir [frente v] por (10) [polegadas v] ▶
girar [ClawMotor v] [aberto v] por (180) [graus v] ▶

virar#

O bloco de pilha virar faz com que o robô vire para a esquerda ou para a direita indefinidamente. O robô continuará a virar até receber outra ação, como conduzir ou parar.

virar [direita v]

Parâmetros

Descrição

direção

A direção para a qual o robô vira: esquerda ou direita.

Exemplo

quando iniciar :: hat events
[Score a Pin in a Neutral Goal.]
virar [esquerda v]
aguardar (0.78) segundos
parar de conduzir
girar [ArmMotor v] [subir v] por (800) [graus v] ▶
conduzir [frente v] por (25) [polegadas v] ▶
girar [ClawMotor v] [aberto v] por (180) [graus v] ▶

virar para#

O bloco de pilha rodar para roda o robô para a esquerda ou para a direita por um número específico de graus. A rotação é relativa à posição atual do robô. O projeto aguardará até que o robô termine de rodar antes de executar o próximo bloco na pilha.

virar [direita v] por (90) graus ▶

Parâmetros

Descrição

direção

A direção para a qual o robô vira: esquerda ou direita.

ângulo

O número de graus que o robô roda. Pode ser um número inteiro ou decimal.

e não espere

Selecione a seta ( ▶ ) para expandir o bloco e apresentar e não esperar, para que o próximo bloco da pilha seja executado imediatamente.

Exemplo

quando iniciar :: hat events
[Score a Pin in a Neutral Goal.]
virar [esquerda v] por (110) graus ▶
girar [ArmMotor v] [subir v] por (800) [graus v] ▶
conduzir [frente v] por (25) [polegadas v] ▶
girar [ClawMotor v] [aberto v] por (180) [graus v] ▶

virar para a direção#

A direção é a direção para a qual o robô está virado, medida em graus. O bloco de pilha virar para a direção roda o robô para uma direção específica entre -359 e 359 graus. O robô irá rodar na direção mais curta para alcançar a direção desejada.

A direção inicial é de 0 graus.

O projeto aguardará até que o robô termine de rodar antes de executar o próximo bloco na pilha.

virar para a direção (90) graus ▶

Parâmetros

Descrição

cabeçalho

A direção para a qual o robô deve estar virado varia entre -359 a 359 graus.

e não espere

Selecione a seta ( ▶ ) para expandir o bloco e apresentar e não esperar, para que o próximo bloco da pilha seja executado imediatamente.

Exemplo

quando iniciar :: hat events
[Score a Pin in a Neutral Goal.]
virar para a direção (-110) graus ▶
girar [ArmMotor v] [subir v] por (800) [graus v] ▶
conduzir [frente v] por (25) [polegadas v] ▶
girar [ClawMotor v] [aberto v] por (180) [graus v] ▶

girar#

O bloco de pilha rodar para rotação roda o robô para uma rotação específica.

A rotação é o quanto o robô rodou, medida em graus. No início de um projeto, o valor de rotação é definido como 0 graus. A rotação também pode ser definida utilizando o bloco definir rotação de acionamento.

Os valores de rotação são absolutos. Isto significa que a direção da viragem depende da rotação atual do robô. Virar para a direita aumenta a rotação, e virar para a esquerda diminui a rotação.

Por exemplo, se o robô começar a 0 graus e rodar 720 graus, este irá virar para a direita duas vezes. Se depois rodar 360 graus, virará para a esquerda uma vez, porque 360 ​​é inferior a 720.

O projeto aguardará até que o robô termine de rodar antes de executar o próximo bloco na pilha.

virar para a rotação (90) graus ▶

Parâmetros

Descrição

rotação

O valor de rotação, em graus, para o qual o robô irá rodar. Pode ser um número inteiro ou decimal.

e não espere

Selecione a seta ( ▶ ) para expandir o bloco e apresentar e não esperar, para que o próximo bloco da pilha seja executado imediatamente.

Exemplo

quando iniciar :: hat events
[Score a Pin in a Neutral Goal.]
virar para a rotação (-110) graus ▶
girar [ArmMotor v] [subir v] por (800) [graus v] ▶
conduzir [frente v] por (25) [polegadas v] ▶
girar [ClawMotor v] [aberto v] por (180) [graus v] ▶

Pare de conduzir#

O bloco de pilha parar de conduzir interrompe o movimento do robô.

parar de conduzir

Parâmetros

Descrição

Este bloco não possui parâmetros.

Exemplo

quando iniciar :: hat events
[Score a Pin in a Neutral Goal.]
girar [ArmMotor v] [subir v] por (300) [graus v] ▶
conduzir [frente v]
aguardar (0.5) segundos
parar de conduzir
girar [ClawMotor v] [aberto v] por (180) [graus v] ▶

Configurações#

definir velocidade de acionamento#

O bloco de pilha definir velocidade de acionamento indica ao robô a velocidade de deslocação. Uma percentagem mais elevada faz com que o robô se desloque mais rapidamente e uma percentagem mais baixa faz com que se desloque mais lentamente.

Todos os projetos começam com o robô a deslocar-se a 50% da velocidade por defeito.

Nota: Uma velocidade mais elevada faz com que o robô se mova mais rapidamente, mas pode ser menos preciso. Uma velocidade mais baixa faz com que o robô se mova mais devagar, mas pode ser mais preciso.

definir velocidade de condução para (50) [% v]

Parâmetros

Descrição

velocidade

A velocidade de condução varia entre 0% a 100%.

unidade

Unidade de velocidade: %

Exemplo

quando iniciar :: hat events
[Score a Pin in a Neutral Goal.]
virar [esquerda v] por (110) graus ▶
girar [ArmMotor v] [subir v] por (800) [graus v] ▶
definir velocidade de condução para (100) [% v]
conduzir [frente v] por (25) [polegadas v] ▶
girar [ClawMotor v] [aberto v] por (180) [graus v] ▶

definir velocidade de rotação#

O bloco de pilha definir velocidade de rotação indica ao robô a velocidade a que deve rodar. Uma percentagem mais elevada faz com que o robô gire mais rápido e uma percentagem mais baixa faz com que o robô gire mais devagar.

Todos os projetos começam com o robô a rodar a 50% da velocidade por defeito.

Nota: Uma velocidade mais elevada faz com que o robô gire mais rápido, mas pode ser menos preciso. Uma velocidade mais baixa faz com que o robô gire mais devagar, mas pode ser mais preciso.

definir velocidade de giro para (50) [% v]

Parâmetros

Descrição

velocidade

A velocidade de rotação varia entre 0% a 100%.

unidade

Unidade de velocidade: %

Exemplo

quando iniciar :: hat events
[Turn to face the Neutral Goal faster.]
definir velocidade de giro para (100) [% v]
virar [esquerda v] por (110) graus ▶

definir rumo de condução#

A direção é a direção para a qual o robô está virado, medida em graus. O bloco de pilha definir direção de acionamento altera a direção atual do robô para um novo valor de direção.

Por exemplo, se o robô se virou para a direita, definir a direção para 0 graus faz com que essa posição virada para a direita se torne os novos 0 graus. De seguida, o robô pode rodar para outras posições com base nessa nova direção.

definir direção de condução para (0) graus

Parâmetros

Descrição

cabeçalho

O valor da direção, em graus, a definir para o robô.

Exemplo

quando iniciar :: hat events
[Make facing the Neutral Goal the new heading.]
definir direção de condução para (110) graus
virar para a direção (0) graus ▶

definir rotação do acionamento#

A rotação indica o quanto o robô rodou, medida em graus. No início de um projeto, o valor de rotação é definido como 0 graus. O bloco de pilha definir rotação de acionamento altera a rotação atual do robô para um novo valor.

Por exemplo, se o robô tiver dado duas voltas completas para a direita, o seu valor de rotação será de 720 graus. Definir a rotação para 0 graus irá repor essa rotação de 720 para 0 graus. De seguida, o robô poderá rodar para rotações baseadas nesse novo valor.

definir rotação de condução para (0) graus

Parâmetros

Descrição

rotação

O valor de rotação, em graus, a definir para o robô. Pode ser um número inteiro ou decimal.

Exemplo

quando iniciar :: hat events
[Make facing the Neutral Goal the new rotation.]
definir rotação de condução para (110) graus
virar para a rotação (0) graus ▶

definir tempo limite da unidade#

O bloco de pilha set drive timeout define durante quantos segundos o robô tentará completar um movimento. Se o robô não conseguir completar dentro deste tempo, interromperá a tentativa e passará para o bloco seguinte da pilha. Isto impede que o robô fique preso num movimento.

definir tempo limite de condução para (1) segundos

Parâmetros

Descrição

hora

O número de segundos que o robô pode tentar para completar um movimento. Pode ser um número inteiro ou decimal.

Exemplo

quando iniciar :: hat events
[Turn to face the Neutral Goal.]
definir tempo limite de condução para (0.8) segundos
virar [esquerda v] por (180) graus ▶

Valores#

A viagem terminou.#

O bloco booleano conclusão da condução indica se o robô terminou de se mover. Isto pode ser utilizado para controlar o tempo de outros comportamentos com base no movimento do robô.

  • Verdadeiro — O robô terminou de se mover.

  • Falso — O robô ainda se está a mover.

Este bloco funciona em conjunto com blocos de transmissão que possuem o parâmetro e não espere.

<condução concluída?>

Parâmetros

Descrição

Este bloco não possui parâmetros.

Exemplo

quando iniciar :: hat events
[Score a Pin in a Neutral Goal.]
virar [esquerda v] por (110) graus ▶
girar [ArmMotor v] [subir v] por (800) [graus v] ▶
conduzir [frente v] por (25) [polegadas v] ◀ e não aguardar
aguardar até <condução concluída?>
girar [ClawMotor v] [aberto v] por (180) [graus v] ▶

O veículo está em movimento.#

O bloco booleano drive is moving informa se o robô se está a mover. Isto pode ser utilizado para controlar o tempo de outros comportamentos com base no movimento do robô.

  • Verdadeiro — O robô está em movimento.

  • Falso — O robô não se está a mover.

Este bloco funciona em conjunto com blocos de transmissão que possuem o parâmetro e não espere.

<condução em movimento?>

Parâmetros

Descrição

Este bloco não possui parâmetros.

Exemplo

quando iniciar :: hat events
[Raise the Arm once stopped near the Goal.]
virar [esquerda v] por (110) graus ▶
conduzir [frente v] por (25) [polegadas v] ◀ e não aguardar
enquanto <condução em movimento?>
aguardar (0.005) segundos
fim
girar [ArmMotor v] [subir v] por (800) [graus v] ▶

Conduzir em direção a#

A direção para a qual o robô está virado, medida em graus. O bloco de relatório direção de direção informa esta direção de 0 a 359,99 graus.

A direção inicial do robô é de 0 graus.

(direção de condução em graus)

Parâmetros

Descrição

Este bloco não possui parâmetros.

Exemplo

quando iniciar :: hat events
[Turn to the Goal, then show heading.]
virar [direita v] por (450) graus ▶
imprimir (direção de condução em graus) na tela ◀ e mover cursor para a próxima linha

rotação de acionamento#

A rotação indica o quanto o robô rodou, medida em graus. No início de um projeto, o valor de rotação é definido como 0 graus. O bloco de relatório rotação de acionamento informa a rotação atual do robô.

Virar para a direita aumenta a rotação, e virar para a esquerda diminui a rotação. Por exemplo, duas voltas completas para a direita resultarão numa rotação de 720 graus.

(rotação de condução em graus)

Parâmetros

Descrição

Este bloco não possui parâmetros.

Exemplo

quando iniciar :: hat events
[Spin to find a Pin, then show rotation.]
virar [direita v] por (450) graus ▶
imprimir (rotação de condução em graus) na tela ◀ e mover cursor para a próxima linha

velocidade de acionamento#

O bloco de relatório de velocidade de deslocamento informa a velocidade a que o robô se está a deslocar.

(velocidade de condução em [% v])

Parâmetros

Descrição

unidade

Unidade de velocidade: %

Exemplo

quando iniciar :: hat events
[Show speed while driving to the Goal.]
conduzir [frente v] por (150) [mm v] ▶
imprimir (velocidade de condução em [% v]) na tela ◀ e mover cursor para a próxima linha

Movimento#

Flex utiliza o ArmMotor para levantar e baixar o braço, e o ClawMotor para abrir e fechar a garra.

Cada motor tem as suas próprias opções de direção. Os nomes das direções descrevem como este motor se move no Flex.

Ações#

motor de rotação#

O bloco de pilha motor de rotação faz rodar um motor numa de duas direções indefinidamente. O motor continuará a rodar até receber outra ação, como rodar numa direção diferente ou parar.

girar [ArmMotor v] [subir v]

Parâmetros

Descrição

motor

O motor para rodar: ArmMotor ou ClawMotor.

direção

Sentido de rotação do motor:

  • Motor do Braço — para cima ou para baixo
  • Motor da Garra — abre ou fecha

Exemplo

quando iniciar
[Raise the Arm before driving toward a Pin.]
girar [ArmMotor v] [subir v]
aguardar (1) segundos
parar [ArmMotor v]

motor de rotação para#

O bloco motor de rotação pára acciona um motor por uma distância específica. A rotação é relativa à posição atual do motor. O projeto aguardará até que o motor termine de rodar antes que o próximo bloco da pilha seja acionado.

girar [ArmMotor v] [subir v] por (90) [graus v] ▶

Parâmetros

Descrição

motor

O motor para rodar: ArmMotor ou ClawMotor.

direção

Sentido de rotação do motor:

  • Motor do Braço — para cima ou para baixo
  • Motor da Garra — abre ou fecha

distância

A distância a que o motor roda. Graus são valores inteiros. As voltas podem ser valores inteiros ou decimais.

unidade

A unidade de distância: graus ou voltas.

e não espere

Selecione a seta ( ▶ ) para expandir o bloco e apresentar e não esperar, para que o próximo bloco da pilha seja executado imediatamente.

Exemplo

quando iniciar
[Raise the Arm to carry the Pin to the Goal.]
girar [ArmMotor v] [subir v] por (800) [graus v] ▶

Rode o motor para a posição desejada.#

O bloco de pilha rodar motor para posição roda um motor para uma posição específica.

A posição de um motor é o quanto ele rodou, medida em graus ou voltas. Uma volta equivale a 360 graus. No início de um projeto, a posição do ArmMotor é definida para 0 graus. O ClawMotor é a exceção — começa nos 467 graus (completamente fechado). A posição do motor também pode ser definida através do bloco definir posição do motor.

Os valores de posição são absolutos. Isto significa que o sentido de rotação depende da posição atual do motor.

Por exemplo, se o motor arrancar a 0 graus e rodar até uma posição de 720 graus, dará duas voltas para a frente. Se depois rodar até uma posição de 360 ​​graus, dará uma volta para trás, porque 360 ​​é inferior a 720.

girar [ArmMotor v] para a posição (90) [graus v] ▶

Parâmetros

Descrição

motor

O motor para rodar: ArmMotor ou ClawMotor.

posição

O valor da posição para a qual o motor irá rodar. Graus utilizam números inteiros. As voltas podem utilizar números inteiros ou decimais.

unidade

A unidade de posição: graus ou voltas.

e não espere

Selecione a seta ( ▶ ) para expandir o bloco e apresentar e não esperar, para que o próximo bloco da pilha seja executado imediatamente.

Exemplo

quando iniciar
[Raise the Arm, then release the Pin.]
girar [ArmMotor v] para a posição (800) [graus v] ▶
girar [ClawMotor v] [aberto v] por (180) [graus v] ▶

motor de paragem#

O bloco de pilha parar motor pára o motor selecionado.

parar [ArmMotor v]

Parâmetros

Descrição

motor

O motor a parar: ArmMotor ou ClawMotor.

Exemplo

quando iniciar
[Raise the Arm partway to hold the Pin.]
girar [ArmMotor v] [subir v]
aguardar (1) segundos
parar [ArmMotor v]

Configurações#

definir velocidade do motor#

O bloco de pilha definir velocidade do motor indica ao motor a velocidade de rotação. Uma percentagem mais elevada faz com que o motor gire mais depressa e uma percentagem mais baixa faz com que o motor gire mais devagar.

Cada projeto começa com cada motor a rodar a 50% da velocidade por defeito.

Nota: Uma velocidade mais elevada faz com que o motor gire mais depressa, mas pode ser menos precisa. Uma velocidade mais baixa faz com que o motor gire mais devagar, mas pode ser mais preciso.

definir velocidade de [ArmMotor v] para [50] [% v]

Parâmetros

Descrição

motor

O motor para definir a velocidade de: ArmMotor ou ClawMotor.

velocidade

A velocidade de rotação do motor. Percentagem utiliza números inteiros de 0% a 100%.

unidade

A unidade de velocidade é: %.

Exemplo

quando iniciar
[Raise the Arm fast to release the Pin.]
definir velocidade de [ArmMotor v] para [100] [% v]
girar [ArmMotor v] [subir v] por (800) [graus v] ▶
girar [ClawMotor v] [aberto v] por (180) [graus v] ▶

definir tempo limite do motor#

O bloco de pilha definir tempo limite do motor define durante quanto tempo um motor tentará completar um movimento. Se o motor não conseguir concluir dentro deste tempo, interromperá a tentativa e passará para o bloco seguinte da pilha. Isto impede que o motor fique preso num movimento.

definir tempo limite de [ArmMotor v] para [1] segundos

Parâmetros

Descrição

motor

O motor para definir o tempo limite: ArmMotor ou ClawMotor.

hora

O número de segundos que o motor pode tentar para completar um movimento. Pode ser um número inteiro ou decimal.

Exemplo

quando iniciar
[Score a Pin in a Neutral Goal.]
virar [esquerda v] por (110) graus ▶
definir tempo limite de [ArmMotor v] para [1] segundos
girar [ArmMotor v] [subir v] por (1800) [graus v] ▶
conduzir [frente v] por (25) [polegadas v] ▶
girar [ClawMotor v] [aberto v] por (180) [graus v] ▶

Posição#

posição do motor#

A posição de um motor é o quanto ele rodou, medida em graus ou voltas. Uma volta equivale a 360 graus. O bloco de registo da posição do motor informa a posição atual do motor.

No início de um projeto, a posição do ArmMotor é definida para 0 graus. O ClawMotor é a exceção — começa nos 467 graus (completamente fechado). Se o motor rodar uma volta completa para a frente, a posição aumenta. Se o motor rodar no sentido oposto, a posição diminui.

(posição de [ArmMotor v] em [graus v])

Parâmetros

Descrição

motor

O motor que reporta a posição de: ArmMotor ou ClawMotor.

unidade

A unidade para indicar a posição do motor é: graus ou rotações.

Exemplo

quando iniciar
[Raise the Arm, then release the Pin.]
enquanto <(posição de [ArmMotor v] em [graus v]) < (800)>
girar [ArmMotor v] [subir v]
aguardar (0.002) segundos
fim
parar [ArmMotor v]
girar [ClawMotor v] [aberto v] por (180) [graus v] ▶

definir posição do motor#

A posição de um motor é o quanto ele rodou, medida em graus ou voltas. Uma volta equivale a 360 graus. O bloco de pilha definir posição do motor altera a posição atual do motor para um novo valor.

Por exemplo, se um motor tiver rodado 180 graus, definir a posição para 0 graus irá repor essa posição de 180 para 0 graus. De seguida, o motor poderá rodar para posições baseadas nesse novo valor.

definir posição de [ArmMotor v] para (0) [graus v]

Parâmetros

Descrição

motor

O motor para definir a posição de: ArmMotor ou ClawMotor.

posição

O valor de posição a definir para o motor. Graus podem ser valores inteiros. As voltas podem ser valores inteiros ou decimais.

unidade

A unidade de posição: graus ou voltas.

Exemplo

quando iniciar
[Reset encoder, raise Arm, place Pin.]
definir posição de [ArmMotor v] para (0) [graus v]
girar [ArmMotor v] para a posição (800) [graus v] ▶
girar [ClawMotor v] [aberto v] por (180) [graus v] ▶

Valores#

O motor está pronto.#

O bloco booleano motor is done informa se o motor terminou de se mover. Isto pode ser utilizado para controlar o tempo de outros comportamentos com base no movimento do motor.

  • Verdadeiro — O motor terminou de trabalhar.

  • Falso — O motor ainda está em movimento.

Este bloco funciona em conjunto com os seguintes blocos de Movimento que têm o parâmetro e não esperar: rodar motor para e rodar motor para posição.

<[ArmMotor v] concluído?>

Parâmetros

Descrição

motor

O motor que indica se o movimento foi concluído: ArmMotor ou ClawMotor.

Exemplo

quando iniciar
[Raise the Arm while driving to the Goal.]
girar [ArmMotor v] para a posição (800) [graus v] ◀ e não aguardar
aguardar (0.1) segundos
enquanto <não <[ArmMotor v] concluído?>>
conduzir [frente v]
aguardar (0.005) segundos
fim
parar de conduzir

O motor está a rodar#

O bloco booleano motor está a rodar informa se o motor está a rodar. Isto pode ser utilizado para controlar o tempo de outros comportamentos com base no movimento do motor.

  • Verdadeiro — O motor está a rodar.

  • Falso — O motor não está a rodar.

Este bloco funciona em conjunto com os seguintes blocos de Movimento que têm o parâmetro e não esperar: rodar motor para e rodar motor para posição.

<[ArmMotor v] girando?>

Parâmetros

Descrição

motor

O motor que deve indicar se está a rodar: ArmMotor ou ClawMotor.

Exemplo

quando iniciar
[Raise the Arm while driving to the Goal, then release the Pin.]
girar [ArmMotor v] para a posição (800) [graus v] ◀ e não aguardar
aguardar (0.1) segundos
enquanto <[ArmMotor v] girando?>
conduzir [frente v] por (20) [mm v] ▶
fim
girar [ClawMotor v] [aberto v] por (180) [graus v] ▶

velocidade do motor#

O bloco de relatório de velocidade do motor indica a velocidade de rotação do motor, em percentagem, de -100% a 100%.

(velocidade de [ArmMotor v] em [% v] :: custom-motion)

Parâmetros

Descrição

motor

O motor que deve reportar a velocidade é: ArmMotor ou ClawMotor.

unidade

A unidade de medida para reportar a velocidade do motor é: %.

Exemplo

quando iniciar
[Show Arm Motor velocity while raising.]
definir velocidade de [ArmMotor v] para [100] [% v]
girar [ArmMotor v] para a posição (800) [graus v] ◀ e não aguardar
aguardar (0.2) segundos
imprimir (velocidade de [ArmMotor v] em [% v] :: custom-motion) na tela ◀ e mover cursor para a próxima linha

Visão de IA#

Ações#

obter dados do objeto#

O bloco obter dados do objeto filtra os dados do quadro do sensor de visão de IA para uma única assinatura — uma descrição guardada de algo que o sensor pode reconhecer, como um elemento do jogo no campo.

O conjunto de dados armazena os objetos ordenados do maior para o mais pequeno por largura, começando no índice 0. As propriedades de cada objeto podem ser acedidas utilizando o bloco Propriedade do objeto AI Vision. Um conjunto de dados vazio é devolvido se não for detetado nenhum objeto correspondente.

O bloco de pilha Obter dados do objeto.#
obter dados de [Classificações de IA v] de [AIVision v]

Parâmetro

Descrição

assinatura

Filtra o conjunto de dados para incluir apenas os dados da assinatura fornecida. As subscrições disponíveis são:

  • Classificações de IA - Deteta elementos dos jogos RedBluePin, BlueYellowPin, RedYellowPin, YellowPin e Cup.
  • AprilTags - Deteta os IDs AprilTag encontrados no campo.

Exemplo

quando iniciar
[Raise the Arm, drive to the Goal, release the Pin.]
girar [ArmMotor v] [subir v] por (300) [graus v] ▶
conduzir [frente v] por (10) [polegadas v] ▶
girar [ClawMotor v] [aberto v] por (180) [graus v] ▶
virar [esquerda v] por (70) graus ▶
[Turn to face the Pin.]
definir velocidade de giro para (30) [% v]
para sempre
obter dados de [Classificações de IA v] de [AIVision v]
se <objeto de [AIVision v] existe?> então
if <(objeto de [AIVision v] [centroX v]) < (140)> then
virar [esquerda v]
else if <([AIVision v] object [centerX v]) > (180)> then
virar [direita v]
senão
parar de conduzir
interromper
fim
fim
fim

Configurações#

definir item de objeto#

O bloco set object item define qual o item do conjunto de dados que deve ser utilizado.

O bloco de pilha de itens de objeto Set AI Vision.#
definir item de objeto de [AIVision v] para [1]

Parâmetros

Descrição

artigo

O número do item no conjunto de dados a utilizar.

Exemplo

quando iniciar
[Raise the Arm, drive to the Goal, release the Pin.]
girar [ArmMotor v] [subir v] por (300) [graus v] ▶
conduzir [frente v] por (10) [polegadas v] ▶
girar [ClawMotor v] [aberto v] por (180) [graus v] ▶
virar [esquerda v] por (70) graus ▶
obter dados de [Classificações de IA v] de [AIVision v]
[Check if any AI Classifications were detected in the last snapshot.]
se <objeto de [AIVision v] existe?> então
[If any AI Classification is detected, check if any of them are a specific game element.]
se <objeto de [AIVision v] é [RedBluePin v]?> então
imprimir [RedBluePin detected.] ▶
senão
imprimir [No RedBluePin detected.] ▶
fim
fim

Valores#

objeto existe#

O bloco object exists devolve um valor booleano indicando se foi detetado algum objeto no conjunto de dados.

  • Verdadeiro – O conjunto de dados inclui um objeto detetado.

  • Falso – O conjunto de dados não inclui nenhum objeto detetado.

O objeto AI Vision existe no bloco booleano.#
<objeto de [AIVision v] existe?>

Parâmetros

Descrição

Este bloco não possui parâmetros.

Exemplo

quando iniciar
[Raise the Arm, drive to the Goal, release the Pin.]
girar [ArmMotor v] [subir v] por (300) [graus v] ▶
conduzir [frente v] por (10) [polegadas v] ▶
girar [ClawMotor v] [aberto v] por (180) [graus v] ▶
virar [esquerda v] por (70) graus ▶
obter dados de [Classificações de IA v] de [AIVision v]
[Check if any AI Classifications were detected in the last snapshot.]
se <objeto de [AIVision v] existe?> então
imprimir (contagem de objetos de [AIVision v]) ◀ e mover cursor para a próxima linha
fim

objeto é#

O bloco object is devolve um valor booleano indicando se um objeto detetado corresponde a uma classificação específica.

  • Verdadeiro – O item no conjunto de dados é o objeto específico.

  • Falso – O item no conjunto de dados não é o objeto específico.

O objeto IA Vision é um bloco booleano.#
<objeto de [AIVision v] é [RedBluePin v]?>

Parâmetro

Descrição

objeto

Com que objeto comparar o artigo:

  • Alfinete VermelhoAzul
  • Alfinete AzulAmarelo
  • Alfinete VermelhoAmarelo
  • Alfinete Amarelo
  • Chávena

Exemplo

quando iniciar
[Raise the Arm, drive to the Goal, release the Pin.]
girar [ArmMotor v] [subir v] por (300) [graus v] ▶
conduzir [frente v] por (10) [polegadas v] ▶
girar [ClawMotor v] [aberto v] por (180) [graus v] ▶
virar [esquerda v] por (70) graus ▶
obter dados de [Classificações de IA v] de [AIVision v]
se <objeto de [AIVision v] existe?> então
se <objeto de [AIVision v] é [RedBluePin v]?> então
imprimir [RedBluePin detected.] ▶
senão
imprimir [No RedBluePin detected.] ▶
fim
fim

objeto é AprilTag#

O bloco object is AprilTag devolve um valor booleano indicando se o objeto detetado é um AprilTag que corresponde a um ID específico.

  • Verdadeiro – O objeto detetado é um AprilTag com o ID fornecido.

  • Falso – O objeto detetado não é um AprilTag com o ID fornecido.

O objeto é o bloco booleano AprilTag.#
<objeto de [AIVision v] é AprilTag [0]?>

Parâmetro

Descrição

ID da etiqueta de abril

O número de identificação a comparar com o AprilTag detectado.

Exemplo

quando iniciar
[Report if AprilTag 3 is detected.]
obter dados de [AprilTags v] de [AIVision v]
se <objeto de [AIVision v] existe?> então
se <objeto de [AIVision v] é AprilTag [3]?> então
imprimir [That is 3!] ▶
senão
imprimir [That isn't 3!] ▶
fim
fim

contagem de objetos#

O bloco contagem de objetos devolve o número de objetos detetados no conjunto de dados como um número inteiro.

O bloco de pilha de itens de objeto Set AI Vision.#
(contagem de objetos de [AIVision])

Parâmetros

Descrição

Este bloco não possui parâmetros.

Exemplo

quando iniciar
[Raise the Arm, drive to the Goal, release the Pin.]
girar [ArmMotor v] [subir v] por (300) [graus v] ▶
conduzir [frente v] por (10) [polegadas v] ▶
girar [ClawMotor v] [aberto v] por (180) [graus v] ▶
virar [esquerda v] por (70) graus ▶
obter dados de [Classificações de IA v] de [AIVision v]
se <objeto de [AIVision v] existe?> então
imprimir (contagem de objetos de [AIVision v]) ◀ e mover cursor para a próxima linha
fim

propriedade do objeto#

Existem seis propriedades que são incluídas em cada objeto (apresentado abaixo) armazenado após a utilização do bloco obter dados do objeto.

O bloco de relatório de propriedades de objetos do AI Vision.#
(objeto de [AIVision v] [largura v])

Todos os valores de propriedade descrevem a posição e o tamanho do objeto detetado no campo de visão do sensor de IA no momento em que o bloco obter dados do objeto foi utilizado. Estes valores são medidos em pixéis, com base na resolução de 320 por 240 pixéis do sensor.

Parâmetro

Descrição

propriedade

Qual a propriedade do objeto detetado a utilizar:

largura#

A propriedade largura indica a largura do objeto detetado em pixéis, como por exemplo um número inteiro de 1 a 320.

O bloco de pilha de propriedades do objeto AI Vision com o seu parâmetro definido como largura.#
(objeto de [AIVision v] [largura v])

Exemplo

quando iniciar
[Raise the Arm, drive to the Goal, release the Pin.]
girar [ArmMotor v] [subir v] por (300) [graus v] ▶
conduzir [frente v] por (10) [polegadas v] ▶
girar [ClawMotor v] [aberto v] por (180) [graus v] ▶
virar [esquerda v] por (70) graus ▶
[Approach the next Cup and Pin.]
definir velocidade de condução para (30) [% v]
para sempre
obter dados de [Classificações de IA v] de [AIVision v]
se <objeto de [AIVision v] existe?> então
if <([AIVision v] object [width v]) > (140)> then
parar de conduzir
interromper
senão
conduzir [frente v]
fim
fim
fim
altura#

A propriedade altura indica a altura do objeto detetado em pixéis, como por exemplo um número inteiro de 1 a 240.

O bloco de pilha de propriedades do objeto AI Vision com o seu parâmetro definido como altura.#
(objeto de [AIVision v] [altura v])

Exemplo

quando iniciar
[Raise the Arm, drive to the Goal, release the Pin.]
girar [ArmMotor v] [subir v] por (300) [graus v] ▶
conduzir [frente v] por (10) [polegadas v] ▶
girar [ClawMotor v] [aberto v] por (180) [graus v] ▶
virar [esquerda v] por (70) graus ▶
[Approach the next Cup and Pin.]
definir velocidade de condução para (30) [% v]
para sempre
obter dados de [Classificações de IA v] de [AIVision v]
se <objeto de [AIVision v] existe?> então
if <([AIVision v] object [height v]) > (200)> then
parar de conduzir
interromper
senão
conduzir [frente v]
fim
fim
fim
centroX#

A propriedade centerX indica a coordenada x do centro do objeto detetado em pixéis, como um número inteiro de 0 a 320.

O bloco de pilha de propriedades do objeto AI Vision com o seu parâmetro definido como centerX.#
(objeto de [AIVision v] [centroX v])

Exemplo

quando iniciar
[Raise the Arm, drive to the Goal, release the Pin.]
girar [ArmMotor v] [subir v] por (300) [graus v] ▶
conduzir [frente v] por (10) [polegadas v] ▶
girar [ClawMotor v] [aberto v] por (180) [graus v] ▶
virar [esquerda v] por (70) graus ▶
[Turn and approach the next Cup and Pin.]
definir velocidade de giro para (30) [% v]
para sempre
obter dados de [Classificações de IA v] de [AIVision v]
se <objeto de [AIVision v] existe?> então
if <(objeto de [AIVision v] [centroX v]) < (140)> then
virar [esquerda v] por (5) graus ▶
senão
conduzir [frente v] por (25) [polegadas v] ▶
interromper
fim
fim
fim
centroY#

A propriedade centerY reporta a coordenada y do centro do objeto detetado em pixéis, como um número inteiro de 0 a 240.

O bloco de pilha de propriedades do objeto AI Vision com o seu parâmetro definido como centerY.#
(objeto de [AIVision v] [centroY v])

Exemplo

quando iniciar
[Raise the Arm, drive to the Goal, release the Pin.]
girar [ArmMotor v] [subir v] por (300) [graus v] ▶
conduzir [frente v] por (10) [polegadas v] ▶
girar [ClawMotor v] [aberto v] por (180) [graus v] ▶
virar [esquerda v] por (70) graus ▶
[Approach the next Cup and Pin.]
definir velocidade de condução para (30) [% v]
para sempre
obter dados de [Classificações de IA v] de [AIVision v]
se <objeto de [AIVision v] existe?> então
if <([AIVision v] object [centerY v]) > (230)> then
parar de conduzir
interromper
senão
conduzir [frente v]
fim
fim
fim
origemX#

A propriedade originX reporta a coordenada x do canto superior esquerdo da caixa delimitadora do objeto detetado, em pixéis, como um número inteiro de 0 a 320.

O bloco de pilha de propriedades do objeto AI Vision com o seu parâmetro definido como originX.#
(objeto de [AIVision v] [origemX v])

Exemplo

quando iniciar
[Raise the Arm, drive to the Goal, release the Pin.]
girar [ArmMotor v] [subir v] por (300) [graus v] ▶
conduzir [frente v] por (10) [polegadas v] ▶
girar [ClawMotor v] [aberto v] por (180) [graus v] ▶
virar [esquerda v] por (70) graus ▶
[Turn and approach the next Cup and Pin.]
definir velocidade de giro para (30) [% v]
para sempre
obter dados de [Classificações de IA v] de [AIVision v]
se <objeto de [AIVision v] existe?> então
if <(objeto de [AIVision v] [origemX v]) < (100)> then
virar [esquerda v] por (5) graus ▶
senão
conduzir [frente v] por (25) [polegadas v] ▶
interromper
fim
fim
fim
origemY#

A propriedade originY reporta a coordenada y do canto superior esquerdo da caixa delimitadora do objeto detetado, em pixéis, como um número inteiro de 0 a 240.

O bloco de pilha de propriedades do objeto AI Vision com o seu parâmetro definido como originY.#
(objeto de [AIVision v] [origemY v])

Exemplo

quando iniciar
[Raise the Arm, drive to the Goal, release the Pin.]
girar [ArmMotor v] [subir v] por (300) [graus v] ▶
conduzir [frente v] por (10) [polegadas v] ▶
girar [ClawMotor v] [aberto v] por (180) [graus v] ▶
virar [esquerda v] por (70) graus ▶
[Approach the next Cup and Pin.]
definir velocidade de condução para (30) [% v]
para sempre
obter dados de [Classificações de IA v] de [AIVision v]
se <objeto de [AIVision v] existe?> então
if <([AIVision v] object [originY v]) > (140)> then
parar de conduzir
interromper
senão
conduzir [frente v]
fim
fim
fim

Sensação#

Distância#

Distância encontrada um objeto#

O bloco booleano Distância a que um objeto foi encontrado informa se o sensor de distância detetou um objeto a menos de 2000 mm.

  • Verdadeiro — O sensor de distância detetou um objeto.

  • Falso — O sensor de distância não detetou qualquer objeto.

<[FrontDistance v] encontrou um objeto?>

Parâmetros

Descrição

sensor de distância

O sensor de distância a utilizar. Escolha entre os sensores de distância disponíveis para o Flex.

Exemplo

quando iniciar :: hat events
[Turn until something is detected, then release the Pin.]
virar [direita v]
aguardar até <[FrontDistance v] encontrou um objeto?>
parar de conduzir
girar [ArmMotor v] [subir v] por (300) [graus v] ▶
conduzir [frente v] por (10) [polegadas v] ▶
girar [ClawMotor v] [aberto v] por (180) [graus v] ▶

distância do objeto#

O bloco de relatório de distância do objeto informa a distância entre o sensor de distância e o objeto detetado mais próximo.

(distância de [FrontDistance v] em [mm v])

Parâmetros

Descrição

sensor de distância

O sensor de distância a utilizar. Escolha entre os sensores de distância disponíveis para o Flex.

unidade

A unidade de distância: mm ou polegadas.

Exemplo

quando iniciar :: hat events
[Drive until 200 mm from the Goal, then release the Pin.]
conduzir [frente v]
aguardar até <(distância de [FrontDistance v] em [mm v]) < (200)>
parar de conduzir
girar [ArmMotor v] [subir v] por (300) [graus v] ▶
conduzir [frente v] por (10) [polegadas v] ▶
girar [ClawMotor v] [aberto v] por (180) [graus v] ▶

GPS#

posição GPS#

O bloco Posição GPS devolve o deslocamento posicional do ponto de referência de rotação do robô em relação ao centro do campo, utilizando o sensor GPS (Game Positioning System™).

(posição de [GPS v] [X v] em [mm v])

Parâmetros

Descrição

eixo

Qual o eixo a reportar:

  • X
  • Y

unidades

A unidade que representa a posição é: mm ou polegadas.

Exemplo

quando iniciar :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
girar [ArmMotor v] [subir v] por (300) [graus v] ▶
conduzir [frente v]
wait until <([GPS v] position [X v] in [mm v]) > (-1370)>
parar de conduzir
girar [ClawMotor v] [aberto v] por (180) [graus v] ▶

Direção GPS#

O bloco Direção GPS devolve a direção para a qual o robô está atualmente virado, com base nas leituras do sensor GPS (Game Positioning System™) do VEX GPS Field Code, de 0,00 a 359,99 graus.

(direção de [GPS v] em graus)

Parâmetros

Descrição

Este bloco não possui parâmetros.

Exemplo

quando iniciar :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
girar [ArmMotor v] [subir v] por (300) [graus v] ▶
conduzir [frente v] por (10) [polegadas v] ▶
girar [ClawMotor v] [aberto v] por (180) [graus v] ▶
[Turn left to face the Neutral Goal.]
definir velocidade de giro para (30) [% v]
virar [esquerda v]
aguardar até <(direção de [GPS v] em graus) < (18)>
parar de conduzir