Inertia-anturi#

Johdanto#

inertial -luokkaa käytetään IQ (2. sukupolvi) aivojen sisäänrakennetun inertia-anturin datan ohjaamiseen ja käyttämiseen. Tämä anturi mittaa aivojen liikettä ja pyörimistä.

Inertia-anturi käyttää tähän kahta osaa. Gyroskooppi mittaa kääntymistä, kuten suuntaa, pyörimistä, gyroskoopin nopeutta ja suuntaa. Kiihtyvyysanturi mittaa liikkeen muutoksia, kuten kiihtymistä tai hidastumista x-, y- ja z-akseleiden suuntaisesti.

Luokanrakentajat#

inertial(
  turnType dir = turnType::right );

Luokan tuhoaja#

Tuhoaa inertiaalisen inertial objektin ja vapauttaa siihen liittyvät resurssit.

~inertial();

Parametrit#

Parametri

Tyyppi

Kuvaus

dir

turnType

Valinnainen. Suunta, joka palauttaa positiivisia arvoja:

  • right (oletus) — Oikealle kääntyminen palauttaa positiivisia arvoja.
  • left — Vasemmalle kääntyminen palauttaa positiivisia arvoja.

Esimerkkejä#

// Create the inertial instance
inertial myInertial = inertial(
    right);     // dir

Jäsenten toiminnot#

inertial -luokka sisältää seuraavat jäsenfunktiot:

  • heading — Palauttaa anturin suunnan.

  • rotation — Palauttaa anturin kääntymisasteen.

  • setHeading — Asettaa anturin nykyisen suunnan uuteen suunta-arvoon.

  • setRotation — Asettaa anturin nykyisen pyörimissuunnan uuteen pyörimisarvoon.

  • calibrate — Kalibroi inertia-anturin.

  • resetHeading — Palauttaa anturin nykyisen suunnan 0 asteeseen.

  • resetRotation — Palauttaa anturin nykyisen kierron arvoon 0 astetta.

  • isCalibrating — Palauttaa, onko inertia-anturi parhaillaan kalibroimassa.

  • changed — Rekisteröi takaisinkutsufunktion, joka suoritetaan, kun otsikko muuttuu.

  • installed — Palauttaa, onko inertia-anturi asennettu.

  • acceleration — Palauttaa, kuinka nopeasti anturi kiihtyy tai hidastuu valitulla akselilla.

  • gyroRate — Palauttaa anturin pyörimisnopeuden valitulla akselilla.

  • orientation — Palauttaa inertia-anturin vierintä-, kallistus- tai kääntökulman.

  • collision — Rekisteröi takaisinkutsufunktion, joka suoritetaan, kun törmäys havaitaan.

  • setTurnType — Asettaa, mikä käännössuunta palauttaa positiivisia suunta-arvoja.

  • getTurnType — Palauttaa arvon, jonka mukaan kääntymissuunta tuottaa positiivisia arvoja.

Ennen minkään inertial jäsenfunktion kutsumista on luotava inertial instanssi, kuten alla on esitetty:

/* This constructor is required when using VS Code.
Inertial Sensor configuration is generated automatically
in VEXcode with the IQ (2nd gen) Brain. Replace the values
as needed. */

// Create the inertial instance
inertial myInertial = inertial();

heading#

Suunta on anturin osoittama suunta, mitattuna asteina välillä 0 - 359,99. Tämä funktio palauttaa anturin nykyisen suunnan.

Lähtösuunta on 0 astetta. Jos anturi kääntyy yli 359,99 asteen, suunta palautuu takaisin 0 asteeseen.

Available Functions
double heading( rotationUnits units = degrees );

Parameters

Parametri

Tyyppi

Kuvaus

units

rotationUnits

Suuntayksikkö:

  • deg / degrees (oletus) — astetta
  • turns / rev — kierroksia

Return Values

Palauttaa arvon double joka edustaa anturin nykyistä suuntaa määritetyissä yksiköissä.

