Blocos específicos para robôs#

Introdução#

O Hero Bot, Dex, inclui duas opções de motor, um sensor de visão com inteligência artificial, um sensor ótico e um sensor de sistema de posicionamento para jogos (GPS).

Todos os blocos VR padrão do VEXcode estão disponíveis para utilização no V5 25-26 Push Back 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ô.

  • Óptico

  • GPS

    • Posição GPS – Retorna a posição X ou Y do sensor GPS.

    • Direção GPS – Retorna a direção para a qual o robô está atualmente virado.

Os exemplos nesta página utilizam a posição inicial padrão 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
[Drive forward, then stop.]
conduzir [frente v]
aguardar (2) segundos
parar de conduzir

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
[Drive forward.]
conduzir [frente v] por (500) [mm 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
[Turn right, then stop.]
virar [direita v]
aguardar (2) segundos
parar de conduzir

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
[Turn left, then turn around to the right.]
virar [esquerda v] por (90) graus ▶
virar [direita v] por (180) graus ▶

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
[Turn to face the cardinal directions.]
virar para a direção (90) graus ▶
aguardar (2) segundos
virar para a direção (180) graus ▶
aguardar (2) segundos
virar para a direção (270) graus ▶
aguardar (2) segundos
virar para a direção (0) graus ▶
aguardar (2) segundos

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 através do 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
[Turn left, then spin in a circle clockwise and face right.]
virar para a rotação (-90) graus ▶
aguardar (2) segundos
virar para a rotação (450) graus ▶

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
[Drive forward, then stop.]
conduzir [frente v]
aguardar [4] segundos
parar de conduzir

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
[Drive forward at the default velocity.]
conduzir [frente v] por (100) [mm v] ▶
aguardar (1) segundos
[Move slower.]
definir velocidade de condução para (20) [% v]
conduzir [frente v] por (100) [mm v] ▶
aguardar (1) segundos
[Move faster.]
definir velocidade de condução para (100) [% v]
conduzir [frente v] por (100) [mm v] ▶
aguardar (1) segundos

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 at default velocity.]
virar [direita v] por (100) graus ▶
aguardar (1) segundos
[Turn slower.]
definir velocidade de giro para (20)%
virar [direita v] por (100) graus ▶
aguardar (1) segundos
[Turn faster.]
definir velocidade de giro para (100)%
virar [direita v] por (100) graus ▶
aguardar (1) segundos

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
[Turn to the left.]
definir direção de condução para (90) 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
[Spin counterclockwise two times.]
definir rotação de condução para (720) 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 acionado, limita o tempo de condução a 1 segundo e depois roda 90 graus.#
quando iniciar :: hat events
[Drive forward for 1 second, then turn.]
definir tempo limite de condução para (1) segundos
conduzir [frente v] por (25) [polegadas v] ▶
virar [direita v] por (90) 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
[Start spinning when the drive is complete.]
conduzir [frente v] por (200) [mm v] ◀ e não aguardar
aguardar até <condução concluída?>
virar [direita v] por (360) graus ▶

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
[Print that the robot is moving while it is still driving.]
conduzir [frente v] por (200) [mm v] ◀ e não aguardar
enquanto <condução em movimento?>
imprimir [Still Moving...] ▶
aguardar (0.1) segundos
limpar tela
fim
imprimir [Done!] ▶

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
[Display the heading after turning.]
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
[Display the rotation after turning.]
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
[Display the velocity after driving.]
conduzir [frente v] por (200) [mm v] ▶
imprimir (velocidade de condução em [% v]) na tela ◀ e mover cursor para a próxima linha

Movimento#

Dex utiliza o motor de entrada para puxar os blocos para dentro do robô. O motor da passadeira move os blocos da entrada para o topo do robô, para que possam ser empurrados em direção a um objetivo.

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

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 [ConveyorMotor v] [subir v]

Parâmetros

Descrição

motor

