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.
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.calibrate— Kalibrē inerciālo sensoru.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.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 |
|---|---|
|
Pēc izvēles. Virziena mērvienība: |
# 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 |
|---|---|
|
Pēc izvēles. Rotācijas vienība: |
# 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 |
|---|---|
|
Ass, no kuras jāatgriež žiroskopa ātrums:
|
|
Neobligāti. Žiroskopiskā ātruma mērvienība:
|
# 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 |
|---|---|
|
Atgriežamais orientācijas leņķis:
|
|
Pēc izvēles. Orientācijas mērvienība:
|
# 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 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)
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 |
|---|---|
|
Sensora iestatītā virziena vērtība grādos. Tā var būt vērtība no 0 līdz 359,99. |
|
Pēc izvēles. Virziena mērvienība: |
# 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 |
|---|---|
|
Sensora rotācijas vērtība grādos. Tā var būt vesels skaitlis vai decimālskaitlis (peldošs skaitlis). |
|
Pēc izvēles. Rotācijas vienība: |
# Turn the robot around
inertial_1.set_rotation(-180, DEGREES)
drivetrain.turn_to_rotation(0)
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 |
|---|---|
|
Iepriekš definēta funkcija, kas tiek izpildīta, kad mainās inerciālā sensora vērtība. |
|
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šu 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 |
|---|---|
|
Ass, uz kuras mērīt paātrinājumu:
|
# 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 |
|---|---|
|
Iepriekš definēta funkcija, kas tiek izpildīta, kad tiek konstatēta sadursme. |
|
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 |
|---|---|
|
Iestatāmais pagrieziena veids:
|
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(smartport)
Parametri |
Apraksts |
|---|---|
|
Viedā pieslēgvieta, kurai ir pievienots inerciālais sensors, tiek pierakstīta kā |
# Create a new object "inertial_1" with the Inertial class.
inertial_1 = Inertial(Ports.PORT1)