Notes
  • Otsikon arvo kiertyy 0 ja 359,99 asteen välille. Käytä rotation saadaksesi jatkuvan kierron arvon.

Examples
// Turn, then show the current heading
Drivetrain.turnFor(right, 450, degrees);
Brain.Screen.print("%f", myInertial.heading(degrees));

rotation#

Palauttaa inertia-anturin nykyisen pyörimisliikkeen.

Kierto ilmaisee, kuinka paljon anturi on kääntynyt. Toisin kuin suunnassa, kierto voi kasvaa yli 359,99 asteen tai laskea alle 0 asteen. Esimerkiksi kahden täyden käännöksen tekeminen oikealle palauttaa 720 asteen kiertoliikkeen. Yhden täyden käännöksen tekeminen vasemmalle 0 asteesta palauttaa -360 asteen kiertoliikkeen.

Available Functions
double rotation( rotationUnits units = degrees );

Parameters

Parametri

Tyyppi

Kuvaus

units

rotationUnits

Pyörimisyksikkö:

  • deg / degrees (oletus) — astetta
  • turns / rev — kierroksia

Return Values

Palauttaa arvon double joka edustaa nykyistä kiertoa määritetyissä yksiköissä.

Notes
  • Kiertoarvo on jatkuva eikä kierry 0 ja 359,99 asteen välillä. Käytä heading päästäksesi kierretyn otsikon arvoon.

Examples
// Turn, then show the current rotation
Drivetrain.turnFor(right, 450, degrees);
Brain.Screen.print("%f", myInertial.rotation(degrees));

setHeading#

Suunta on anturin suunta, mitattuna asteina välillä 0 - 359,99. Tämä funktio muuttaa inertia-anturin nykyisen suunnan uudeksi suunta-arvoksi.

Jos anturi on esimerkiksi kääntynyt oikealle ja suunnan asettaminen 0 asteeseen tekee oikealle osoittavasta asennosta uuden 0 asteen. Tämän jälkeen anturi voi seurata muita suuntia tämän uuden suunnan perusteella.

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

Parameters

Parametri

Tyyppi

Kuvaus

value

double

Anturille asetettava suunta-arvo asteina. Tämä voi olla arvo väliltä 0–359,99.

units

rotationUnits

Suuntayksikkö:

  • deg / degrees — astetta
  • turns / rev — kierroksia

Return Values

Tämä funktio ei palauta arvoa.

Examples
// Turn the robot around
myInertial.setHeading(180, degrees);
Drivetrain.turnToHeading(0, degrees);

setRotation#

Asettaa inertia-anturin nykyisen pyörimisnopeuden määritettyyn arvoon.

Kierto osoittaa, kuinka paljon anturi on kääntynyt. Toisin kuin suunnassa, kierto voi kasvaa yli 359,99 asteen tai laskea alle 0 asteen.

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

Parameters

Parametri

Tyyppi

Kuvaus

value

double

Anturille asetettava kiertoarvo asteina. Tämä voi olla kokonaisluku tai desimaaliluku.

units

rotationUnits

Pyörimisyksikkö:

  • deg / degrees — astetta
  • turns / rev — kierrokset

Return Values

Tämä funktio ei palauta arvoa.

Examples
// Turn the robot around
myInertial.setRotation(-180, degrees);
Drivetrain.turnToRotation(0, degrees);

calibrate#

Kalibroi inertia-anturin.

Kalibrointi auttaa anturia mittaamaan käännökset oikein. Pidä anturi paikallaan kalibroinnin aikana. Jos anturi liikkuu kalibroinnin aikana, suunta-, kierto-, gyroskooppinopeus- ja suunta-arvot eivät välttämättä mittaudu oikein.

Available Functions
void calibrate( );

Parameters

Tämä funktio ei hyväksy parametreja.

Return Values

Tämä funktio ei palauta arvoa.

Notes
  • Anturin tulisi pysyä paikallaan kalibroinnin aikana.

  • Käytä isCalibrating määrittääksesi, milloin kalibrointi on valmis.

