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 |
|---|---|---|
|
|
Inteligentní port, ke kterému je připojen snímač rotace, zapsaný jako |
|
|
Volitelné. Zda obrátit výstup senzoru rotace:
|
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 Functionsvoid setPosition(
double value,
rotationUnits units );
Parametr |
Typ |
Popis |
|---|---|---|
|
|
Hodnota polohy, která se má přiřadit senzoru rotace. Může to být celé číslo nebo desetinné číslo. |
|
|
Jednotka polohy:
|
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 Functionsdouble angle( rotationUnits units = degrees );
Parametr |
Typ |
Popis |
|---|---|---|
|
|
Volitelné. Jednotka úhlu:
|
Vrátí hodnotu double která představuje aktuální úhel hřídele v zadaných jednotkách.
// 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 Functionsdouble position( rotationUnits units );
Parametr |
Typ |
Popis |
|---|---|---|
|
|
Jednotka polohy:
|
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 Functionsdouble velocity( velocityUnits units );
Parametr |
Typ |
Popis |
|---|---|---|
|
|
Jednotka rychlosti:
|
Vrací hodnotu double , která představuje rychlost otáčení hřídele v zadaných jednotkách.