Blocos específicos para robôs#
Introdução#
O robô herói, Huey, inclui duas opções de motor, o sensor de visão com IA IQ, o sensor ótico e o LED sensível ao toque.
Todos os blocos VR padrão do VEXcode estão disponíveis para utilização no IQ 25-26 Mix & Match 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 numa das suas direções para sempre.
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 IQ.
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 foi detetada uma classificação específica.
contagem de objetos - Retorna quantos objetos foram detetados.
propriedade do objeto - Retorna largura, altura, centroX, centroY, origemX ou origemY.
Deteção - Utilize os vários sensores do robô.
Óptico
Objeto ótico encontrado – Reporta se o sensor está a detetar um objeto dentro do alcance.
Deteção ótica de cor – Reporta se o sensor ótico deteta uma cor especificada.
Brilho óptico – Reporta o brilho detectado pelo sensor óptico.
Matiz ótico – Reporta o matiz detetado pelo sensor ótico.
when Optical – Executa a pilha de blocos anexada quando o Sensor Óptico deteta ou perde um objeto.
LED sensível ao toque
definir cor do TouchLED - Define a cor do Touch LED para uma cor selecionada.
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 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#
Huey utiliza o motor da garra para abrir e fechar a garra, permitindo que os pinos e as vigas sejam apanhados ou soltos. O motor de elevação levanta e baixa pinos ou vigas para que possam ser ligados entre si.
Cada motor tem as suas próprias opções de direção. Os nomes das direções descrevem como este motor se move no Huey.
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 [ClawMotor v] [aberto v]
Parâmetros |
Descrição |
|---|---|
motor |
O motor para rodar: ClawMotor ou LiftMotor. |
direção |
Sentido de rotação do motor:
|
Exemplo
quando iniciar
[Place a pin atop another pin.]
girar [LiftMotor v] [subir v] por [600] [graus v] ▶
conduzir [frente v] por (140) [mm v] ▶
girar [ClawMotor v] [aberto 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 [ClawMotor v] [aberto v] por (90) [graus v] ▶
Parâmetros |
Descrição |
|---|---|
motor |
O motor para rodar: ClawMotor ou LiftMotor. |
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
[Place a pin atop another pin.]
girar [LiftMotor v] [subir v] por [600] [graus v] ▶
conduzir [frente v] por (140) [mm v] ▶
girar [ClawMotor v] [aberto 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 [ClawMotor v] para a posição (90) [graus v] ▶
Parâmetros |
Descrição |
|---|---|
motor |
O motor para rodar: ClawMotor ou LiftMotor. |
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
[Place a pin atop another pin.]
girar [LiftMotor v] para a posição [-2] [voltas v] ▶
conduzir [frente v] por (140) [mm v] ▶
girar [ClawMotor v] [aberto v]
motor de paragem#
O bloco de pilha parar motor pára o motor selecionado.
parar [ClawMotor v]
Parâmetros |
Descrição |
|---|---|
motor |
O motor pára: ClawMotor ou LiftMotor. |
Exemplo
quando iniciar
[Raise the lift for 2 seconds, then stop.]
girar [LiftMotor v] [subir v]
aguardar (2) segundos
parar [LiftMotor 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 [ClawMotor v] para (50) [% v]
Parâmetros |
Descrição |
|---|---|
motor |
O motor para definir a velocidade de: ClawMotor ou LiftMotor. |
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 lift at full speed.]
definir velocidade de [LiftMotor v] para [100] [% v]
girar [LiftMotor v] [subir v] por [600] [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 [ClawMotor v] para (1) segundos
Parâmetros |
Descrição |
|---|---|
motor |
O motor para definir o tempo limite: ClawMotor ou LiftMotor. |
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
definir tempo limite de [LiftMotor v] para [2] segundos
girar [LiftMotor v] [subir v] por [5] [voltas 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 [ClawMotor v] em [graus v])
Parâmetros |
Descrição |
|---|---|
motor |
O motor que deve reportar a posição de: ClawMotor ou LiftMotor. |
unidade |
A unidade para indicar a posição do motor é: graus ou rotações. |
Exemplo
quando iniciar
[Raise the lift until it reaches 600 degrees.]
girar [LiftMotor v] [subir v]
aguardar até <(posição de [LiftMotor v] em [graus v]) [math_less_than v] [-600]>
parar [LiftMotor 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 [ClawMotor v] para (0) [graus v]
Parâmetros |
Descrição |
|---|---|
motor |
O motor para definir a posição de: ClawMotor ou LiftMotor. |
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
definir posição de [LiftMotor v] para [100] [graus v]
girar [LiftMotor v] para a posição [-500] [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.
<[ClawMotor v] concluído?>
Parâmetros |
Descrição |
|---|---|
motor |
O motor que indica se o movimento foi concluído é: ClawMotor ou LiftMotor. |
Exemplo
quando iniciar
[Flash the Touch LED while the lift is moving.]
girar [LiftMotor v] [subir v] por [600] [graus v] ◀ e não aguardar
aguardar [0.1] segundos
repetir até <[LiftMotor v] concluído?>
definir cor de [TouchLED v] para [vermelho v]
aguardar [0.5] segundos
definir cor de [TouchLED v] para [nenhum v]
aguardar [0.5] segundos
fim
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.
<[ClawMotor v] girando?>
Parâmetros |
Descrição |
|---|---|
motor |
O motor que indica se está a rodar: ClawMotor ou LiftMotor. |
Exemplo
quando iniciar
[Flash the Touch LED while the lift is spinning.]
girar [LiftMotor v] [subir v] por [600] [graus v] ◀ e não aguardar
aguardar [0.1] segundos
repetir até <não <[LiftMotor v] girando?>>
definir cor de [TouchLED v] para [vermelho v]
aguardar [0.5] segundos
definir cor de [TouchLED v] para [nenhum v]
aguardar [0.5] segundos
fim
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 [ClawMotor v] em [% v] :: custom-motion)
Parâmetros |
Descrição |
|---|---|
motor |
O motor que deve reportar a velocidade é: ClawMotor ou LiftMotor. |
unidade |
A unidade de medida para reportar a velocidade do motor é: %. |
Exemplo
quando iniciar
definir velocidade de [LiftMotor v] para [100] [% v]
girar [LiftMotor v] [subir v] por [600] [graus v] ◀ e não aguardar
aguardar [0.5] segundos
imprimir (velocidade de [LiftMotor 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.
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. Assinaturas disponíveis:
|
Exemplo
quando iniciar
[Place the Red Pin on the top left Blue Pin.]
girar [LiftMotor v] [subir v] por [600] [graus v] ▶
virar [esquerda v] por [38] graus ▶
repetir até <(objeto de [AIVision v] [largura v]) [math_greater_than v] [48]>
obter dados de [Classificações de IA v] de [AIVision v]
conduzir [frente v]
fim
conduzir [frente v] por [160] [mm v] ▶
girar [ClawMotor v] [aberto v]
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
[Find the object index of the nearest Orange Pin.]
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 <[AIVision v] object is [Orange Pin v]> então
imprimir (juntar [Nearest Orange Pin is ] (object_counter)) ▶
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.
<objeto de [AIVision v] existe?>
Parâmetros |
Descrição |
|---|---|
Este bloco não possui parâmetros. |
Exemplo
quando iniciar
[Raise the Lift until a Pin or Beam is detected.]
repetir até <objeto de [AIVision v] existe?>
obter dados de [Classificações de IA v] de [AIVision v]
girar [LiftMotor v] [subir v]
fim
parar [LiftMotor v]
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] é [Beam v]?>
Parâmetro |
Descrição |
|---|---|
objeto |
Com que objeto comparar o item:
|
Exemplo
quando iniciar
[Find the object index of the nearest Orange Pin.]
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 <[AIVision v] object is [Orange Pin v]> então
imprimir (juntar [Nearest Orange Pin is ] (object_counter)) ▶
senão
alterar [object_counter v] por [1]
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 v])
Parâmetros |
Descrição |
|---|---|
Este bloco não possui parâmetros. |
Exemplo
quando iniciar
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.
(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#
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])
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])
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])
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])
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])
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])
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
[Place a pin atop another pin.]
girar [LiftMotor v] [subir v] por [600] [graus v] ▶
conduzir [frente v] por (140) [mm v] ▶
girar [ClawMotor v] [aberto v]
aguardar até <não <[Optical v] encontrou um objeto?>>
girar [LiftMotor v] para a posição [0] [graus 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.
Nota: O sensor ótico procura intervalos de tonalidade que correspondam à cor especificada. Para detetar intervalos de matiz específicos, consulte o bloco Matiz ótico.
<[Optical v] detecta [vermelho v]?>
Parâmetros |
Descrição |
|---|---|
cor |
Qual a cor a procurar:
|
Exemplo
quando iniciar
[Place a pin atop another pin.]
girar [LiftMotor v] [subir v] por [600] [graus v] ▶
conduzir [frente v] por (140) [mm v] ▶
girar [ClawMotor v] [aberto v]
aguardar até <[Optical v] detecta [vermelho v]?>
girar [LiftMotor v] para a posição [0] [graus 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%.
Uma percentagem mais elevada significa que mais luz é refletida de volta para o sensor ótico. Uma percentagem mais baixa significa que menos luz é refletida de volta.
(brilho de [Optical v] em %)
Parâmetros |
Descrição |
|---|---|
Este bloco não possui parâmetros. |
Matiz óptico#
O bloco Matiz Óptico devolve o valor de matiz da cor detectada pelo Sensor Óptico.
O matiz é uma forma de descrever a cor utilizando números num círculo cromático.

(matiz de [Optical v] em graus)
Parâmetros |
Descrição |
|---|---|
Este bloco não possui parâmetros. |
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. |
Exemplo
quando [Optical v] [perde v] um objeto
[Lower the lift when the object is no longer in the claw.]
girar [LiftMotor v] para a posição [0] [graus v] ▶
LED sensível ao toque#
Defina a cor do TouchLED#
O bloco definir cor do TouchLED define a cor do LED sensível ao toque.
definir cor de [TouchLED v] para [nenhum v]
Parâmetros |
Descrição |
|---|---|
cor |
Define a cor do LED para:
|
Exemplo
quando iniciar
[Light the Touch LED while placing a pin.]
definir cor de [TouchLED v] para [vermelho v]
girar [LiftMotor v] [subir v] por [600] [graus v] ▶
conduzir [frente v] por (140) [mm v] ▶
girar [ClawMotor v] [aberto v]
definir cor de [TouchLED v] para [nenhum v]