O motor a accionar: ConveyorMotor ou IntakeMotor.

direção

Sentido de rotação do motor:

  • Motor do rasto — para cima ou para baixo
  • Motor de entrada — entrada ou saída

Exemplo

quando iniciar
[Pick up a second Block.]
girar [ConveyorMotor v] [subir v] por [200] [graus v] ▶
girar [IntakeMotor v] [ingestão v]
conduzir [frente v] por [350] [mm 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 [ConveyorMotor v] [subir v] por (90) [graus v] ▶

Parâmetros

Descrição

motor

O motor a accionar: ConveyorMotor ou IntakeMotor.

direção

Sentido de rotação do motor:

  • Motor do rasto — para cima ou para baixo
  • Motor de entrada — entrada ou saída

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
[Pick up a second Block.]
girar [ConveyorMotor v] [subir v] por [200] [graus v] ▶
girar [IntakeMotor v] [ingestão v]
conduzir [frente v] por [350] [mm 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 [ConveyorMotor v] para a posição (90) [graus v] ▶

Parâmetros

Descrição

motor

O motor a accionar: ConveyorMotor ou IntakeMotor.

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
[Pick up a second Block.]
girar [ConveyorMotor v] para a posição [200] [graus v] ▶
girar [IntakeMotor v] [ingestão v]
conduzir [frente v] por [350] [mm v] ▶

motor de paragem#

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

parar [ConveyorMotor v]

Parâmetros

Descrição

motor

O motor a parar: ConveyorMotor ou IntakeMotor.

Exemplo

quando iniciar
[Pick up a second Block.]
girar [ConveyorMotor v] [subir v] por [200] [graus v] ▶
girar [IntakeMotor v] [ingestão v]
conduzir [frente v] por [350] [mm v] ▶
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 [ConveyorMotor v] para [50] [% v]

Parâmetros

Descrição

motor

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

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
[Pick up a second Block.]
definir velocidade de [ConveyorMotor v] para [100] [% v]
girar [ConveyorMotor v] [subir v] por [200] [graus v] ▶
girar [IntakeMotor v] [ingestão v]
conduzir [frente v] por [400] [mm 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 [ConveyorMotor v] para [1] segundos

Parâmetros

Descrição

motor

O motor para definir o tempo limite de: ConveyorMotor ou IntakeMotor.

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
[Pick up a second Block.]
definir tempo limite de [ConveyorMotor v] para [0.5] segundos
girar [ConveyorMotor v] para a posição [1000] [graus v] ▶
girar [IntakeMotor v] [ingestão v]
conduzir [frente v] por [400] [mm 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 [ConveyorMotor v] em [graus v])

Parâmetros

Descrição

motor

O motor que deve reportar a posição de: ConveyorMotor ou IntakeMotor.

unidade

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

Exemplo

quando iniciar
[Pick up a second Block.]
enquanto <(posição de [ConveyorMotor v] em [graus v]) [math_less_than v] [200]>
girar [ConveyorMotor v] [subir v]
fim
parar [ConveyorMotor v]
girar [IntakeMotor v] [ingestão v]
conduzir [frente v] por [400] [mm 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 [ConveyorMotor v] para (0) [graus v]

Parâmetros

Descrição

motor

O motor para definir a posição de: Motor de rasto ou Motor de entrada.

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.

Exemplo

quando iniciar
[Pick up a second Block.]
definir posição de [ConveyorMotor v] para [-200] [graus v]
girar [ConveyorMotor v] para a posição [0] [graus v] ▶
girar [IntakeMotor v] [ingestão v]
conduzir [frente v] por [400] [mm 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.

<[ConveyorMotor v] concluído?>

Parâmetros

Descrição

motor

O motor que deve informar se terminou de se mover é: ConveyorMotor ou IntakeMotor.

Exemplo

quando iniciar
[Pick up a second Block.]
girar [ConveyorMotor v] para a posição [300] [graus v] ◀ e não aguardar
conduzir [frente v]
girar [IntakeMotor v] [ingestão v]
aguardar até <[ConveyorMotor v] concluído?>
parar de conduzir
parar [IntakeMotor 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.

<[ConveyorMotor v] girando?>

Parâmetros

Descrição

motor

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

Exemplo

quando iniciar
[Pick up a second Block.]
girar [ConveyorMotor v] para a posição [300] [graus v] ◀ e não aguardar
aguardar [0.1] segundos
enquanto <[ConveyorMotor v] girando?>
conduzir [frente v] por [200] [mm v] ▶
girar [IntakeMotor v] [ingestão 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 [ConveyorMotor v] em [% v] :: custom-motion)

Parâmetros

Descrição

motor

O motor a informar quanto à velocidade é: ConveyorMotor ou IntakeMotor.

unidade

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

Exemplo

quando iniciar
[Pick up a second Block.]
definir velocidade de [ConveyorMotor v] para [100] [% v]
girar [ConveyorMotor v] para a posição [300] [graus v] ◀ e não aguardar
aguardar [0.2] segundos
imprimir (velocidade de [ConveyorMotor v] em [% v] :: custom-motion) ▶
girar [IntakeMotor v] [ingestão v]
conduzir [frente v] por [400] [mm v] ▶

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] da AI Vision

Parâmetro

Descrição

assinatura

Filtra o conjunto de dados para incluir apenas os dados da assinatura fornecida. Assinaturas disponíveis:

  • Classificações de IA - Deteta blocos vermelhos e azuis.

Exemplo

quando iniciar
[If an object is detected, pick it up.]
girar [ConveyorMotor v] [subir v] por [200] [graus v] ▶
para sempre
obter dados de [Classificações de IA v] de [AIVision v]
se <objeto de [AIVision v] existe?> então
girar [IntakeMotor v] [ingestão v]
conduzir [frente v]
aguardar até <[Bumper v] pressionado?>
parar de conduzir
interromper

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 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
[Display what object is farthest away.]
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 (contagem de objetos de [AIVision v])
limpar todas as linhas
se <objeto de [AIVision v] é [BlueBlock v]?> então
imprimir [Blue Block farthest away.] ▶
senão
imprimir [Red Block farthest away.] ▶

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
[If an an object is detected, pick it up.]
girar [ConveyorMotor v] [subir v] por [200] [graus v] ▶
para sempre
obter dados de [Classificações de IA v] de [AIVision v]
se <objeto de [AIVision v] existe?> então
girar [IntakeMotor v] [ingestão v]
conduzir [frente v]
aguardar até <[Bumper v] pressionado?>
parar de conduzir
interromper

objeto é#

O bloco Objeto de Visão de IA é 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] é [BlueBlock v]?>

Parâmetro

Descrição

objeto

Com que objeto comparar o item:

  • BlocoAzul
  • BlocoVermelho

Exemplo

quando iniciar
[Display what object is farthest away.]
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 (contagem de objetos de [AIVision v])
limpar todas as linhas
se <objeto de [AIVision v] é [BlueBlock v]?> então
imprimir [Blue Block farthest away.] ▶
senão
imprimir [Red Block farthest away.] ▶

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 do objeto Set AI Vision.#
(contagem de objetos de [AIVision])

Parâmetros

Descrição

Este bloco não possui parâmetros.

Exemplo

quando iniciar
[Display what object is farthest away.]
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 (contagem de objetos de [AIVision v])
limpar todas as linhas
se <objeto de [AIVision v] é [BlueBlock v]?> então
imprimir [Blue Block farthest away.] ▶
senão
imprimir [Red Block farthest away.] ▶

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
[If an an object is detected, approach and pick it up.]
girar [ConveyorMotor v] [subir v] por [200] [graus v] ▶
para sempre
obter dados de [Classificações de IA v] de [AIVision v]
se <objeto de [AIVision v] existe?> então
se <(objeto de [AIVision v] [largura v]) [math_greater_than v] [65]> então
parar de conduzir
interromper
senão
girar [IntakeMotor v] [ingestão v]
conduzir [frente v]
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
[If an an object is detected, approach and pick it up.]
girar [ConveyorMotor v] [subir v] por [200] [graus v] ▶
para sempre
obter dados de [Classificações de IA v] de [AIVision v]
se <objeto de [AIVision v] existe?> então
se <(objeto de [AIVision v] [altura v]) [math_greater_than v] [55]> então
parar de conduzir
interromper
senão
girar [IntakeMotor v] [ingestão v]
conduzir [frente v]
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
[Pick up a Block from the top left group.]
girar [ConveyorMotor v] [subir v] por [200] [graus v] ▶
virar [esquerda v] por [80] graus ▶
conduzir [frente v] por [100] [mm v] ▶
definir velocidade de giro para [20] [% v]
virar [esquerda v]
para sempre
obter dados de [Classificações de IA v] de [AIVision v]
se <objeto de [AIVision v] existe?> então
se <<[140] [math_less_than v] (objeto de [AIVision v] [centroX v])> e <(objeto de [AIVision v] [centroX v]) [math_less_than v] [180]>> então
girar [IntakeMotor v] [ingestão v]
conduzir [frente v]
aguardar até <[Bumper v] pressionado?>
parar de conduzir
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
[If an an object is detected, approach and pick it up.]
girar [ConveyorMotor v] [subir v] por [200] [graus v] ▶
para sempre
obter dados de [Classificações de IA v] de [AIVision v]
se <objeto de [AIVision v] existe?> então
se <(objeto de [AIVision v] [centroY v]) [math_greater_than v] [140]> então
parar de conduzir
interromper
senão
girar [IntakeMotor v] [ingestão v]
conduzir [frente v]
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
[Pick up a Block from the top left group.]
girar [ConveyorMotor v] [subir v] por [200] [graus v] ▶
virar [esquerda v] por [80] graus ▶
conduzir [frente v] por [100] [mm v] ▶
definir velocidade de giro para [20] [% v]
virar [esquerda v]
para sempre
obter dados de [Classificações de IA v] de [AIVision v]
se <objeto de [AIVision v] existe?> então
se <<[100] [math_less_than v] (objeto de [AIVision v] [origemX v])> e <(objeto de [AIVision v] [origemX v]) [math_less_than v] [140]>> então
girar [IntakeMotor v] [ingestão v]
conduzir [frente v]
aguardar até <[Bumper v] pressionado?>
parar de conduzir
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
[If an an object is detected, approach and pick it up.]
girar [ConveyorMotor v] [subir v] por [200] [graus v] ▶
para sempre
obter dados de [Classificações de IA v] de [AIVision v]
se <objeto de [AIVision v] existe?> então
se <[120] [math_less_than v] (objeto de [AIVision v] [origemY v])> então
parar de conduzir
interromper
senão
girar [IntakeMotor v] [ingestão v]
conduzir [frente v]
fim
fim

Sensação#

Óptico#

O dispositivo ótico encontrou um objeto#

O bloco booleano O sensor ótico detetou um objeto informa se o sensor ótico detetou ou não um objeto dentro do alcance.

  • Verdadeiro — O sensor ótico deteta um objeto.

  • Falso — O sensor ótico não detetou qualquer objeto.

<[Optical v] encontrou um objeto?>

Parâmetros

Descrição

Este bloco não possui parâmetros.

Exemplo

quando iniciar
[Move the preloaded Block to the top of the Conveyor.]
girar [ConveyorMotor v] [subir v]
aguardar até <[Optical v] encontrou um objeto?>
parar [ConveyorMotor v]

O sistema ótico deteta cores.#

O bloco booleano Deteção ótica de cor informa se o sensor ótico detetou uma cor específica, com base no valor de matiz detetado.

  • Verdadeiro – O sensor detetou a cor especificada.

  • Falso – O sensor não detetou a cor especificada.

<[Optical v] detecta [vermelho v]?>

Parâmetros

Descrição

cor

Qual a cor a procurar:

  • vermelho – Um valor de matiz detectado entre 340° e 20°.
  • verde – Um valor de matiz detectado entre os 80° e os 140°.
  • azul – Um valor de matiz detectado entre os 200° e os 240°.
  • amarelo – Um valor de matiz detectado entre os 40° e os 60°.
  • laranja – Um valor de matiz detectado entre os 20° e os 40°.
  • roxo – Um valor de matiz detectado entre 240° e 280°.
  • ciano – Um valor de matiz detectado entre 140° e 200°.

Exemplo

quando iniciar
[Pick up and move a Blue Block to the top of the Conveyor.]
girar [ConveyorMotor v] [subir v] por [200] [graus v] ▶
girar [IntakeMotor v] [ingestão v]
conduzir [frente v] por [360] [mm v] ▶
girar [ConveyorMotor v] [subir v]
aguardar até <[Optical v] detecta [azul v]?>
parar [ConveyorMotor v]

Brilho óptico#

O bloco de relatório Brilho Óptico indica a quantidade de luz reflectida de volta para o sensor óptico, em percentagem, de 0% a 100%.

(brilho de [Optical v] em %)

Parâmetros

Descrição

Este bloco não possui parâmetros.

Exemplo

quando iniciar
[Move the preloaded Block to the top of the Conveyor.]
girar [ConveyorMotor v] [subir v]
aguardar até <[0] [math_less_than v] (brilho de [Optical v] em %)>
parar [ConveyorMotor v]

Matiz óptico#

O bloco de relatório Matiz Óptico indica a tonalidade detectada pelo Sensor Óptico como um número de 0 a 359 graus.

O matiz é uma forma de descrever a cor utilizando números num círculo cromático.

Uma roda de cores circular exibindo um espectro completo de tonalidades rotuladas com valores em graus em torno do perímetro, aumentando em incrementos de 30 graus de 0° no topo até 360°.

(matiz de [Optical v] em graus)

Parâmetros

Descrição

Este bloco não possui parâmetros.

Exemplo

quando iniciar
[Pick up and move a Blue Block to the top of the Conveyor.]
girar [ConveyorMotor v] [subir v] por [200] [graus v] ▶
girar [IntakeMotor v] [ingestão v]
conduzir [frente v] por [360] [mm v] ▶
girar [ConveyorMotor v] [subir v]
aguardar até <[240] [math_equal v] (matiz de [Optical v] em graus)>
parar [ConveyorMotor v]

quando Óptico#

O bloco de chapéu when Optical executa a pilha de blocos anexada sempre que o Sensor Óptico deteta ou perde um objeto.

quando [Optical v] [detecta v] um objeto

Parâmetros

Descrição

estado

Quando a pilha de blocos anexada é executada: deteta é executada quando um objeto não detetado é detetado, enquanto perde é executada quando um objeto detetado deixa de ser detetado.

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
[Pick up a second Block.]
girar [ConveyorMotor v] para a posição [200] [graus v] ▶
girar [IntakeMotor v] [ingestão v]
conduzir [frente v]
aguardar até <[-450] [math_greater_than v] (posição de [GPS v] [Y v] em [mm v])>
parar de conduzir

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
[Score the preloaded Block into a Center Goal.]
virar [esquerda v]
aguardar até <[40] [math_greater_than v] (direção de [GPS v] em graus)>
conduzir [frente v] por [1000] [mm v] ▶
virar [direita v]
aguardar até <(direção de [GPS v] em graus) [math_greater_than v] [310]>
conduzir [inverso v] por [200] [mm v] ▶
girar [ConveyorMotor v] [subir v]