Inertiaalinen#

Johdanto#

Inertia-anturi mittaa robotin liikettä ja kääntymistä.

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.

Alla on luettelo käytettävissä olevista menetelmistä:

Suunta — Lue ja ohjaa suuntaa, kiertoa ja anturin kalibrointia.

  • heading — Palauttaa anturin suunnan väliltä 0–359,99 astetta.

  • rotation — Palauttaa anturin kääntymisasteen.

  • gyro_rate — Palauttaa anturin pyörimisnopeuden valitulla akselilla.

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

  • calibrate — Kalibroi inertia-anturin.

  • set_heading — Asettaa inertia-anturin nykyisen suunnan uuteen suunta-arvoon.

  • set_rotation — Asettaa inertia-anturin nykyisen pyörimissuunnan uuteen pyörimisarvoon.

  • reset_heading — Palauttaa inertia-anturin nykyisen suunnan 0 asteeseen.

  • reset_rotation — Palauttaa inertia-anturin nykyisen pyörimiskulman arvoon 0 astetta.

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

  • changed — Rekisteröi funktion suoritettavaksi, kun inertia-anturin arvo muuttuu.

  • installed — Tarkistaa, onko inertia-anturi asennettu.

Liike — Mittaa kiihtyvyyttä, törmäyksiä ja kääntymissuunnan käyttäytymistä.

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

  • collision — Rekisteröi funktion suoritettavaksi, kun inertia-anturi havaitsee törmäyksen.

  • set_turn_type — Asettaa, mitkä käännössuunnat palauttavat positiivisia suunta-arvoja.

  • get_turn_type — Palauttaa arvon, jonka käännössuunta palauttaa positiivisiksi suunta-arvoiksi.

Rakentaja

Suuntautuminen#

heading#

Suunta on anturin osoittama suunta, mitattuna asteina välillä 0 - 359,99. heading palauttaa anturin nykyisen suunnan liukulukuna.

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

Usage:
inertial_1.heading(units)

Parametrit

Kuvaus

units

Valinnainen. Kulmayksikkö: DEGREES (oletus) tai TURNS

# Display the heading after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print(inertial_1.heading())

rotation#

Kierto ilmaisee, kuinka paljon anturi on kääntynyt asteina. Toisin kuin suunnassa, kierto voi kasvaa yli 359,99 asteen tai laskea alle 0 asteen. Projektin alussa kiertoarvoksi asetetaan 0 astetta. rotation palauttaa inertia-anturin nykyisen kiertonopeuden liukulukuna.

Kääntyminen oikealle lisää kiertoa ja kääntäminen vasemmalle vähentää sitä. Esimerkiksi kaksi täyttä kierrosta oikealle palauttaa 720 asteen kiertoa. Yksi täysi kierros vasemmalle 0 asteesta palauttaa -360 asteen kiertoa.

Usage:
inertial_1.rotation(units)

Parametrit

Kuvaus

units

Valinnainen. Kiertoyksikkö: DEGREES (oletus) tai TURNS

# Display the rotation after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print(inertial_1.rotation())

gyro_rate#

Gyrosnopeus ilmaisee inertia-anturin pyörimisnopeuden. gyro_rate palauttaa inertia-anturin nykyisen pyörimisnopeuden valitulla akselilla liukulukuna.

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

Usage:
inertial_1.gyro_rate(axis, units)

Parametrit

Kuvaus

axis

Akseli, josta gyroskoopin nopeus palautetaan:

  • AxisType.XAXIS
  • AxisType.YAXIS
  • AxisType.ZAXIS

units

Valinnainen. Gyroskoopin nopeusyksikkö:

  • VelocityUnits.DPS (oletus)
  • VelocityUnits.RPM
  • VelocityUnits.PERCENT

# Display the rate of change of
# rotation while turning
drivetrain.turn(RIGHT)
wait(1, SECONDS)
brain.screen.print(inertial_1.gyro_rate(AxisType.ZAXIS, VelocityUnits.DPS))
drivetrain.stop()

