Sensor de rotação#
Introdução#
A classe rotation é utilizada para controlar e aceder aos dados de um sensor de rotação V5.
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.
Construtor 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 |
|---|---|---|
|
|
A porta inteligente à qual o sensor de rotação está ligado, escrita como |
|
|
Opcional. Indica se a saída do sensor de rotação deve ser invertida:
|
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:
// 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 Functionsvoid setPosition(
double value,
rotationUnits units );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
O valor da posição a atribuir ao sensor de rotação. Pode ser um número inteiro ou decimal. |
|
|
The position unit:
|
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 Functionsdouble angle( rotationUnits units = degrees );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
Opcional. Unidade de ângulo:
|
Retorna um valor double que representa o ângulo atual do eixo nas unidades especificadas.
// 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 Functionsdouble position( rotationUnits units );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
The position unit:
|
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 Functionsdouble velocity( velocityUnits units );
Parâmetro |
Tipo |
Descrição |
|---|---|---|
|
|
Unidade de velocidade:
|
Devolve um valor double que representa a velocidade de rotação do veio nas unidades especificadas.