Sensor de rotação#

Introdução#

A classe rotation é utilizada para controlar e aceder aos dados de um sensor de rotação EXP.

O Sensor de Rotação mede a rotação de um veio. Pode ser utilizado em qualquer lugar do robô onde um eixo esteja a rodar, mesmo que esse eixo não esteja ligado diretamente a um motor.

Um motor possui um codificador incorporado que consegue rastrear a sua própria rotação. O sensor de rotação funciona como um codificador externo, capaz de rastrear a rotação de um eixo separado.

O sensor de rotação pode devolver o ângulo, a posição e a velocidade do veio. O ângulo representa a posição absoluta do eixo, de 0 a 359,99 graus. Não é reposto quando um projeto é iniciado ou quando o robô é desligado. A posição regista quantos graus ou voltas o eixo rodou para a frente ou para trás durante um projeto e pode ser reiniciada conforme necessário.

O sensor de rotação é compatível com eixos VEX padrão de 1/8 de polegada e 1/4 de polegada.

Construtores de Classes#

rotation(
    int32_t index,
    bool    reverse = false );

Destrutor de classes#

Destrói o objeto de rotação rotation e liberta os recursos associados.

virtual ~rotation();

Parâmetros#

Parâmetro

Tipo

Descrição

index

int32_t

A porta inteligente à qual o sensor de rotação está ligado, escrita como PORTx, em que x é o número da porta (por exemplo, PORT1).

reverse

bool

Opcional. Indica se a saída do sensor de rotação deve ser invertida:

  • true — Inverte o sentido dos valores de ângulo e posição reportados.
  • false (padrão) — Reporta os valores de ângulo e posição na direção padrão.

Exemplos#

// Create a Rotation Sensor instance in Port 1
rotation Rotation1 = rotation(PORT1);

Funções de membro#

A classe rotation inclui as seguintes funções membro:

  • setPosition — Define a posição actual do sensor de rotação para um valor específico.

  • angle — Devolve o ângulo actual do eixo de 0 a 359,99 graus.

  • position — Devolve o quanto o veio rodou em graus ou voltas.

  • velocity — Devolve a velocidade de rotação do veio.

Antes de chamar qualquer função membro de rotação rotation , deve ser criada uma instância de rotação rotation , como se mostra abaixo:

/* This constructor is required when using VS Code.
Rotation Sensor configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */

// Create a Rotation Sensor instance in Port 1
rotation Rotation1 = rotation(PORT1);

setPosition#

Define a posição atual do sensor de rotação para um valor específico.

A posição indica o quanto o veio rodou durante um projeto. A definição da posição altera o valor da posição atual sem mover o eixo.

Available Functions
void setPosition(
    double        value,
    rotationUnits units );

Parameters

Parâmetro

Tipo

Descrição

value

double

O valor da posição a atribuir ao sensor de rotação. Pode ser um número inteiro ou decimal.

units

rotationUnits

The position unit:

  • deg / degrees — degrees
  • turns / rev — turns

Return Values

Esta função não devolve qualquer valor.

angle#

Retorna o ângulo atual do eixo.

O indicador de ângulo mostra a posição absoluta do veio numa rotação, de 0 a 359,99 graus. Não é reposto quando um projeto é iniciado ou quando o robô é desligado.

Available Functions
double angle( rotationUnits units = degrees );

Parameters

Parâmetro

Tipo

Descrição

units

rotationUnits

Opcional. Unidade de ângulo:

  • deg / degrees (padrão) — graus
  • turns / rev — voltas

Return Values

Retorna um valor double que representa o ângulo atual do eixo nas unidades especificadas.

Examples
// Get the current angle of the shaft
  double angle = Rotation1.angle(degrees);

  // Print the current angle of the shaft to the
  // Brain's screen.
  Brain.Screen.print(angle);

position#

Retorna a distância que o veio rodou.

Ao contrário do ângulo, a posição pode aumentar para além dos 359,99 graus ou diminuir abaixo dos 0 graus. A posição regista o quanto o eixo gira para a frente ou para trás durante um projeto e pode ser redefinida conforme necessário.

Available Functions
double position( rotationUnits units );

Parameters

Parâmetro

Tipo

Descrição

units

rotationUnits

The position unit:

  • deg / degrees — degrees
  • turns / rev — turns

Return Values

Retorna um valor double que representa a distância que o veio rodou nas unidades especificadas.

velocity#

Devolve a velocidade de rotação do veio.

Available Functions
double velocity( velocityUnits units );

Parameters

Parâmetro

Tipo

Descrição

units

velocityUnits

Unidade de velocidade:

  • rpm — rotações por minuto
  • dps — graus por segundo

Return Values

Devolve um valor double que representa a velocidade de rotação do veio nas unidades especificadas.