orientation#

Suunta on inertia-anturin nykyinen kulma valitulla kääntöakselilla. orientation palauttaa inertia-anturin vierintäkulman, kallistuksen tai kääntökulman välillä -180,00 - 180,00 astetta liukulukuna.

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

Usage:
inertial_1.orientation(type, units)

Parametrit

Kuvaus

type

Palautettava suuntakulma:

  • AxisType.PITCH
  • AxisType.ROLL
  • AxisType.YAW

units

Valinnainen. Suuntayksikkö:

  • DEGREES (oletus)
  • RotationUnits.TURNS

# Display the roll, pitch, and yaw of the Brain as it
# is rotated by hand
while True:
    brain.screen.clear_screen()
    brain.screen.print(inertial_1.orientation(AxisType.ROLL, DEGREES))
    brain.screen.next_row()
    brain.screen.print(inertial_1.orientation(AxisType.PITCH, DEGREES))
    brain.screen.next_row()
    brain.screen.print(inertial_1.orientation(AxisType.YAW, DEGREES))
    brain.screen.next_row()
    brain.screen.set_cursor(1, 1)
    wait(0.1, SECONDS)

calibrate#

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.

Projekti odottaa kalibroinnin valmistumista ennen seuraavan koodirivin suorittamista.

Usage:
inertial_1.calibrate()

Parametrit

Kuvaus

Tällä menetelmällä ei ole parametreja.

# Start calibration.
inertial_1.calibrate()
# Print that the Inertial Sensor is calibrating while
# waiting for it to finish calibrating.
while inertial_1.is_calibrating():
    brain.screen.clear()
    brain.screen.print("Inertial Sensor Calibrating")
    wait(50, MSEC)

set_heading#

Suunta on anturin suunta, mitattuna asteina välillä 0 - 359,99. set_heading muuttaa inertia-anturin nykyisen suunnan uuteen suunta-arvoon.

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.

Usage:
inertial_1.set_heading(value, units)

Parametrit

Kuvaus

value

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

units

Valinnainen. Kulmayksikkö: DEGREES (oletus) tai TURNS

# Turn the robot around
inertial_1.set_heading(180, DEGREES)
drivetrain.turn_to_heading(0)

set_rotation#

Kierto ilmaisee, kuinka paljon anturi on kääntynyt, mitattuna asteina. Toisin kuin suunnassa, kierto voi kasvaa yli 359,99 asteen tai laskea alle 0 asteen. Projektin alussa kiertoarvoksi asetetaan 0 astetta. set_rotation muuttaa inertia-anturin nykyisen kiertoliikkeen uuteen arvoon.

Jos anturi on esimerkiksi tehnyt kaksi täyttä käännöstä oikealle, sen kiertoarvo on 720 astetta. Kierron asettaminen 0 asteeseen palauttaa kiertoarvon 720 asteesta 0 asteeseen. Tämän jälkeen anturi voi seurata kierroksia tämän uuden arvon perusteella.

Usage:
inertial_1.set_rotation(value, units)

Parametrit

Kuvaus

value

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

units

Valinnainen. Kiertoyksikkö: DEGREES (oletus) tai TURNS

# Turn the robot around
inertial_1.set_rotation(-180, DEGREES)
drivetrain.turn_to_rotation(0)

reset_heading#

reset_heading nollaa inertia-anturin nykyisen suunnan 0 asteeseen.

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

Usage:
inertial_1.reset_heading()

Parametrit

Kuvaus

Tällä menetelmällä ei ole parametreja.

reset_rotation#

reset_rotation nollaa inertia-anturin nykyisen pyörimiskulman 0 asteeseen.

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

Usage:
inertial_1.reset_rotation()

Parametrit

Kuvaus

Tällä menetelmällä ei ole parametreja.

