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 |
|---|---|---|
|
|
Valinnainen. Suunta, joka 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 Functionsdouble heading( rotationUnits units = degrees );
Parametri |
Tyyppi |
Kuvaus |
|---|---|---|
|
|
Suuntayksikkö:
|
Palauttaa arvon double joka edustaa anturin nykyistä suuntaa määritetyissä yksiköissä.
Otsikon arvo kiertyy 0 ja 359,99 asteen välille. Käytä
rotationsaadaksesi jatkuvan kierron arvon.
// 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 Functionsdouble rotation( rotationUnits units = degrees );
Parametri |
Tyyppi |
Kuvaus |
|---|---|---|
|
|
Pyörimisyksikkö:
|
Palauttaa arvon double joka edustaa nykyistä kiertoa määritetyissä yksiköissä.
Kiertoarvo on jatkuva eikä kierry 0 ja 359,99 asteen välillä. Käytä
headingpäästäksesi kierretyn otsikon arvoon.
// 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 Functionsvoid setHeading( double value,
rotationUnits units );
Parametri |
Tyyppi |
Kuvaus |
|---|---|---|
|
|
Anturille asetettava suunta-arvo asteina. Tämä voi olla arvo väliltä 0–359,99. |
|
|
Suuntayksikkö:
|
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 Functionsvoid setRotation( double value,
rotationUnits units );
Parametri |
Tyyppi |
Kuvaus |
|---|---|---|
|
|
Anturille asetettava kiertoarvo asteina. Tämä voi olla kokonaisluku tai desimaaliluku. |
|
|
Pyörimisyksikkö:
|
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 Functionsvoid calibrate( );
Tämä funktio ei hyväksy parametreja.
Return ValuesTämä funktio ei palauta arvoa.
NotesAnturin tulisi pysyä paikallaan kalibroinnin aikana.
Käytä
isCalibratingmää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 Functionsvoid resetHeading();
Tämä funktio ei ota vastaan parametreja.
Return ValuesTä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 Functionsvoid resetRotation();
Tämä funktio ei ota vastaan parametreja.
Return ValuesTämä funktio ei palauta arvoa.
isCalibrating#
Palauttaa tiedon siitä, kalibroidaanko inertia-anturia parhaillaan.
Available Functionsbool isCalibrating();
Tämä funktio ei ota vastaan parametreja.
Return ValuesPalauttaa 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 Functionsvoid changed( void (* callback)(void) );
Parametri |
Tyyppi |
Kuvaus |
|---|---|---|
|
|
Osoitin funktioon, jota kutsutaan, kun otsikon arvo muuttuu. Funktio ei saa ottaa parametreja ja palauttaa arvon |
Tämä funktio ei palauta arvoa.
ExamplesMää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 Functionsbool installed();
Tämä funktio ei ota vastaan parametreja.
Return ValuesPalauttaa 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.
double acceleration( axisType axis );
Parametri |
Tyyppi |
Kuvaus |
|---|---|---|
|
|
Kiihtyvyyden mittausakseli:
|
Palauttaa luvun double joka edustaa kiihtyvyyttä määritetyn akselin suuntaisesti yksiköissä G (gravitaatioyksikkö).
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 Functionsdouble gyroRate( axisType axis,
velocityUnits units );
Parametri |
Tyyppi |
Kuvaus |
|---|---|---|
|
|
Akseli, josta gyroskoopin nopeus palautetaan:
|
|
|
Gyroskoopin nopeusyksikkö:
|
Palauttaa luvun double joka edustaa nykyistä pyörimisnopeutta määritetyn akselin suuntaisesti valituissa yksiköissä.
// 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 Functionsdouble orientation(
orientationType type,
rotationUnits units );
Parametri |
Tyyppi |
Kuvaus |
|---|---|---|
|
|
Paluukulman suuntaus:
|
|
|
The orientation unit:
|
Palauttaa luvun double joka edustaa valittua suuntakulmaa määritetyissä yksiköissä.
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 Functionsvoid collision( void (* callback)(axisType, double, double, double) );
Parametri |
Tyyppi |
Kuvaus |
|---|---|---|
|
|
Osoitin funktioon, jota kutsutaan törmäyksen havaittaessa. Takaisinkutsufunktion on hyväksyttävä seuraavat parametrit:
void. |
Tämä funktio ei palauta arvoa.
ExamplesMää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 Functionsvoid setTurnType( turnType dir );
Parametri |
Tyyppi |
Kuvaus |
|---|---|---|
|
|
Positiivisia arvoja palauttava suunta:
|
Tämä funktio ei palauta arvoa.
NotesTämä asetus vaikuttaa siihen, miten
headingjarotationraportoivat positiiviset ja negatiiviset arvot.Tämän funktion kutsuminen korvaa inertiaaliobjektin
inertialyhteydessä määritetyndirarvon.
getTurnType#
Palautussuuntaan kääntyvät arvot tuottavat positiivisia arvoja.
Available FunctionsturnType getTurnType();
Tämä funktio ei ota vastaan parametreja.
Return ValuesPalauttaa arvon turnType joka osoittaa, mikä suunta tuottaa positiivisia arvoja:
-
right— Clockwise rotation returns positive values. -
left— Counterclockwise rotation returns positive values.
This value is set during construction of the
inertialobject or by callingsetTurnType.