Inercial#

Introdução#

O robô de programação VEX AIM possui um sensor inercial integrado. Este sensor mede como o robô se move e gira.

O sensor inercial utiliza duas partes para desempenhar esta função. O giroscópio mede a rotação, como a direção, a rotação propriamente dita, a velocidade de rotação e a orientação do robô. O acelerómetro mede as mudanças de movimento, como aceleração, desaceleração ou paragem repentina durante uma colisão.

Os blocos inerciais podem ser utilizados para rastrear curvas, medir aceleração, detetar colisões e repor valores de direção ou rotação.

Segue abaixo a lista de todos os blocos:

Valores — Reportar dados de orientação e movimento.

  • heading — Reporta a direção para a qual o robô está virado, de 0 a 359,99 graus.

  • rotação — Reporta o quanto o robô rodou.

  • aceleração — Reporta a rapidez com que o robô está a acelerar ou a desacelerar no eixo selecionado.

  • obter taxa de rotação — Reporta a velocidade com que o robô está a rodar no eixo selecionado.

  • orientação — Reporta o ângulo de rotação, inclinação ou guinada do robô.

Ações — Responder a colisões ou repor os valores das curvas.

Valores#

cabeçalho#

A direção (heading) indica para onde o robô está virado, medida em graus de 0 a 359,99. O bloco de relatório heading informa a direção atual do robô.

A direção inicial é de 0 graus. Se o robô rodar para além dos 359,99 graus, a direção volta a 0 graus.

O bloco de repórter Heading.#
direção em graus

Parâmetros

Descrição

Este bloco não possui parâmetros.

Exemplos

quando iniciar
[Turn right until the heading reaches 90 degrees.]
virar [direita v]
aguardar [0.05] segundos
aguardar até <(direção em graus) [math_greater_than v] [90]>
parar todo o movimento

