Inercinis#

Įvadas#

Inercinis jutiklis matuoja, kaip robotas juda ir sukasi.

Inercinis jutiklis tam naudoja dvi dalis. Giroskopas matuoja posūkius, pvz., kryptį, sukimąsi, giroskopo greitį ir orientaciją. Akselerometras matuoja judėjimo pokyčius, pvz., pagreitėjimą arba sulėtėjimą išilgai x, y ir z ašių.

Kad „VEXcode V5“ būtų rodomos inercinės komandos, įrenginių lange reikia sukonfigūruoti inercinį jutiklį.

Žemiau pateikiamas galimų metodų sąrašas:

Orientacija – nuskaitykite ir valdykite kryptį, sukimąsi ir jutiklių kalibravimą.

  • heading – Grąžina jutiklio kryptį nuo 0 iki 359,99 laipsnių.

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

  • gyro_rate — Grąžina, kaip greitai jutiklis sukasi pasirinktoje ašyje.

  • orientation — Grąžina inercinio jutiklio pasvirimo, posvyrio arba sukimosi kampą.

  • set_heading – Nustato inercinio jutiklio dabartinę kryptį į naują krypties reikšmę.

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

  • calibrate – Kalibruoja inercinį jutiklį.

  • reset_heading – Inercinio jutiklio dabartinę kryptį nustato į 0 laipsnių.

  • reset_rotation – Atkuria inercinio jutiklio dabartinį sukimosi kampą į 0 laipsnių.

  • is_calibrating — Grąžina, ar inercinis jutiklis šiuo metu kalibruojamas.

  • changed — Registruoja funkciją, kuri bus vykdoma, kai pasikeičia inercinio jutiklio vertė.

  • installed – Patikrina, ar įdiegtas inercinis jutiklis.

Judėjimas – matuokite pagreitį, susidūrimus ir posūkio krypties elgseną.

  • acceleration – Grąžina, kaip greitai jutiklis greitėja arba lėtėja pasirinktoje ašyje.

  • collision — Registruoja funkciją, kuri bus vykdoma, kai inercinis jutiklis aptiks susidūrimą.

  • set_turn_type — Nustato, kurios posūkio kryptys grąžina teigiamas krypties reikšmes.

  • get_turn_type — Grąžina posūkio kryptį, kuri grąžina teigiamas krypties reikšmes.

Konstruktorius

  • Inertial – Sukuria inercinį jutiklį.

Orientacija#

heading#

Kryptis – tai jutiklio judėjimo kryptis, matuojama laipsniais nuo 0 iki 359,99. heading grąžina dabartinę jutiklio judėjimo kryptį kaip plūdurinę kablelį.

Pradinė kryptis yra 0 laipsnių. Jei jutiklis pasisuka daugiau nei 359,99 laipsnio, kryptis grįžta prie 0 laipsnių.

Usage:
inertial_1.heading(units)

Parametrai

Aprašymas

units

Pasirinktinai. Krypties vienetas: DEGREES (numatytasis) arba TURNS

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

rotation#

Sukimasis rodo, kiek jutiklis pasisuko, matuojamas laipsniais. Skirtingai nuo krypties, sukimasis gali padidėti virš 359,99 laipsnio arba sumažėti žemiau 0 laipsnių. Projekto pradžioje sukimosi reikšmė nustatoma į 0 laipsnių. rotation grąžina inercinio jutiklio dabartinį sukimąsi kaip slankiojančią reikšmę.

Sukant į dešinę, sukimasis padidėja, o sukant į kairę – sumažėja. Pavyzdžiui, padarius du pilnus apsisukimus į dešinę, pasisukimas bus 720 laipsnių. Pasukus vieną pilną apsisukimą į kairę nuo 0 laipsnių, pasisukimas bus -360 laipsnių.

Usage:
inertial_1.rotation(units)

Parametrai

Aprašymas

units

Pasirinktinai. Pasukimo vienetas: DEGREES (numatytasis) arba TURNS

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