is_calibrating#

is_calibrating palauttaa, onko inertia-anturi parhaillaan kalibroimassa.

  • True — Inertia-anturi kalibroi.

  • False — Inertia-anturi ei kalibroi.

Usage:
inertial_1.is_calibrating()

Parametrit

Kuvaus

Tällä menetelmällä ei ole parametreja.

changed#

changed rekisteröi funktion kutsuttavaksi aina, kun inertia-anturin arvo muuttuu.

Usage:
inertial_1.changed(callback, arg)

Parametrit

Kuvaus

callback

Aiemmin määritelty function, joka suoritetaan, kun inertia-anturin arvo muuttuu.

arg

Valinnainen. Tuple, joka sisältää argumentteja, jotka välitetään takaisinkutsufunktiolle. Lisätietoja on kohdassa Funktioiden käyttö parametrien kanssa.

def my_function():
  brain.screen.print("Value changed!!")

# Call my_function whenever inertial_1's value changes
inertial_1.changed(my_function)

installed#

installed tarkistaa, onko inertia-anturi asennettu.

  • True — Inertia-anturi on asennettu.

  • False — Inertia-anturia ei ole asennettu.

Usage:
inertial_1.installed()

Parametrit

Kuvaus

Tällä menetelmällä ei ole parametreja.

Liike#

acceleration#

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

G on kiihtyvyyden yksikkö. 1 G on suunnilleen painovoiman aiheuttama kiihtyvyys, jonka tunnet paikallasi istuessasi.

Arvo voi olla positiivinen tai negatiivinen valitun akselin kiihtyvyyden suunnasta riippuen. Akselivaihtoehdot ovat AxisType.XAXIS, AxisType.YAXISja AxisType.ZAXIS.

Usage:
inertial_1.acceleration(type)

Parametrit

Kuvaus

type

Kiihtyvyyden mittausakseli:

  • AxisType.XAXIS
  • AxisType.YAXIS
  • AxisType.ZAXIS

# Return the acceleration for the Z axis of the Inertial Sensor
zaccel = inertial_1.acceleration(AxisType.ZAXIS)

collision#

collision rekisteröi funktion kutsuttavaksi aina, kun inertia-anturi havaitsee äkillisen iskun tai törmäyksen.

Usage:
inertial_1.collision(callback, arg)

Parametrit

Kuvaus

callback

Aiemmin määritelty function, joka suoritetaan, kun törmäys havaitaan.

arg

Valinnainen. Tuple, joka sisältää argumentteja, jotka välitetään takaisinkutsufunktiolle. Lisätietoja on kohdassa Funktioiden käyttö parametrien kanssa.

def my_function():
  brain.screen.print("Collision!")

# Call my_function whenever a collision is detected
inertial_1.collision(my_function)

set_turn_type#

set_turn_type asettaa, mikä käännössuunta palauttaa positiivisia suunta-arvoja.

Usage:
inertial_1.set_turn_type(turntype)

Parametrit

Kuvaus

turntype

Asetettava käännöstyyppi:

  • LEFT
  • RIGHT

get_turn_type#

get_turn_type palauttaa mikä käännössuunta palauttaa positiiviset suunta-arvot.

  • LEFT — Vasemmalle kääntyminen palauttaa positiiviset suunta-arvot.

  • RIGHT — Oikealle kääntyminen palauttaa positiiviset suunta-arvot.

Usage:
inertial_1.get_turn_type()

Parametrit

Kuvaus

Tällä menetelmällä ei ole parametreja.

Rakentajat#

Inertial#

Inertial luo inertia-anturin.

Usage:
Inertial(smartport)

Parametrit

Kuvaus

smartport

Älyportti, johon inertia-anturi on kytketty, kirjoitetaan muodossa Ports.PORTx, jossa x on portin numero.

# Create a new object "inertial_1" with the Inertial class.
inertial_1 = Inertial(Ports.PORT1)