Snímač rotace#

Zavedení#

Třída rotation se používá k řízení a přístupu k datům ze senzoru rotace EXP.

Snímač rotace měří rotaci hřídele. Lze jej použít kdekoli na robotu, kde se hřídel otáčí, i když tato hřídel není přímo připojena k motoru.

Motor má vestavěný enkodér, který dokáže sledovat svou vlastní rotaci. Snímač rotace funguje jako externí enkodér, který dokáže sledovat rotaci samostatné hřídele.

Snímač otáčení dokáže zobrazit úhel, polohu a rychlost hřídele. Úhel je absolutní poloha hřídele od 0 do 359,99 stupňů. Nevynuluje se při zahájení projektu ani při vypnutí robota. Poloha sleduje, o kolik stupňů nebo otáček se hřídel během projektu otočila dopředu nebo dozadu, a lze ji v případě potřeby vynulovat.

Snímač otáčení je kompatibilní se standardními hřídeli VEX o průměru 1/8 palce a 1/4 palce.

Konstruktory tříd#

rotation(
    int32_t index,
    bool    reverse = false );

Destruktor tříd#

Destroys the rotation object and releases associated resources.

virtual ~rotation();

Parametry#

Parametr

Typ

Popis

index

int32_t

Inteligentní port, ke kterému je připojen snímač rotace, zapsaný jako PORTx, kde x je číslo portu (například PORT1).

reverse

bool

Volitelné. Zda obrátit výstup senzoru rotace:

  • true — Obrátí směr hlášených hodnot úhlu a polohy.
  • false (výchozí) — Hlásí hodnoty úhlu a polohy ve standardním směru.

Příklady#

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

Členské funkce#

Třída rotation obsahuje následující členské funkce:

  • setPosition — Nastaví aktuální polohu senzoru otáčení na specifickou hodnotu.

  • angle — Vrátí aktuální úhel hřídele od 0 do 359,99 stupňů.

  • position — Vrátí, o kolik se hřídel otočila ve stupních nebo otáčkách.

  • velocity — Vrátí rychlost otáčení hřídele.

Před voláním jakékoli členské funkce s rotací rotation je nutné vytvořit instanci s rotací rotation , jak je znázorněno níže:

/* 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#

Nastaví aktuální polohu senzoru otáčení na specifickou hodnotu.

Poloha udává, o kolik se hřídel otočila během projektu. Nastavení polohy změní aktuální hodnotu polohy bez pohybu hřídele.

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

Parameters

Parametr

Typ

Popis

value

double

Hodnota polohy, která se má přiřadit senzoru rotace. Může to být celé číslo nebo desetinné číslo.

units

rotationUnits

Jednotka polohy:

  • deg / degrees — stupně
  • turns / rev — otáček

Return Values

Tato funkce nevrací hodnotu.

angle#

Vrátí aktuální úhel hřídele.

Úhel udává absolutní polohu hřídele v rámci jedné otáčky, od 0 do 359,99 stupňů. Neresetuje se při zahájení projektu ani při vypnutí robota.

Available Functions
double angle( rotationUnits units = degrees );

Parameters

Parametr

Typ

Popis

units

rotationUnits

Volitelné. Jednotka úhlu:

  • deg / degrees (výchozí) — stupně
  • turns / rev — otáček

Return Values

Vrátí hodnotu double která představuje aktuální úhel hřídele v zadaných jednotkách.

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#

Vrátí, o kolik se hřídel otočila.

Na rozdíl od úhlu se poloha může zvětšit nad 359,99 stupňů nebo snížit pod 0 stupňů. Poloha sleduje, o kolik se hřídel během projektu otočí dopředu nebo dozadu, a lze ji v případě potřeby resetovat.

Available Functions
double position( rotationUnits units );

Parameters

Parametr

Typ

Popis

units

rotationUnits

Jednotka polohy:

  • deg / degrees — stupně
  • turns / rev — otáček

Return Values

Vrací hodnotu double která představuje, o kolik se hřídel otočila v zadaných jednotkách.

velocity#

Vrátí rychlost otáčení hřídele.

Available Functions
double velocity( velocityUnits units );

Parameters

Parametr

Typ

Popis

units

velocityUnits

Jednotka rychlosti:

  • rpm — otáčky za minutu
  • dps — stupně za sekundu

Return Values

Vrací hodnotu double , která představuje rychlost otáčení hřídele v zadaných jednotkách.