gyro_rate#

Giroskopo greitis nurodo inercinio jutiklio sukimosi greitį. gyro_rate grąžina dabartinį inercinio jutiklio sukimosi greitį pasirinktoje ašyje kaip slankiojo kablelio reikšmę.

Reikšmė gali būti teigiama arba neigiama, priklausomai nuo jutiklio sukimosi krypties aplink tą ašį.

Usage:
inertial_1.gyro_rate(axis, units)

Parametrai

Aprašymas

axis

Ašis, iš kurios reikia grąžinti giroskopo greitį:

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

units

Pasirinktinai. Giroskopo greičio vienetas:

  • VelocityUnits.DPS (numatytasis)
  • 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#

Orientacija yra inercinio jutiklio dabartinis kampas pasirinktos sukimosi ašies atžvilgiu. orientation grąžina inercinio jutiklio posvyrį, žingsnį arba sukimosi kampą nuo -180,00 iki 180,00 laipsnių kaip slankiojo kampo reikšmę.

Riedėjimas, posvyris ir sukimas apibūdina skirtingus jutiklio pakreipimo arba pasukimo būdus.

Usage:
inertial_1.orientation(type, units)

Parametrai

Aprašymas

type

Grąžintinas orientacijos kampas:

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

units

Pasirinktinai. Orientacijos vienetas:

  • DEGREES (numatytasis)
  • 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)

set_heading#

Kryptis – tai jutiklio kryptis, matuojama laipsniais nuo 0 iki 359,99. set_heading pakeičia inercinio jutiklio dabartinę kryptį į naują krypties reikšmę.

Pavyzdžiui, jei jutiklis pasisuko į dešinę, nustačius 0 laipsnių kryptį, ta dešinėn nukreipta padėtis tampa nauja 0 laipsnių. Tada jutiklis gali sekti kitas kryptis pagal tą naują kryptį.

Usage:
inertial_1.set_heading(value, units)

Parametrai

Aprašymas

value

Jutiklio krypties vertė laipsniais. Tai gali būti vertė nuo 0 iki 359,99.

units

Pasirinktinai. Krypties vienetas: DEGREES (numatytasis) arba TURNS

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

set_rotation#

Sukimas rodo, kiek jutiklis pasisuko, matuojamas laipsniais. Skirtingai nuo krypties, sukimasis gali padidėti virš 359,99 laipsnio arba sumažėti žemiau 0 laipsnių. Projekto pradžioje sukimosi reikšmė nustatoma į 0 laipsnių. set_rotation pakeičia inercinio jutiklio dabartinę sukimosi reikšmę į naują.

Pavyzdžiui, jei jutiklis atliko du pilnus posūkius į dešinę, jo posūkio vertė bus 720 laipsnių. Nustačius posūkį į 0 laipsnių, posūkis bus atstatytas iš 720 į 0 laipsnių. Tada jutiklis galės sekti posūkius pagal tą naują vertę.

Usage:
inertial_1.set_rotation(value, units)

Parametrai

Aprašymas

value

Jutiklio sukimosi vertė laipsniais. Tai gali būti sveikasis skaičius arba dešimtainis skaičius (slankioji trupmena).

units

Pasirinktinai. Pasukimo vienetas: DEGREES (numatytasis) arba TURNS

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

calibrate#

calibrate kalibruoja inercinį jutiklį.

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

Projektas lauks, kol bus atliktas kalibravimas, prieš paleidžiant kitą kodo eilutę.

Usage:
inertial_1.calibrate()

Parametrai

Aprašymas

Šis metodas neturi parametrų.

# 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)

reset_heading#

reset_heading atstato inercinio jutiklio dabartinę kryptį į 0 laipsnių.

Panaudojus šį metodą, dabartinė jutiklio kryptis tampa nauja 0 laipsnių kryptimi.

Usage:
inertial_1.reset_heading()

Parametrai

Aprašymas

