Inerciāls#

Ievads#

Inerciālais sensors mēra robota kustību un pagriezienus.

Inerciālais sensors šim nolūkam izmanto divas daļas. Žiroskops mēra pagriezienu, piemēram, virzienu, rotāciju, žiroskopa ātrumu un orientāciju. Akselerometrs mēra kustības izmaiņas, piemēram, paātrinājumu vai palēninājumu pa x, y un z asīm.

Lai VEXcode V5 parādītos inerciālās komandas, ierīču logā ir jākonfigurē inerciālais sensors.

Zemāk ir pieejamo metožu saraksts:

Orientācija — nolasīt un kontrolēt virzienu, rotāciju un sensoru kalibrēšanu.

  • heading — Atgriež sensora virziena vērtību no 0 līdz 359,99 grādiem.

  • rotation — Atgriež, cik tālu sensors ir pagriezies.

  • gyro_rate — Atgriež sensora rotācijas ātrumu pa atlasīto asi.

  • orientation — Atgriež inerciālā sensora rites, slīpuma vai novirzes leņķi.

  • set_heading — Iestata inerciālā sensora pašreizējo virzienu uz jaunu virziena vērtību.

  • set_rotation — Iestata inerciālā sensora pašreizējo rotāciju uz jaunu rotācijas vērtību.

  • calibrate — Kalibrē inerciālo sensoru.

  • reset_heading — Atiestata inerciālā sensora pašreizējo virzienu uz 0 grādiem.

  • reset_rotation — Atiestata inerciālā sensora pašreizējo rotāciju uz 0 grādiem.

  • is_calibrating — Atgriež, vai inerciālais sensors pašlaik kalibrē.

  • changed — Reģistrē funkciju, kas jāizpilda, mainoties inerciālā sensora vērtībai.

  • installed — Pārbauda, ​​vai ir uzstādīts inerciālais sensors.

Kustība — mēra paātrinājumu, sadursmes un pagrieziena virziena uzvedību.

  • acceleration — Atgriež, cik ātri sensors paātrinās vai palēninās pa atlasīto asi.

  • collision — Reģistrē funkciju, kas jāizpilda, kad inerciālais sensors konstatē sadursmi.

  • set_turn_type — Iestata, kurš pagrieziena virziens atgriež pozitīvas virziena vērtības.

  • get_turn_type — Atgriež pagrieziena virzienu, kas atgriež pozitīvas virziena vērtības.

Konstruktors

  • Inertial – Izveido inerciālu sensoru.

Orientācija#

heading#

Virziens ir sensora vērsts virziens, mērīts grādos no 0 līdz 359,99. heading atgriež sensora pašreizējo virzienu kā peldošo vienību.

Sākuma kurss ir 0 grādi. Ja sensors pagriežas virs 359,99 grādiem, kurss atgriežas pie 0 grādiem.

Usage:
inertial_1.heading(units)

Parametri

Apraksts

units

Pēc izvēles. Virziena mērvienība: DEGREES (pēc noklusējuma) vai TURNS

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

rotation#

Rotācija ir sensora pagrieziena lielums, mērot grādos. Atšķirībā no virziena, rotācija var palielināties virs 359,99 grādiem vai samazināties zem 0 grādiem. Projekta sākumā rotācijas vērtība ir iestatīta uz 0 grādiem. rotation atgriež inerciālā sensora pašreizējo rotāciju kā peldošo skaitli.

Pagriežoties pa labi, rotācija palielinās, bet pagriežoties pa kreisi, tā samazinās. Piemēram, veicot divus pilnus pagriezienus pa labi, rotācija būs 720 grādi. Pagriežoties vienu pilnu pagriezienu pa kreisi no 0 grādiem, rotācija būs -360 grādi.

Usage:
inertial_1.rotation(units)

Parametri

Apraksts

units

Pēc izvēles. Rotācijas vienība: DEGREES (pēc noklusējuma) vai TURNS

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

gyro_rate#

