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ô.
Ações
drive — Move o robô para a frente ou para trás indefinidamente.
drive for — Move o robô para a frente ou para trás uma distância específica.
virar — Vira o robô para a esquerda ou para a direita para sempre.
virar para — Vira o robô para a esquerda ou para a direita por um número específico de graus.
virar para a direção — Vira o robô para ficar virado para uma direção específica.
virar para rotação — Roda o robô para uma rotação específica.
parar de conduzir — Interrompe o movimento do robô.
Configurações
definir velocidade de condução — Indica ao robô a velocidade de condução.
definir velocidade de rotação — Indica ao robô a velocidade com que deve rodar.
definir direção de direção — Altera a direção atual do robô para uma nova direção.
definir rotação de acionamento — Altera a rotação atual do robô para uma nova rotação.
set drive timeout — Define quantos segundos o robô tentará completar um movimento.
Valores
drive is done — Reporta se o robô já terminou de se mover.
drive is moving — Reporta se o robô se está a mover.
direção de condução — Reporta a direção atual do robô de 0 a 359,99 graus.
rotação de acionamento — Reporta a rotação atual do robô.
velocidade de deslocamento — Reporta a velocidade de deslocamento do robô.
Movimento – Movimente e acompanhe os motores do robô.
Ações
rodar motor – Roda um motor para a frente ou para trás indefinidamente.
rodar motor por – Roda um motor por uma distância específica em graus ou voltas.
rodar motor para posição – Roda um motor para uma posição específica.
parar motor – Impede que um motor gire.
Configurações
definir velocidade do motor – Indica ao motor a velocidade de rotação.
set motor timeout – Define durante quanto tempo um motor tentará terminar um movimento.
definir posição do motor – Altera a posição atual do motor para um novo valor.
Valores
motor is done – Reporta se o motor já terminou de se mover.
motor está a rodar – Reporta se o motor está a rodar.
posição do motor – Reporta a posição atual do motor.
velocidade do motor – Reporta a velocidade de rotação do motor, em percentagem de -100% a 100%.
Visão com IA – Capte e analise objetos utilizando o sensor de Visão com IA.
Ações
obter dados do objeto – Captura dados para uma assinatura específica, como uma classificação de IA detetada.
Configurações
set object item – Seleciona um objeto específico da lista.
Valores
objecto existe – Retorna se foi detectada alguma classificação.
object is – Retorna se for detetada uma classificação.
object is AprilTag – Retorna se o objeto detetado é um AprilTag que corresponde a um ID específico.
contagem de objetos – Retorna quantos objetos foram detetados.
propriedade do objeto – Retorna detalhes como:
Deteção – Utilize os vários sensores do robô.
Distância
Distância encontrou um objeto – Reporta se o sensor de distância detetou um objeto dentro do alcance.
distância do objeto – Reporta a distância entre o sensor de distância e o objeto detetado mais próximo.
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 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:
|
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:
|
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.
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:
|
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.
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.
<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.
<objeto de [AIVision v] é [RedBluePin v]?>
Parâmetro |
Descrição |
|---|---|
objeto |
Com que objeto comparar o artigo:
|
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.
<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.
(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.
(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.
(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.
(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.
(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.
(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.
(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.
(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:
|
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