Giroskopo jutiklis#

Įvadas#

gyro klasė naudojama su giroskopiniu jutikliu, norint matuoti sukimosi judėjimą aplink vieną ašį. Ji gali sekti, kuria kryptimi robotas yra pasuktas ir kiek jis pasisuko.

Klasės konstruktorius#

gyro(
    int32_t index );

Klasės destruktorius#

Sunaikina gyro objektą ir išlaisvina susijusius išteklius.

virtual ~gyro();

Parametrai#

Parametras

Tipas

Aprašymas

index

int32_t

Išmanusis prievadas, prie kurio prijungtas giroskopinis jutiklis, rašomas kaip PORTx, kur x yra prievado numeris (pavyzdžiui, PORT1).

Pavyzdys#

// Create a gyro instance in Port 1
gyro Gyro1 = gyro(PORT1);

Narių funkcijos#

gyro klasė apima šias narines funkcijas:

  • calibrate – Kalibruoja giroskopinį jutiklį.

  • setHeading – Nustato giroskopinio jutiklio dabartinę kryptį į naują krypties reikšmę.

  • setRotation — Nustato giroskopinio jutiklio dabartinį sukimąsi į naują sukimosi reikšmę.

  • heading – Grąžina giroskopo jutiklio kryptį.

  • rotation — Grąžina, kiek pasisuko giroskopinis jutiklis.

  • rate — Grąžina giroskopo jutiklio sukimosi greitį.

Prieš iškviečiant bet kokias gyro nario funkcijas, reikia sukurti gyro egzempliorių, kaip parodyta žemiau:

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

// Create a gyro instance in Port 1
gyro Gyro1 = gyro(PORT1);

calibrate#

Kalibruoja giroskopinį jutiklį.

Available Functions
void calibrate();

Parameters

Ši funkcija nepriima jokių parametrų.

Return Values

Ši funkcija negrąžina reikšmės.

Notes
  • Kalibravimas padeda giroskopiniam jutikliui teisingai išmatuoti posūkius. Kalibravimo metu jutiklis turi būti nejudinamas. Jei kalibravimo metu jutiklis juda, krypties, sukimosi ir greičio vertės gali neteisingai išmatuoti posūkius.

Examples
// Calibrate the Gyro Sensor before turning.
Gyro1.calibrate();

setHeading#

Nustato giroskopinio jutiklio dabartinę kryptį į konkrečią vertę.

Kryptis yra giroskopinio jutiklio kryptis, matuojama nuo 0 iki 359,99 laipsnių. Nustačius kryptį, pasikeičia dabartinė jutiklio krypties nuoroda.

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

Parametrai

Tipas

Aprašymas

value

double

Reikšmė, kurią reikia naudoti naujai antraštei.

units

rotationUnits

Vienetas, rodantis kryptį:

  • degrees
  • turns

Return Values

Ši funkcija negrąžina reikšmės.

setRotation#

Nustato giroskopinio jutiklio dabartinį sukimąsi iki konkrečios vertės.

Sukimasis rodo, kiek pasisuko giroskopinis jutiklis. Skirtingai nuo krypties, sukimasis gali padidėti virš 359,99 laipsnio arba sumažėti žemiau 0 laipsnių.

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

Parameters

Parametrai

Tipas

Aprašymas

value

double

Reikšmė, kuri bus naudojama naujai sukimosi vertei.

units

rotationUnits

Vienetas, rodantis sukimosi vertę:

  • degrees
  • turns

Return Values

Ši funkcija negrąžina reikšmės.

heading#

Grąžina dabartinę giroskopo jutiklio kryptį.

Kryptis yra giroskopinio jutiklio pasukimo kryptis, matuojama nuo 0 iki 359,99 laipsnių. Jei jutiklis pasisuka daugiau nei 359,99 laipsnio, kryptis grįžta į 0 laipsnių.

Available Functions
double heading(
  rotationUnits units = degrees );

Parameters

Parametras

Tipas

Aprašymas

units

rotationUnits

Vienetas, rodantis kryptį:

  • degrees (numatytasis)
  • turns

Return Values

Grąžina double nurodančius dabartinę giroskopinio jutiklio kryptį nurodytais vienetais, pagal numatytuosius nustatymus degrees.

Examples
// Get the current heading for the Gyro.
double value = Gyro1.heading();
Brain.Screen.print(value);

rotation#

Grąžina dabartinį giroskopo jutiklio sukimąsi.

Sukimasis rodo, kiek pasisuko giroskopinis jutiklis. Skirtingai nuo krypties, sukimasis gali padidėti virš 359,99 laipsnio arba sumažėti žemiau 0 laipsnių. Pavyzdžiui, padarius du pilnus apsisukimus į dešinę, grįžtama 720 laipsnių pasukimas. Pasukus vieną pilną apsisukimą į kairę nuo 0 laipsnių, grįžtama -360 laipsnių pasukimas.

Available Functions
double rotation(
  rotationUnits units = degrees );

Parameters

Parametras

Tipas

Aprašymas

units

rotationUnits

Vienetas, rodantis sukimosi reikšmę:

  • degrees (numatytasis)
  • turns

Return Values

Grąžina double rodantį dabartinę giroskopinio jutiklio sukimosi reikšmę nurodytais vienetais, pagal numatytuosius nustatymus degrees.

Examples
// Get the current rotation for the Gyro.
double value = Gyro1.rotation();
Brain.Screen.print(value);

rate#

Grąžina giroskopinio jutiklio sukimosi greitį.

Sukimosi greitis yra giroskopinio jutiklio sukasi greitis. Reikšmė gali būti teigiama arba neigiama, priklausomai nuo jutiklio sukimosi krypties.

Available Functions
double rate(
  rateUnits units = rateUnits::dps );

Parameters

Parametras

Tipas

Aprašymas

units

rateUnits

Vienetas, rodantis greitį:

  • rateUnits::dps (numatytasis) — laipsniai per sekundę
  • rateUnits::rpm — apsisukimai per minutę

Return Values

Grąžina double nurodantį dabartinį giroskopinio jutiklio kitimo greitį nurodytais vienetais, pagal numatytuosius nustatymus nustatant rateUnits::dps.