resetHeading#

Palauttaa inertia-anturin nykyisen suunnan 0 asteeseen.

Tämän funktion käytön jälkeen anturin nykyisestä suunnasta tulee uusi 0 asteen suunta.

Available Functions
void resetHeading();

Parameters

Tämä funktio ei ota vastaan ​​parametreja.

Return Values

Tämä funktio ei palauta arvoa.

resetRotation#

Palauttaa inertia-anturin nykyisen pyörimiskulman 0 asteeseen.

Tämän toiminnon käytön jälkeen anturi seuraa tulevia käännöksiä uudesta 0 asteen kiertoarvosta.

Available Functions
void resetRotation();

Parameters

Tämä funktio ei ota vastaan ​​parametreja.

Return Values

Tämä funktio ei palauta arvoa.

isCalibrating#

Palauttaa tiedon siitä, kalibroidaanko inertia-anturia parhaillaan.

Available Functions
bool isCalibrating();

Parameters

Tämä funktio ei ota vastaan ​​parametreja.

Return Values

Palauttaa totuusarvon, joka ilmaisee, kalibroiko inertia-anturi:

  • true — The sensor is currently calibrating.
  • false — The sensor is not currently calibrating.

changed#

Rekisteröi takaisinkutsufunktion, joka suoritetaan, kun inertia-anturin suunta-arvo muuttuu.

Available Functions
void changed( void (* callback)(void) );

Parameters

Parametri

Tyyppi

Kuvaus

callback

void (*)(void)

Osoitin funktioon, jota kutsutaan, kun otsikon arvo muuttuu. Funktio ei saa ottaa parametreja ja palauttaa arvon void.

Return Values

Tämä funktio ei palauta arvoa.

Examples

Määrittele takaisinkutsufunktio ( int main())

// Display the heading when the Inertial Sensor's heading value changes.
void onHeadingChanged() {
  Brain.Screen.clearScreen();
  Brain.Screen.setCursor(1, 1);
  Brain.Screen.print("Heading: %.2f", myInertial.heading());
}

Rekisteröi takaisinkutsu int main()

int main() {
  // Run onHeadingChanged when the Inertial Sensor's heading value changes.
  myInertial.changed(onHeadingChanged);
}

installed#

Palauttaa, onko inertia-anturi asennettu ja kytketty.

Available Functions
bool installed();

Parameters

Tämä funktio ei ota vastaan ​​parametreja.

Return Values

Palauttaa totuusarvon, joka ilmaisee, onko inertia-anturi asennettu ja kytketty:

  • true — The sensor is connected and responding.
  • false — The sensor is not connected or not detected.

acceleration#

Kiihtyvyys ilmaisee, kuinka nopeasti anturi kiihtyy tai hidastuu. Tämä funktio palauttaa inertia-anturin kiihtyvyyden valitulla akselilla välillä -4,0 G - 4,0 G.

G on kiihtyvyyden mittayksikkö. 1 G on suunnilleen painovoiman aiheuttama kiihtyvyys paikallaan istuessasi. Arvo voi olla positiivinen tai negatiivinen riippuen kiihtyvyyden suunnasta valitulla akselilla.

Available Functions
double acceleration( axisType axis );

Parameters

Parametri

Tyyppi

Kuvaus

axis

axisType

Kiihtyvyyden mittausakseli:

  • xaxis
  • yaxis
  • zaxis

Return Values

Palauttaa luvun double joka edustaa kiihtyvyyttä määritetyn akselin suuntaisesti yksiköissä G (gravitaatioyksikkö).

Notes
  • Kiihtyvyysarvot ilmoitetaan yksiköissä G.

gyroRate#

Gyroskooppinopeus on inertia-anturin pyörimisnopeus. Tämä funktio palauttaa inertia-anturin nykyisen pyörimisnopeuden valitulla akselilla.

Arvo voi olla positiivinen tai negatiivinen riippuen siitä, mihin suuntaan anturi pyörii kyseisellä akselilla.

