Blocos específicos para robôs#

Introdução#

O robô herói, Flop, inclui um motor de admissão, um motor de braço e um sensor de visão de IA IQ.

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

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

Movimento – Movimente e acompanhe os motores do robô.

Visão com IA - Capte e analise objetos utilizando o sensor de visão com IA IQ.

  • Ações

    • obter dados do objeto - Captura dados para uma assinatura específica, como uma classificação de IA detetada.

  • Configurações

  • Valores

Os exemplos nesta página utilizam a posição inicial padrão do Playground.

Movimento#

O Flop utiliza o motor de entrada para recolher e ejetar os elementos do jogo. O motor do braço levanta e baixa o braço.

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

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 [IntakeMotor v] [ingestão v]

Parâmetros

Descrição

motor

O motor a rodar: IntakeMotor ou ArmMotor.

direção

Sentido de rotação do motor:

  • Motor de Admissão — admissão ou saída
  • Motor do Braço — para cima ou para baixo

Exemplo

quando iniciar
[Score a Bean Bag in a Blue Goal.]
virar [esquerda v] por (90) graus ▶
conduzir [frente v] por (35) [polegadas v] ▶
virar [direita v] por (90) graus ▶
girar [ArmMotor v] [subir v] por (1) [voltas v] ▶
conduzir [frente v] por (40) [polegadas v] ▶
girar [IntakeMotor v] [saída 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 (500) [graus v] ▶

Parâmetros

Descrição

motor

O motor a rodar: IntakeMotor ou ArmMotor.

direção

Sentido de rotação do motor:

  • Motor de Admissão — admissão ou saída
  • Motor do Braço — para cima ou para baixo

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
[Score a Bean Bag in a Blue Goal.]
virar [esquerda v] por (90) graus ▶
conduzir [frente v] por (35) [polegadas v] ▶
virar [direita v] por (90) graus ▶
girar [ArmMotor v] [subir v] por (1) [voltas v] ▶
conduzir [frente v] por (40) [polegadas v] ▶
girar [IntakeMotor v] [saída 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 é igual a 360 graus. No início de um projeto, a posição do motor é definida para 0 graus. 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 (500) [graus v] ▶

Parâmetros

Descrição

motor

O motor a rodar: IntakeMotor ou ArmMotor.

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
[Score a Bean Bag in a Blue Goal.]
virar [esquerda v] por (90) graus ▶
conduzir [frente v] por (35) [polegadas v] ▶
virar [direita v] por (90) graus ▶
girar [ArmMotor v] para a posição (1) [voltas v] ▶
conduzir [frente v] por (40) [polegadas v] ▶
girar [IntakeMotor v] [saída v]

motor de paragem#

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

parar [IntakeMotor v]

Parâmetros

Descrição

motor

O motor a parar: IntakeMotor ou ArmMotor.

Exemplo

quando iniciar
[Score a Bean Bag in a Blue Goal.]
virar [esquerda v] por (90) graus ▶
conduzir [frente v] por (35) [polegadas v] ▶
virar [direita v] por (90) graus ▶
girar [ArmMotor v] [subir v] por (1) [voltas v] ▶
conduzir [frente v] por (40) [polegadas v] ▶
girar [IntakeMotor v] [saída v]
aguardar (1) segundos
parar [IntakeMotor 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 [IntakeMotor v] para [50] [% v]

Parâmetros

Descrição

motor

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

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
[Score a Bean Bag in a Blue Goal.]
virar [esquerda v] por (90) graus ▶
conduzir [frente v] por (35) [polegadas v] ▶
virar [direita v] por (90) graus ▶
girar [ArmMotor v] [subir v] por (1) [voltas v] ▶
conduzir [frente v] por (40) [polegadas v] ▶
definir velocidade de [IntakeMotor v] para [100] [% v]
girar [IntakeMotor v] [saída 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 de: IntakeMotor ou ArmMotor.

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 Bean Bag in a Blue Goal.]
virar [esquerda v] por (90) graus ▶
conduzir [frente v] por (35) [polegadas v] ▶
virar [direita v] por (90) graus ▶
definir tempo limite de [ArmMotor v] para [2] segundos
girar [ArmMotor v] [subir v] por (1) [voltas v] ▶
conduzir [frente v] por (40) [polegadas v] ▶
girar [IntakeMotor v] [saída 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 motor é definida para 0 graus. Se o motor rodar uma volta completa para a frente, a posição será de 360 ​​graus ou 1 volta. Se o motor rodar no sentido oposto, a posição será negativa.

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

Parâmetros

Descrição

motor

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

unidade

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

Exemplo

quando iniciar
[Score a Bean Bag in a Blue Goal.]
virar [esquerda v] por (90) graus ▶
conduzir [frente v] por (35) [polegadas v] ▶
virar [direita v] por (90) graus ▶
enquanto <(posição de [ArmMotor v] em [graus v]) [math_less_than v] [360]>
girar [ArmMotor v] [subir v]
aguardar (0.002) segundos
fim
parar [ArmMotor v]
conduzir [frente v] por (40) [polegadas v] ▶
girar [IntakeMotor v] [saída 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: IntakeMotor ou ArmMotor.

posição

O valor da posição a definir. Graus utilizam números inteiros. As voltas podem utilizar números inteiros ou decimais.

unidade

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

Exemplo

quando iniciar
[Score a Bean Bag in a Blue Goal.]
virar [esquerda v] por (90) graus ▶
conduzir [frente v] por (35) [polegadas v] ▶
virar [direita v] por (90) graus ▶
definir posição de [ArmMotor v] para [0] [graus v]
girar [ArmMotor v] [subir v] por (1) [voltas v] ▶
conduzir [frente v] por (40) [polegadas v] ▶
girar [IntakeMotor v] [saída 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 deve informar se terminou de se mover: IntakeMotor ou ArmMotor.

Exemplo

quando iniciar
[Score a Bean Bag in a Blue Goal.]
virar [esquerda v] por (90) graus ▶
conduzir [frente v] por (35) [polegadas v] ▶
virar [direita v] por (90) graus ▶
girar [ArmMotor v] para a posição (1) [voltas v] ◀ e não aguardar
aguardar até <[ArmMotor v] concluído?>
conduzir [frente v] por (40) [polegadas v] ▶
girar [IntakeMotor v] [saída v]

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.

<[IntakeMotor v] girando?>

Parâmetros

Descrição

motor

O motor que deve informar se está a rodar: IntakeMotor ou ArmMotor.

Exemplo

quando iniciar
[Score a Bean Bag in a Blue Goal.]
virar [esquerda v] por (90) graus ▶
conduzir [frente v] por (35) [polegadas v] ▶
virar [direita v] por (90) graus ▶
girar [ArmMotor v] [subir v] por (1) [voltas v] ▶
conduzir [frente v] por (40) [polegadas v] ▶
girar [IntakeMotor v] [saída v]
aguardar até <não <[IntakeMotor v] girando?>>
parar [IntakeMotor 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 [IntakeMotor v] em [% v] :: custom-motion)

Parâmetros

Descrição

motor

O motor que deve reportar a velocidade de: IntakeMotor ou ArmMotor.

unidade

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

Exemplo

quando iniciar
[Score a Bean Bag in a Blue Goal.]
virar [esquerda v] por (90) graus ▶
conduzir [frente v] por (35) [polegadas v] ▶
virar [direita v] por (90) graus ▶
girar [ArmMotor v] [subir v] por (1) [voltas v] ▶
conduzir [frente v] por (40) [polegadas v] ▶
girar [IntakeMotor v] [saída v]
aguardar [0.2] segundos
imprimir (velocidade de [IntakeMotor v] em [% v] :: custom-motion) ▶

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 IQ AI 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. Um conjunto de dados vazio é devolvido se não for detetado nenhum objeto correspondente.

O bloco de pilha para 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 assinaturas disponíveis são:

  • Classificações de IA — Deteta o saco de feijão vermelho, o saco de feijão azul e o saco de feijão amarelo.
  • AprilTags — Deteta os IDs AprilTag que se encontram nas laterais das balizas.

Exemplo

quando iniciar :: hat events
[Drop the preloaded Bean Bag.]
girar [IntakeMotor v] [saída v] por (180) [graus v] ▶
virar [esquerda v] por (90) graus ▶
[Find and face the nearest red Bean Bag.]
definir velocidade de giro para (30) [% v]
definir [object_counter v] para [1]
obter dados de [Classificações de IA v] de [AIVision v]
repetir (contagem de objetos de [AIVision v])
definir item de objeto de [AIVision v] para (object_counter)
se <objeto de [AIVision v] é [RedBeanBag v]?> 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
fim
interromper
fim
alterar [object_counter v] por [1]
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 do objeto definido.#
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 :: hat events
[Drop the preloaded Bean Bag.]
girar [IntakeMotor v] [saída v] por (180) [graus v] ▶
virar [esquerda v] por (90) graus ▶
[Find the index of the nearest red Bean Bag.]
definir [object_counter v] para [1]
obter dados de [Classificações de IA v] de [AIVision v]
repetir (contagem de objetos de [AIVision v])
definir item de objeto de [AIVision v] para (object_counter)
se <objeto de [AIVision v] é [RedBeanBag v]?> então
imprimir (juntar [Nearest Red Bean Bag is ] (object_counter)) ▶
interromper
senão
alterar [object_counter v] por [1]
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 :: hat events
[Drop the preloaded Bean Bag.]
girar [IntakeMotor v] [saída v] por (180) [graus v] ▶
virar [esquerda v] por (90) graus ▶
[Turn until a Bean Bag is detected.]
definir velocidade de giro para (30) [% v]
virar [direita v]
repetir até <objeto de [AIVision v] existe?>
obter dados de [Classificações de IA v] de [AIVision v]
fim
parar de conduzir

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 é um bloco booleano.#
<objeto de [AIVision v] é [RedBeanBag v]?>

Parâmetro

Descrição

objeto

Que objeto utilizar para comparar o item: RedBeanBag, BlueBeanBag ou YellowBeanBag?

Exemplo

quando iniciar :: hat events
[Drop the preloaded Bean Bag.]
girar [IntakeMotor v] [saída v] por (180) [graus v] ▶
virar [esquerda v] por (90) graus ▶
[Find the index of the nearest red Bean Bag.]
definir [object_counter v] para [1]
obter dados de [Classificações de IA v] de [AIVision v]
repetir (contagem de objetos de [AIVision v])
definir item de objeto de [AIVision v] para (object_counter)
se <objeto de [AIVision v] é [RedBeanBag v]?> então
imprimir (juntar [Nearest Red Bean Bag is ] (object_counter)) ▶
interromper
senão
alterar [object_counter v] por [1]
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 :: hat events
[Stop when you see the Red Goal!]
definir velocidade de giro para (30) [% v]
virar [direita v]
repetir até <objeto de [AIVision v] é AprilTag [1]?>
obter dados de [AprilTags v] de [AIVision v]
fim
parar de conduzir
imprimir [Found the Red Goal!] ▶

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 relatório de contagem de objetos.#
(contagem de objetos de [AIVision v])

Parâmetros

Descrição

Este bloco não possui parâmetros.

Exemplo

quando iniciar :: hat events
[Drop the preloaded Bean Bag.]
girar [IntakeMotor v] [saída v] por (180) [graus v] ▶
virar [esquerda v] por (90) graus ▶
[Print how many Bean Bags are detected.]
obter dados de [Classificações de IA v] de [AIVision v]
imprimir (contagem de objetos de [AIVision v]) ▶

propriedade do objeto#

Existem seis propriedades que são incluídas em cada objeto 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 IQ AI Vision 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, altura, centroX, centroY, origemX ou origemY?

largura#

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

Bloco de relatório de propriedades de objetos do AI Vision com a largura selecionada.#
(objeto de [AIVision v] [largura v])

Exemplo

quando iniciar
[Drop the preloaded Bean Bag.]
girar [IntakeMotor v] [saída v] por (180) [graus v] ▶
virar [esquerda v] por (90) graus ▶
[Approach the Bean Bag, then pick it up.]
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
definir item de objeto de [AIVision v] para [1]
se <objeto de [AIVision v] é [RedBeanBag v]?> então
if <([AIVision v] object [width v]) > (180)> then
conduzir [frente v] por [50] [mm v] ▶
girar [IntakeMotor v] [ingestão v] por [90] [graus v] ▶
interromper
senão
conduzir [frente v]
fim
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.

Bloco de relatório de propriedades de objetos do AI Vision com a altura selecionada.#
(objeto de [AIVision v] [altura v])

Exemplo

quando iniciar
[Drop the preloaded Bean Bag.]
girar [IntakeMotor v] [saída v] por (180) [graus v] ▶
virar [esquerda v] por (90) graus ▶
[Approach the Bean Bag, then pick it up.]
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
definir item de objeto de [AIVision v] para [1]
se <objeto de [AIVision v] é [RedBeanBag v]?> então
if <([AIVision v] object [height v]) > (100)> then
conduzir [frente v] por [50] [mm v] ▶
girar [IntakeMotor v] [ingestão v] por [90] [graus v] ▶
interromper
senão
conduzir [frente v]
fim
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 relatório de propriedades de objetos do AI Vision com centerX selecionado.#
(objeto de [AIVision v] [centroX v])

Exemplo

quando iniciar
[Drop the preloaded Bean Bag.]
girar [IntakeMotor v] [saída v] por (180) [graus v] ▶
virar [esquerda v] por (90) graus ▶
[Steer to keep the Bean Bag centered while approaching.]
definir velocidade de giro para (30) [% v]
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
definir item de objeto de [AIVision v] para [1]
se <objeto de [AIVision v] é [RedBeanBag v]?> então
if <(objeto de [AIVision v] [centroX v]) < (140)> then
virar [esquerda v] por (5) graus ▶
senão
conduzir [frente v] por (150) [mm v] ▶
girar [IntakeMotor v] [ingestão v]
interromper
fim
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 relatório de propriedades de objeto do AI Vision com centerY selecionado.#
(objeto de [AIVision v] [centroY v])

Exemplo

quando iniciar
[Drop the preloaded Bean Bag.]
girar [IntakeMotor v] [saída v] por (180) [graus v] ▶
virar [esquerda v] por (90) graus ▶
[Print the y-position of the Bean Bag.]
obter dados de [Classificações de IA v] de [AIVision v]
se <objeto de [AIVision v] existe?> então
definir item de objeto de [AIVision v] para [1]
se <objeto de [AIVision v] é [RedBeanBag v]?> então
imprimir (objeto de [AIVision v] [centroY v]) ▶
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 relatório de propriedades de objeto do AI Vision com originX selecionado.#
(objeto de [AIVision v] [origemX v])

Exemplo

quando iniciar
[Drop the preloaded Bean Bag.]
girar [IntakeMotor v] [saída v] por (180) [graus v] ▶
virar [esquerda v] por (90) graus ▶
[Steer to keep the left edge centered.]
definir velocidade de giro para (30) [% v]
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
definir item de objeto de [AIVision v] para [1]
se <objeto de [AIVision v] é [RedBeanBag v]?> então
if <(objeto de [AIVision v] [origemX v]) < (100)> then
virar [esquerda v] por (5) graus ▶
senão
conduzir [frente v] por (150) [mm v] ▶
girar [IntakeMotor v] [ingestão v]
interromper
fim
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 relatório de propriedades de objetos do AI Vision com a origem Y selecionada.#
(objeto de [AIVision v] [origemY v])

Exemplo

quando iniciar
[Drop the preloaded Bean Bag.]
girar [IntakeMotor v] [saída v] por (180) [graus v] ▶
virar [esquerda v] por (90) graus ▶
[Print the y-position of the Bean Bag's top edge.]
obter dados de [Classificações de IA v] de [AIVision v]
se <objeto de [AIVision v] existe?> então
definir item de objeto de [AIVision v] para [1]
se <objeto de [AIVision v] é [RedBeanBag v]?> então
imprimir (objeto de [AIVision v] [origemY v]) ▶
fim
fim