Žiroskopijas ātrums norāda, cik ātri rotē inerciālais sensors. gyro_rate atgriež inerciālā sensora pašreizējo griešanās ātrumu uz atlasītās ass kā peldošo vērtību.

Vērtība var būt pozitīva vai negatīva atkarībā no sensora griešanās virziena ap šo asi.

Usage:
inertial_1.gyro_rate(axis, units)

Parametri

Apraksts

axis

Ass, no kuras jāatgriež žiroskopa ātrums:

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

units

Neobligāti. Žiroskopiskā ātruma mērvienība:

  • VelocityUnits.DPS (pēc noklusējuma)
  • 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#

Orientācija ir inerciālā sensora pašreizējais leņķis uz atlasīto pagrieziena asi. orientation atgriež inerciālā sensora svēršanos, slīpumu vai novirzi no -180,00 līdz 180,00 grādiem kā peldošo vērtību.

Riteņošanās, slīpums un novirze apraksta dažādus veidus, kā sensors var sasvērties vai pagriezties.

Usage:
inertial_1.orientation(type, units)

Parametri

Apraksts

type

Atgriežamais orientācijas leņķis:

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

units

Pēc izvēles. Orientācijas mērvienība:

  • DEGREES (pēc noklusējuma)
  • 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#

Virziens ir sensora vērsts virziens, mērīts grādos no 0 līdz 359,99. set_heading maina inerciālā sensora pašreizējo virzienu uz jaunu virziena vērtību.

Piemēram, ja sensors ir pagriezies pa labi, virziena iestatīšana uz 0 grādiem padara šo labo pusi vērsto pozīciju par jauno 0 grādu. Pēc tam sensors var izsekot citiem virzieniem, pamatojoties uz šo jauno virzienu.

Usage:
inertial_1.set_heading(value, units)

Parametri

Apraksts

value

Sensora iestatītā virziena vērtība grādos. Tā var būt vērtība no 0 līdz 359,99.

units

Pēc izvēles. Virziena mērvienība: DEGREES (pēc noklusējuma) vai TURNS

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

set_rotation#

Rotācija norāda, cik daudz sensors ir pagriezies, mērot grādos. Atšķirībā no virziena, rotācija var palielināties virs 359,99 grādiem vai samazināties zem 0 grādiem. Projekta sākumā rotācijas vērtība ir iestatīta uz 0 grādiem. set_rotation maina inerciālā sensora pašreizējo rotāciju uz jaunu vērtību.

Piemēram, ja sensors ir veicis divus pilnus pagriezienus pa labi, tā rotācijas vērtība būs 720 grādi. Iestatot rotāciju uz 0 grādiem, šī rotācija tiks atiestatīta no 720 uz 0 grādiem. Pēc tam sensors var izsekot rotācijām, pamatojoties uz šo jauno vērtību.

Usage:
inertial_1.set_rotation(value, units)

Parametri

Apraksts

value

Sensora rotācijas vērtība grādos. Tā var būt vesels skaitlis vai decimālskaitlis (peldošs skaitlis).

units

Pēc izvēles. Rotācijas vienība: DEGREES (pēc noklusējuma) vai TURNS

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

calibrate#

calibrate kalibrē inerciālo sensoru.

Kalibrēšana palīdz sensoram pareizi izmērīt pagriezienus. Kalibrēšanas laikā sensoram jābūt nekustīgam. Ja sensors kalibrēšanas laikā kustas, virziena, rotācijas, žiroskopiskā ātruma un orientācijas vērtības var netikt pareizi izmērītas.

Projekts gaidīs, līdz tiks pabeigta kalibrēšana, pirms tiks palaista nākamā koda rinda.

Usage:
inertial_1.calibrate()

Parametri

Apraksts

Šai metodei nav parametru.

# 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 atiestata inerciālā sensora pašreizējo virzienu uz 0 grādiem.

Pēc šīs metodes izmantošanas sensora pašreizējais virziens kļūst par jauno 0 grādu kursu.