Available Functions
double gyroRate( axisType      axis,
                 velocityUnits units );

Parameters

Parametri

Tyyppi

Kuvaus

axis

axisType

Akseli, josta gyroskoopin nopeus palautetaan:

  • xaxis
  • yaxis
  • zaxis

units

velocityUnits

Gyroskoopin nopeusyksikkö:

  • dps — astetta sekunnissa
  • rpm — kierrosta minuutissa

Return Values

Palauttaa luvun double joka edustaa nykyistä pyörimisnopeutta määritetyn akselin suuntaisesti valituissa yksiköissä.

Examples
// Display the rate of change of rotation while turning in dps
Drivetrain.turn(right);
wait(1, seconds);

Brain.Screen.print(myInertial.gyroRate(zaxis, dps));

Drivetrain.stop();

orientation#

Suunta on inertia-anturin nykyinen kulma valitulla kääntöakselilla. Tämä funktio palauttaa inertia-anturin nykyisen suunnan määritetyllä akselilla.

Rullaus, kallistus ja kääntö kuvaavat eri tapoja, joilla anturi voi kallistua tai kääntyä.

Available Functions
double orientation(
  orientationType type,
  rotationUnits   units );

Parameters

Parametri

Tyyppi

Kuvaus

type

orientationType

Paluukulman suuntaus:

  • pitch
  • roll
  • yaw

units

rotationUnits

The orientation unit:

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

Return Values

Palauttaa luvun double joka edustaa valittua suuntakulmaa määritetyissä yksiköissä.

Examples
while (true) {
  Brain.Screen.clearScreen();
  Brain.Screen.setCursor(1,1);
  // Show the Inertial Sensor's orientation value
  // for roll in degrees
  double orient = myInertial.orientation(roll, deg);
  Brain.Screen.print("%f", orient);
  wait(0.1, seconds);
}

collision#

Rekisteröi takaisinkutsufunktion, joka suoritetaan, kun inertia-anturi havaitsee äkillisen iskun tai törmäyksen.

Available Functions
void collision( void (* callback)(axisType, double, double, double) );

Parameters

Parametri

Tyyppi

Kuvaus

callback

void (*)(axisType, double, double, double)

Osoitin funktioon, jota kutsutaan törmäyksen havaittaessa. Takaisinkutsufunktion on hyväksyttävä seuraavat parametrit:

  • axisType — Akseli, jolla törmäys havaittiin.
  • Kiihtyvyysarvot törmäyshetkellä järjestyksessä:
    • double — Kiihtyvyys x-akselin suunnassa (G:ssä).
    • double — Kiihtyvyys y-akselin suunnassa (G:ssä).
    • double — Kiihtyvyys z-akselin suunnassa (G:ssä).
Funktion on palautettava void.

Return Values

Tämä funktio ei palauta arvoa.

Examples

Määrittele takaisinkutsufunktio ( int main())

// Display a message when the Inertial Sensor detects a collision.
void onCollision(axisType axis, double x, double y, double z) {
  Brain.Screen.print("Collision detected!");
}

Rekisteröi takaisinkutsu int main()

int main() {
  // Run onCollision when the Inertial Sensor detects a collision.
  myInertial.collision(onCollision);
}

setTurnType#

Asettaa, mitkä kääntymissuunnat palauttavat positiivisia arvoja.

Available Functions
void setTurnType( turnType dir );

Parameters

Parametri

Tyyppi

Kuvaus

dir

turnType

Positiivisia arvoja palauttava suunta:

  • right
  • left

Return Values

Tämä funktio ei palauta arvoa.

Notes

getTurnType#

Palautussuuntaan kääntyvät arvot tuottavat positiivisia arvoja.

Available Functions
turnType getTurnType();

Parameters

Tämä funktio ei ota vastaan ​​parametreja.

Return Values

Palauttaa arvon turnType joka osoittaa, mikä suunta tuottaa positiivisia arvoja:

  • right — Clockwise rotation returns positive values.
  • left — Counterclockwise rotation returns positive values.
Notes