Šis metodas neturi parametrų.

reset_rotation#

reset_rotation atstato inercinio jutiklio dabartinį sukimąsi į 0 laipsnių.

Panaudojus šį metodą, jutiklis seka būsimus posūkius nuo naujos 0 laipsnių sukimosi vertės.

Usage:
inertial_1.reset_rotation()

Parametrai

Aprašymas

Šis metodas neturi parametrų.

is_calibrating#

is_calibrating grąžina, ar inercinis jutiklis šiuo metu kalibruojamas.

  • True — Inercinis jutiklis kalibruojamas.

  • False — Inercinis jutiklis nekalibruojamas.

Usage:
inertial_1.is_calibrating()

Parametrai

Aprašymas

Šis metodas neturi parametrų.

changed#

changed registruoja funkciją, kuri bus iškviečiama kaskart, kai pasikeis inercinio jutiklio vertė.

Usage:
inertial_1.changed(callback, arg)

Parametrai

Aprašymas

callback

Anksčiau apibrėžta function, kuri vykdoma, kai pasikeičia inercinio jutiklio vertė.

arg

Pasirinktinai. Rinkinys su argumentais, kurie turi būti perduoti atgalinio iškvietimo funkcijai. Daugiau informacijos žr. Funkcijų su parametrais naudojimas.

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

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

installed#

installed patikrina, ar įdiegtas inercinis jutiklis.

  • True — Inercinis jutiklis sumontuotas.

  • False — Inercinis jutiklis neįdiegtas.

Usage:
inertial_1.installed()

Parametrai

Aprašymas

Šis metodas neturi parametrų.

Judesys#

acceleration#

Pagreitis rodo, kaip greitai jutiklis greitėja arba lėtėja. acceleration grąžina inercinio jutiklio pagreitį pasirinktoje ašyje nuo -4,0 G iki 4,0 G kaip slankiojo kablelio reikšmę.

G yra vienetas, naudojamas pagreičiui matuoti. 1 G yra maždaug tas pagreitis, kurį jaučiate dėl gravitacijos sėdėdami vietoje.

Reikšmė gali būti teigiama arba neigiama, priklausomai nuo pasirinktos ašies pagreičio krypties. Ašies parinktys yra AxisType.XAXIS, AxisType.YAXISir AxisType.ZAXIS.

Usage:
inertial_1.acceleration(type)

Parametrai

Aprašymas

type

Ašis, kurioje matuojamas pagreitis:

  • 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 užregistruoja funkciją, kuri bus iškviečiama, kai inercinis jutiklis aptiks staigų smūgį ar susidūrimą.

Usage:
inertial_1.collision(callback, arg)

Parametrai

Aprašymas

callback

Anksčiau apibrėžta function, kuri vykdoma aptikus susidūrimą.

arg

Pasirinktinai. Rinkinys su argumentais, kurie turi būti perduoti atgalinio iškvietimo funkcijai. Daugiau informacijos žr. Funkcijų su parametrais naudojimas.

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 nustato, kuri posūkio kryptis grąžina teigiamas krypties reikšmes.

Usage:
inertial_1.set_turn_type(turntype)

Parametrai

Aprašymas

turntype

Nustatomas posūkio tipas:

  • LEFT
  • RIGHT

get_turn_type#

get_turn_type grąžina, kuri posūkio kryptis grąžina teigiamas krypties reikšmes.

  • LEFT — Posūkiai į kairę grąžina teigiamas krypties vertes.

  • RIGHT — Posūkiai į dešinę grąžina teigiamas krypties vertes.

Usage:
inertial_1.get_turn_type()

Parametrai

Aprašymas

Šis metodas neturi parametrų.

Konstruktoriai#

Inertial#

Inertial sukuria inercinį jutiklį.

Usage:
Inertial(port)

Parametrai

Aprašymas

port

Išmanusis prievadas, prie kurio prijungtas inercinis jutiklis, nuo 1 iki 21.

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