quando iniciar
[Display the robot's heading as it is rotated by hand.]
para sempre
limpar linha [1] na tela
definir cursor para linha [1] coluna [1] na tela
imprimir (direção em graus) na tela ▶
aguardar [0.05] segundos

rotação#

A rotação indica o quanto o robô rodou, medida em graus. Ao contrário da direção, a rotação pode ultrapassar os 359,99 graus ou diminuir para menos de 0 graus. No início de um projeto, o valor da rotação é definido como 0 graus. O bloco de relatório de rotação 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. Uma volta completa para a esquerda a partir dos 0 graus resultará numa rotação de -360 graus.

O bloco de relatório Rotation.#
(rotação em graus)

Parâmetros

Descrição

Este bloco não possui parâmetros.

Exemplo

quando iniciar
[Print the rotation value as the robot turns.]
virar [direita v] por [480] graus ◀ e não aguardar
para sempre
limpar tela
definir cursor para linha [1] coluna [1] na tela
imprimir (rotação em graus) na tela ▶

aceleração#

A aceleração indica a rapidez com que o robô está a acelerar ou a desacelerar. O bloco de registo de aceleração informa a aceleração do robô ao longo do eixo selecionado, de -4,00 G a 4,00 G.

A G é uma unidade utilizada para medir a aceleração. 1 G é aproximadamente a aceleração que sente devido à gravidade quando está parado.

O valor pode ser positivo ou negativo, dependendo do sentido da aceleração no eixo selecionado. No AIM, as opções de eixo são nomeadas de acordo com as direções no robô: para a frente, para a direita e para baixo.

O bloco de relatório de aceleração.#
(aceleração do eixo [frente v] em g :: custom-controller-inertial-timer)

Parâmetros

Descrição

eixo

Eixo para medir a aceleração:

  • para a frente
  • para a direita
  • para baixo

É mostrado um dispositivo sensor VEX com três setas coloridas indicando a direção. Uma seta vermelha com a etiqueta DIREITA aponta diagonalmente para cima à esquerda, uma seta verde com a etiqueta FRENTE aponta diagonalmente para cima à direita e uma seta azul com a etiqueta PARA BAIXO aponta diretamente para baixo a partir do centro.

Exemplo

quando iniciar
[Show the change in acceleration as the robot begins to move.]
definir cursor para linha [4] coluna [1] na tela
imprimir (juntar [Resting: ] (aceleração do eixo [para a direita v] em g :: custom-controller-inertial-timer)) na tela ▶
mover cursor para a próxima linha na tela
aguardar [0.5] segundos
mover [direita v] por [50] [mm v] ◀ e não aguardar
aguardar [0.1] segundos
imprimir (juntar [Startup: ] (aceleração do eixo [para a direita v] em g :: custom-controller-inertial-timer)) na tela ▶

obter taxa de rotação#

A taxa de rotação indica a velocidade de rotação do robô. O bloco de relatório obter taxa de rotação informa a velocidade de rotação atual do robô ao longo do eixo selecionado, em graus por segundo \(dps\), como um número inteiro.

O valor pode ser positivo ou negativo, dependendo da direção de rotação do robô em torno desse eixo. A imagem abaixo utiliza setas para mostrar o sentido da rotação positiva para a inclinação (roll), rotação (pitch) e guinada (yaw).

É mostrado um dispositivo sensor VEX com três setas coloridas rotuladas indicando os seus eixos de rotação. Uma seta vermelha rotulada como Pitch aponta diagonalmente para cima à esquerda, uma seta verde rotulada como Roll aponta diagonalmente para cima à direita e uma seta azul rotulada como Yaw aponta diretamente para baixo a partir do centro.

O bloco de relatório Get Turn Rate.#
(obter taxa de giro do eixo [guinada v] em dps)

Parâmetros

Descrição

eixo

Eixo para reportar a taxa de rotação:

  • rotação
  • inclinação
  • guinada

Exemplo

quando iniciar
[Observe the yaw turn rate as the robot turns.]
virar [direita v] por [180] graus ◀ e não aguardar
para sempre
limpar tela
definir cursor para linha [1] coluna [1] na tela
imprimir (obter taxa de giro do eixo [guinada v] em dps) na tela ▶

orientação#

A orientação é o ângulo atual do robô num eixo de rotação selecionado. O bloco de relatório de orientação informa a rotação, inclinação ou guinada do robô, de -180,00 a 180,00 graus, como um número decimal.

Os movimentos de inclinação (roll), arfagem (pitch) e guinada (yaw) descrevem as diferentes formas como o robô se pode inclinar ou rodar. A imagem abaixo utiliza setas para mostrar o sentido da rotação positiva para estes movimentos.

É mostrado um dispositivo sensor VEX com três setas coloridas rotuladas indicando os seus eixos de rotação. Uma seta vermelha rotulada como Pitch aponta diagonalmente para cima à esquerda, uma seta verde rotulada como Roll aponta diagonalmente para cima à direita e uma seta azul rotulada como Yaw aponta diretamente para baixo a partir do centro.

O bloco dos repórteres de orientação.#
orientação de [guinada v] em graus

Parâmetros

Descrição

eixo

Eixo de orientação a reportar:

  • rotação
  • inclinação
  • guinada

Exemplo

quando iniciar
[Display the robot's orientation as it is rotated by hand.]
para sempre
limpar linha [1] na tela
definir cursor para linha [1] coluna [1] na tela
imprimir (orientação de [rolagem v] em graus) na tela ▶
aguardar [0.05] segundos

Ações#

quando caiu#

O bloco quando colidido executa a pilha ligada quando o robô deteta um impacto ou colisão repentina. A deteção de colisões utiliza o acelerómetro e a sensibilidade de colisão atual.

O bloco de chapéu “When crashed”.#
quando colidir

Parâmetros

Descrição

Este bloco não possui parâmetros.

Exemplo

quando iniciar
[Start moving forward.]
definir velocidade de movimento para [100]%
mover [frente v]

quando colidir
[Respond when a crash is detected.]
parar todo o movimento
reproduzir som [colisão v] ▶

Defina a sensibilidade a falhas.#

O bloco de pilha set crash sensitivity ajusta a quantidade de aceleração repentina necessária para que o robô detete uma colisão.

O bloco de pilha de sensibilidade a falhas definido.#
definir sensibilidade de colisão para [baixo v]

Parâmetros

Descrição

sensibilidade

Nível de sensibilidade do robô na deteção de colisões:

  • baixo — Deteta apenas impactos fortes.
  • média — Deteta impactos moderados.
  • elevado — Deteta impactos fracos.

Exemplo

quando iniciar
[Move slowly with high crash sensitivity.]
definir velocidade de movimento para [35]%
definir sensibilidade de colisão para [alto v]
mover [frente v]

quando colidir
[Respond when a crash is detected.]
parar todo o movimento
reproduzir som [colisão v] ▶

repor cabeçalho#

O bloco de pilha repor direção redefine a direção atual do robô para 0 graus. Após a execução deste bloco, a direção para a qual o robô está a apontar passa a ser a nova direção de 0 graus.

O bloco de cabeçalho “Redefinir”.#
reiniciar direção

Parâmetros

Descrição

Este bloco não possui parâmetros.

Exemplo

quando iniciar
[Face left before turning around.]
virar para a direção [270] graus ▶
reiniciar direção
aguardar [1] segundos
virar para a direção [180] graus ▶

repor rotação#

O bloco de pilha repor rotação repõe o valor de rotação atual do robô para 0 graus. Após a execução deste bloco, o robô segue as curvas futuras a partir do novo valor de rotação de 0 graus.

O bloco de pilha de rotação Reset.#
reiniciar rotação

Parâmetros

Descrição

Este bloco não possui parâmetros.

Exemplo

quando iniciar
[Turn for 480 degrees before resetting rotation.]
virar [direita v] por [480] graus ▶
reiniciar rotação
para sempre
limpar tela
definir cursor para linha [1] coluna [1] na tela
imprimir (rotação em graus) na tela ▶