Usage:
inertial_1.reset_heading()

Parametri

Apraksts

Šai metodei nav parametru.

reset_rotation#

reset_rotation atiestata inerciālā sensora pašreizējo rotāciju uz 0 grādiem.

Pēc šīs metodes izmantošanas sensors seko līdzi turpmākajiem pagriezieniem, sākot no jaunās 0 grādu rotācijas vērtības.

Usage:
inertial_1.reset_rotation()

Parametri

Apraksts

Šai metodei nav parametru.

is_calibrating#

is_calibrating atgriež, vai inerciālais sensors pašlaik kalibrē.

  • True — Inerciālais sensors kalibrējas.

  • False — Inerciālais sensors nekalibrē.

Usage:
inertial_1.is_calibrating()

Parametri

Apraksts

Šai metodei nav parametru.

changed#

changed reģistrē funkciju, kas tiks izsaukta ikreiz, kad mainīsies inerciālā sensora vērtība.

Usage:
inertial_1.changed(callback, arg)

Parametri

Apraksts

callback

Iepriekš definēta funkcija, kas tiek izpildīta, kad mainās inerciālā sensora vērtība.

arg

Neobligāti. Kortežs, kas satur argumentus, kas jānodod atzvanīšanas funkcijai. Plašāku informāciju skatiet sadaļā Funkciju izmantošana ar parametriem.

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

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

installed#

installed pārbauda, ​​vai ir uzstādīts inerciālais sensors.

  • True — Inerciālais sensors ir uzstādīts.

  • False — Inerciālais sensors nav uzstādīts.

Usage:
inertial_1.installed()

Parametri

Apraksts

Šai metodei nav parametru.

Kustība#

acceleration#

Paātrinājums norāda, cik ātri sensors paātrinās vai palēninās. acceleration atgriež inerciālā sensora paātrinājumu uz atlasītās ass no -4,0 G līdz 4,0 G kā peldošo vērtību.

G ir mērvienība, ko izmanto paātrinājuma mērīšanai. 1 G apzīmē paātrinājumu, ko jūtat no gravitācijas, sēžot mierā.

Vērtība var būt pozitīva vai negatīva atkarībā no paātrinājuma virziena uz atlasītās ass. Asu opcijas ir AxisType.XAXIS, AxisType.YAXISun AxisType.ZAXIS.

Usage:
inertial_1.acceleration(type)

Parametri

Apraksts

type

Ass, uz kuras mērīt paātrinājumu:

  • 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 reģistrē funkciju, kas tiks izsaukta ikreiz, kad inerciālais sensors konstatē pēkšņu triecienu vai sadursmi.

Usage:
inertial_1.collision(callback, arg)

Parametri

Apraksts

callback

Iepriekš definēta funkcija, kas tiek izpildīta, kad tiek konstatēta sadursme.

arg

Neobligāti. Kortežs, kas satur argumentus, kas jānodod atzvanīšanas funkcijai. Plašāku informāciju skatiet sadaļā Funkciju izmantošana ar parametriem.

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 nosaka, kurš pagrieziena virziens atgriež pozitīvas virziena vērtības.

Usage:
inertial_1.set_turn_type(turntype)

Parametri

Apraksts

turntype

Iestatāmais pagrieziena veids:

  • LEFT
  • RIGHT

get_turn_type#

get_turn_type atgriež, kurš pagrieziena virziens atgriež pozitīvas virziena vērtības.

  • LEFT — Kreisie pagriezieni atgriež pozitīvas virziena vērtības.

  • RIGHT — Pagriezieni pa labi atgriež pozitīvas virziena vērtības.

Usage:
inertial_1.get_turn_type()

Parametri

Apraksts

Šai metodei nav parametru.

Konstruktori#

Inertial#

Inertial izveido inerciālu sensoru.

Usage:
Inertial(port)

Parametri

Apraksts

port

Viedports, kuram ir pievienots inerciālais sensors, no 1 līdz 21.

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