Pavarų dėžė#

Įvadas#

VEX V5 robotas važiuoja ir sukasi naudodamas pavaros mechanizmą. Pavaros mechanizmą sudaro varikliai ir ratai, kurie kartu judina robotą.

Sukonfigūruota pavaros sistema gali naudoti inercinį jutiklį, GPS jutiklį, giroskopinį jutiklį arba jo visai nebūti. Kai naudojamas jutiklis, pavaros sistema jį naudoja, kad padėtų robotui tiksliai judėti ir pasisukti. Kiekvieno projekto pradžioje pavaros sistema automatiškai kalibruoja jutiklį. Kalibravimo metu robotas turi būti nejudantis, kad jis galėtų tinkamai judėti ir pasisukti.

Yra daug būdų, kaip koduoti pavarą. Šiame puslapyje kaip pavaros pavadinimo pavyzdys naudojamas drivetrain Jei reikia, pakeiskite jį savo sukonfigūruotu pavadinimu.

Žemiau pateikiamas visų pavaros metodų sąrašas:

Veiksmai — Judinti ir pasukti robotą.

  • drive — Robotas judina pirmyn arba atgal amžinai.

  • drive_for — Robotas juda pirmyn arba atgal tam tikru atstumu.

  • turn — Robotas visam laikui pasukamas į kairę arba į dešinę.

  • turn_for — Robotas pasukamas į kairę arba į dešinę tam tikru laipsnių skaičiumi.

  • turn_to_heading – pasuka robotą tam tikra kryptimi nuo -359 iki 359 laipsnių. Robotas pasisuks trumpiausia kryptimi, kad pasiektų tikslinę kryptį.

  • turn_to_rotation — Įjungia roboto sukimąsi konkrečia kryptimi.

  • stop — Sustabdo roboto judėjimą.

  • calibrate_drivetrain – Kalibruoja jutiklį, konfigūruotą su pavaros sistema.

Mutatoriai – reguliuojami pavaros nustatymai.

  • set_drive_velocity — Nurodo robotui, kokiu greičiu važiuoti.

  • set_turn_velocity — Nurodo robotui, kaip greitai jis turi suktis.

  • set_stopping — Nurodo, kaip robotas nustos judėti: stabdydamas, riedėdamas iš vietos arba palaikydamas.

  • set_timeout — Nustato, kiek sekundžių robotas bandys užbaigti judesį.

  • set_heading — Pakeičia dabartinę roboto kryptį į naują.

  • set_rotation — Pakeičia dabartinį roboto sukimąsi į naują.

  • set_turn_threshold – Nurodo, kiek arti robotas turi priartėti prie tikslinio kampo, kad posūkis būtų baigtas.

  • set_turn_constant – Pakeičia, kaip stipriai robotas koreguoja savo posūkius.

  • set_turn_direction_reverse – Pakeičia, ar išmaniosios pavaros sistemos sukimosi kryptis yra atvirkštinė.

Getteriai – patikrinkite pavaros sistemos būseną.

  • is_done — Grąžina, ar robotas baigė judėti, kaip loginę reikšmę.

  • is_moving — Grąžina, ar robotas juda, kaip loginę reikšmę.

  • heading — Grąžina dabartinę roboto kryptį nuo 0 iki 359,99 laipsnių.

  • rotation — Grąžina dabartinį roboto sukimąsi.

  • velocity — Grąžina roboto važiavimo greitį.

  • current — Grąžina, kiek elektros srovės naudoja pavaros sistema.

  • power – Grąžina, kaip greitai pavaros sistema eikvoja energiją.

  • torque — Grąžina, kiek sukimo momento naudoja pavaros sistema.

  • efficiency – Grąžina, kaip efektyviai pavaros sistema naudoja galią.

  • temperature — Grąžina pavaros sistemos įšilimo lygį.

  • get_timeout – Grąžina dabartinį skirtojo laiko nustatymą.

Konstruktoriai – rankiniu būdu sukurkite ir konfigūruokite pavaros sistemą.

Veiksmai#

drive#

drive robotą judina pirmyn arba atgal amžinai. Robotas judės tol, kol jam bus duotas kitas veiksmas, pvz., pasisukti arba sustoti. Aps./min. arba laipsnių per sekundę riba keičiama pagal pavaros perdavimo skaičių.

Usage:
drivetrain.drive(direction, velocity, units)

Parametrai

Aprašymas

direction

Roboto judėjimo kryptis: FORWARD arba REVERSE.

velocity

Pasirinktinai. Važiavimo greitis nuo 0 % iki 100 %, kai naudojama PERCENT, nuo 0 iki 600 aps./min., kai naudojama RPM, arba nuo 0 iki 3600 laipsnių per sekundę, kai naudojama VelocityUnits.DPSTai gali būti sveikasis skaičius integer arba dešimtainis skaičius (float). Jei greitis nenurodytas, robotas važiuoja dabartiniu važiavimo greičiu.

units

Pasirinktinai. Greičio vienetas: RPM (apsisukimai per minutę, numatytoji reikšmė), PERCENTarba VelocityUnits.DPS (laipsniai per sekundę).

# Drive forward, then stop
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop()

# Drive forward at 360 degrees per second
drivetrain.drive(FORWARD, 360.0, VelocityUnits.DPS)

drive_for#

drive_for robotą judina pirmyn arba atgal tam tikru atstumu. Projektas lauks, kol robotas baigs judėti, prieš paleidžiant kitą kodo eilutę. Aps./min. arba laipsnių per sekundę riba keičiama pagal pavaros perdavimo skaičių.

Usage:
drivetrain.drive_for(direction, distance, units, velocity, units_v, wait)

Parametrai

Aprašymas

direction

Roboto judėjimo kryptis: FORWARD arba REVERSE.

distance

Atstumas, kurį nuvažiuoja robotas. Tai gali būti sveikasis skaičius integer arba dešimtainis skaičius (float).

units

Pasirinktinai. Atstumo vienetas: INCHES (numatytasis) arba MM (milimetrai).

velocity

Pasirinktinai. Važiavimo greitis nuo 0 % iki 100 %, kai naudojama PERCENT, nuo 0 iki 600 aps./min., kai naudojama RPM, arba nuo 0 iki 3600 laipsnių per sekundę, kai naudojama VelocityUnits.DPSTai gali būti sveikasis skaičius integer arba dešimtainis skaičius (float). Jei greitis nenurodytas, robotas važiuoja dabartiniu važiavimo greičiu.

units_v

Pasirinktinai. Greičio vienetas: RPM (apsisukimai per minutę, numatytoji reikšmė), PERCENTarba VelocityUnits.DPS (laipsniai per sekundę).

wait

Pasirinktinai. wait=True (numatytasis) priverčia projektą laukti, kol robotas baigs judėti, prieš paleidžiant kitą kodo eilutę. wait=False priverčia kitą kodo eilutę paleisti iš karto.

# Drive forwards and backwards
drivetrain.drive_for(FORWARD, 5)
wait(1, SECONDS)
drivetrain.drive_for(REVERSE, 5)

turn#

turn suka robotą į kairę arba į dešinę amžinai. Robotas suksis tol, kol jam bus duotas kitas veiksmas, pvz., važiuoti arba sustoti. Aps./min. arba laipsnių per sekundę riba keičiama pagal pavaros perdavimo skaičių.

Usage:
drivetrain.turn(direction, velocity, units)

Parametrai

Aprašymas

direction

Roboto sukimosi kryptis: LEFT arba RIGHT.

velocity

Pasirinktinai. Sukimosi greitis nuo 0% iki 100%, kai naudojama PERCENT, nuo 0 iki 600 aps./min., kai naudojama RPM, arba nuo 0 iki 3600 laipsnių per sekundę, kai naudojama VelocityUnits.DPSTai gali būti sveikasis skaičius integer arba dešimtainis skaičius (float). Jei greitis nenurodytas, robotas sukasi dabartiniu posūkio greičiu.

units

Pasirinktinai. Greičio vienetas: RPM (apsisukimai per minutę, numatytoji reikšmė), PERCENTarba VelocityUnits.DPS (laipsniai per sekundę).

# Turn right, then stop
drivetrain.turn(RIGHT)
wait(2, SECONDS)
drivetrain.stop()

turn_for#

turn_for pasuka robotą į kairę arba į dešinę tam tikru laipsnių skaičiumi. Posūkis yra santykinis su dabartine roboto padėtimi. Projektas lauks, kol robotas baigs pasisukti, prieš paleidžiant kitą kodo eilutę. Aps./min. arba laipsnių per sekundę atveju riba keičiama pagal pavaros perdavimo skaičių.

Usage:
drivetrain.turn_for(direction, angle, units, velocity, units_v, wait)

Parametrai

Aprašymas

direction

Roboto sukimosi kryptis: LEFT arba RIGHT.

angle

Laipsnių, kuriais robotas pasisuka, skaičius. Tai gali būti sveikasis skaičius integer arba dešimtainis skaičius (float).

units

Pasirinktinai. Posūkio vienetas: DEGREES (numatytasis) arba TURNSVienas posūkis lygus 360 laipsnių.

velocity

Pasirinktinai. Sukimosi greitis nuo 0% iki 100%, kai naudojama PERCENT, nuo 0 iki 600 aps./min., kai naudojama RPM, arba nuo 0 iki 3600 laipsnių per sekundę, kai naudojama VelocityUnits.DPSTai gali būti sveikasis skaičius integer arba dešimtainis skaičius (float). Jei greitis nenurodytas, robotas sukasi dabartiniu posūkio greičiu.

units_v

Pasirinktinai. Greičio vienetas: RPM (apsisukimai per minutę, numatytoji reikšmė), PERCENTarba VelocityUnits.DPS (laipsniai per sekundę).

wait

Pasirinktinai. wait=True (numatytasis) priverčia projektą laukti, kol robotas baigs suktis, prieš paleidžiant kitą kodo eilutę. wait=False priverčia kitą kodo eilutę paleidžiama iš karto.

# Turn left, then turn around to the right
drivetrain.turn_for(LEFT, 90)
drivetrain.turn_for(RIGHT, 180)

turn_to_heading#

Kryptis – tai roboto pasukimo kryptis, matuojama laipsniais. turn_to_heading pasuka robotą tam tikra kryptimi nuo -359 iki 359 laipsnių. Robotas pasuks trumpiausia kryptimi, kad pasiektų tikslinę kryptį.

Roboto pradinė kryptis yra 0 laipsnių.

Projektas lauks, kol robotas baigs suktis, prieš paleidžiant kitą kodo eilutę.

Pastaba: Ši funkcija pasiekiama tik tuo atveju, jei pavaros sistema konfigūruojama su Inerciniu jutikliu, GPS jutikliu arba Giroskopiniu jutikliu lange „Įrenginiai“.

Usage:
drivetrain.turn_to_heading(angle, units, velocity, units_v, wait)

Parametrai

Aprašymas

angle

Kryptis, kuria robotas turėtų pasukti, laipsniais. Tai gali būti sveikasis skaičius integer arba dešimtainis skaičius (float) nuo -359 iki 359.

units

Pasirinktinai. Antraštės vienetas: DEGREES (numatytasis).

velocity

Pasirinktinai. Sukimosi greitis nuo 0% iki 100%, kai naudojama PERCENT, nuo 0 iki 600 aps./min., kai naudojama RPM, arba nuo 0 iki 3600 laipsnių per sekundę, kai naudojama VelocityUnits.DPSTai gali būti sveikasis skaičius integer arba dešimtainis skaičius (float). Jei greitis nenurodytas, robotas sukasi dabartiniu posūkio greičiu.

units_v

Pasirinktinai. Greičio vienetas: RPM (apsisukimai per minutę, numatytoji reikšmė), PERCENTarba VelocityUnits.DPS (laipsniai per sekundę).

wait

Pasirinktinai. wait=True (numatytasis) priverčia projektą laukti, kol robotas baigs suktis, prieš paleidžiant kitą kodo eilutę. wait=False priverčia kitą kodo eilutę paleidžiama iš karto.

# Turn to face the cardinal directions
drivetrain.turn_to_heading(90, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_heading(180, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_heading(270, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_heading(0, DEGREES)

# Turn twice slowly
drivetrain.turn_to_heading(90, DEGREES, 20, PERCENT)
wait(1, SECONDS)
drivetrain.turn_to_heading(180, DEGREES, 20, PERCENT)

turn_to_rotation#

turn_to_rotation pasuka robotą į tam tikrą sukimosi kryptį.

Sukimas rodo, kiek robotas pasisuko, matuojamas laipsniais. Projekto pradžioje sukimosi vertė nustatoma į 0 laipsnių. Sukimą taip pat galima nustatyti naudojant set_rotation metodą.

Sukimosi vertės yra absoliučios. Tai reiškia, kad posūkio kryptis priklauso nuo roboto dabartinio sukimosi. Sukant į dešinę, sukimasis padidėja, o sukant į kairę – sumažėja.

Pavyzdžiui, jei robotas pradeda judėti nuo 0 laipsnių ir jūs pasisukate 720 laipsnių kampu, jis du kartus pasisuks į dešinę. Jei tada pasisuksite 360 ​​laipsnių kampu, jis vieną kartą pasisuks į kairę, nes 360 laipsnių yra mažiau nei 720.

Projektas lauks, kol robotas baigs suktis, prieš paleidžiant kitą kodo eilutę.

Pastaba: Šis metodas galimas tik tuo atveju, jei pavaros sistema konfigūruojama su Inerciniu jutikliu, GPS jutikliu arba Giroskopiniu jutikliu lange „Įrenginiai“.

Usage:
drivetrain.turn_to_rotation(angle, units, velocity, units_v, wait)

Parametrai

Aprašymas

angle

Pasukimosi vertė laipsniais arba posūkiais, kuriais robotas pasisuks. Tai gali būti sveikasis skaičius integer arba dešimtainis skaičius (float).

units

Pasirinktinai. Pasukimo vienetas: DEGREES (numatytasis) arba TURNSVienas posūkis lygus 360 laipsnių.

velocity

Pasirinktinai. Sukimosi greitis nuo 0% iki 100%, kai naudojama PERCENT, nuo 0 iki 600 aps./min., kai naudojama RPM, arba nuo 0 iki 3600 laipsnių per sekundę, kai naudojama VelocityUnits.DPSTai gali būti sveikasis skaičius integer arba dešimtainis skaičius (float). Jei greitis nenurodytas, robotas sukasi dabartiniu posūkio greičiu.

units_v

Pasirinktinai. Greičio vienetas: RPM (apsisukimai per minutę, numatytoji reikšmė), PERCENTarba VelocityUnits.DPS (laipsniai per sekundę).

wait

Pasirinktinai. wait=True (numatytasis) priverčia projektą laukti, kol robotas baigs suktis, prieš paleidžiant kitą kodo eilutę. wait=False priverčia kitą kodo eilutę paleidžiama iš karto.

# Turn left, then spin in a circle clockwise and face right
drivetrain.turn_to_rotation(-90, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_rotation(450, DEGREES)

# Turn left then slowly spin in a circle clockwise
drivetrain.turn_to_rotation(-90, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_rotation(450, DEGREES, 20, PERCENT)

stop#

stop sustabdo roboto judėjimą.

Usage:
drivetrain.stop(mode)

Parametrai

Aprašymas

mode

Pasirinktinai. Kaip robotas sustos: BRAKE (numatytasis), COASTarba HOLD

  • BRAKE — Sustoja nedelsiant.
  • COAST — Lėtėja iki sustojimo.
  • HOLD — Sustoja nedelsiant ir išlaiko ratų padėtį.

# Drive forward, then stop
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop()

calibrate_drivetrain#

calibrate_drivetrain yra integruota funkcija, kuri kalibruoja sukonfigūruotą pavaros Inercinį jutiklį, GPS jutiklį arba Gyro jutiklį.

Kalibravimas padeda jutikliui teisingai išmatuoti judėjimą. Kalibravimo metu robotą laikykite nejudėdami maždaug 2 sekundes. Jei robotas juda kalibravimo metu, jutiklis gali neteisingai išmatuoti judėjimą.

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

Pastaba: Ši funkcija pasiekiama tik tuo atveju, jei pavaros sistema konfigūruojama su Inerciniu jutikliu, GPS jutikliu arba Giroskopiniu jutikliu lange „Įrenginiai“.

Usage:
calibrate_drivetrain()

Parametrai

Aprašymas

Ši funkcija neturi parametrų.

Mutatoriai#

set_drive_velocity#

set_drive_velocity nurodo robotui, kokiu greičiu važiuoti. Didesnis procentas leidžia robotui važiuoti greičiau, o mažesnis – lėčiau. Apsukų per sekundę arba laipsnių per sekundę riba keičiama pagal pavaros perdavimo skaičių.

Kiekvienas projektas prasideda nuo to, kad robotas pagal numatytuosius nustatymus važiuoja 50 % greičiu.

Pastaba: Didesnis greitis leidžia robotui važiuoti greičiau, bet gali būti mažiau tikslus. Mažesnis greitis leidžia robotui važiuoti lėčiau, bet gali būti tiksliau.

Usage:
drivetrain.set_drive_velocity(velocity, units)

Parametrai

Aprašymas

velocity

Važiavimo greitis nuo 0% iki 100%, kai naudojama PERCENT, nuo 0 iki 600 aps./min., kai naudojama RPM, arba nuo 0 iki 3600 laipsnių per sekundę, kai naudojama VelocityUnits.DPSTai gali būti sveikasis skaičius integer arba dešimtainis skaičius (float).

units

Pasirinktinai. Greičio vienetas: RPM (apsisukimai per minutę, numatytoji reikšmė), PERCENTarba VelocityUnits.DPS (laipsniai per sekundę).

# Drive forward at the default velocity
drivetrain.drive_for(FORWARD, 100, MM)
wait(1, SECONDS)

# Drive slower
drivetrain.set_drive_velocity(20, PERCENT)
drivetrain.drive_for(FORWARD, 100, MM)
wait(1, SECONDS)

# Drive faster
drivetrain.set_drive_velocity(100, PERCENT)
drivetrain.drive_for(FORWARD, 100, MM)
wait(1, SECONDS)

set_turn_velocity#

set_turn_velocity nurodo robotui, kaip greitai jis turi suktis. Didesnis procentas leidžia robotui suktis greičiau, o mažesnis – lėčiau. Apsukų per sekundę arba laipsnių per sekundę riba priklauso nuo pavaros perdavimo skaičiaus.

Kiekvienas projektas prasideda nuo to, kad robotas pagal numatytuosius nustatymus sukasi 50 % greičiu.

Pastaba: Didesnis greitis leidžia robotui sukasi greičiau, bet gali būti mažiau tikslus. Mažesnis greitis leidžia robotui sukasi lėčiau, bet gali būti tiksliau.

Usage:
drivetrain.set_turn_velocity(velocity, units)

Parametrai

Aprašymas

velocity

Sukimosi greitis nuo 0% iki 100%, kai naudojama PERCENT, nuo 0 iki 600 aps./min., kai naudojama RPM, arba nuo 0 iki 3600 laipsnių per sekundę, kai naudojama VelocityUnits.DPSTai gali būti sveikasis skaičius integer arba dešimtainis skaičius (float).

units

Pasirinktinai. Greičio vienetas: RPM (apsisukimai per minutę, numatytoji reikšmė), PERCENTarba VelocityUnits.DPS (laipsniai per sekundę).

# Turn at the default velocity
drivetrain.turn_for(RIGHT, 100)
wait(1, SECONDS)

# Turn slower
drivetrain.set_turn_velocity(20, PERCENT)
drivetrain.turn_for(RIGHT, 100)
wait(1, SECONDS)

# Turn faster
drivetrain.set_turn_velocity(100, PERCENT)
drivetrain.turn_for(RIGHT, 100)
wait(1, SECONDS)

set_stopping#

set_stopping nustato, kaip robotas sustabdys judėjimą: stabdydamas, riedėdamas iš vietos arba palaikydamas vietoje.

Usage:
drivetrain.set_stopping(mode)

Parametrai

Aprašymas

mode

Kaip robotas sustos:

  • BRAKE — Sustoja nedelsiant.
  • COAST — Lėtėja iki sustojimo.
  • HOLD — Sustoja nedelsiant ir išlaiko ratų padėtį.

Jei šis metodas nenaudojamas, robotas stabdydamas naudos BRAKE.

set_timeout#

set_timeout nustato, kiek sekundžių robotas bandys užbaigti judesį. Jei robotas negali užbaigti per tą laiką, jis nustos bandyti ir pereis prie kitos kodo eilutės. Tai neleidžia robotui užstrigti ties judesiu.

Usage:
drivetrain.set_timeout(value, units)

Parametrai

Aprašymas

value

Laikas, per kurį robotas gali bandyti užbaigti judesį. Tai gali būti teigiamas sveikasis skaičius integer arba dešimtainis skaičius (float).

units

Pasirinktinai. Laiko vienetas: MSEC (milisekundės, numatytoji reikšmė) arba SECONDS.

set_heading#

Kryptis – tai roboto judėjimo kryptis, matuojama laipsniais. set_heading pakeičia dabartinę roboto kryptį į naują krypties reikšmę.

Pavyzdžiui, jei robotas pasisuko veidu į dešinę, nustačius 0 laipsnių kryptį, ta nukreipta į dešinę pozicija tampa nauja 0 laipsnių. Tada robotas gali pasisukti į kitas pozicijas, remdamasis ta nauja kryptimi.

Pastaba: Šis metodas galimas tik tuo atveju, jei pavaros sistema konfigūruojama su Inerciniu jutikliu, GPS jutikliu arba Giroskopiniu jutikliu lange „Įrenginiai“.

Usage:
drivetrain.set_heading(heading, units)

Parametrai

Aprašymas

heading

Roboto krypties reikšmė laipsniais arba posūkiais. Tai gali būti sveikasis skaičius integer arba dešimtainis skaičius (float).

units

Pasirinktinai. Krypties vienetas: DEGREES (numatytasis) arba TURNSVienas posūkis lygus 360 laipsnių.

# Face the new 0 degrees
drivetrain.set_heading(90, DEGREES)
drivetrain.turn_to_heading(0, DEGREES)

set_rotation#

Sukimas rodo, kiek robotas pasisuko, matuojamas laipsniais. Projekto pradžioje sukimosi vertė nustatoma į 0 laipsnių. set_rotation pakeičia dabartinę roboto sukimosi vertę į naują.

Pavyzdžiui, jei robotas atliko du pilnus posūkius į dešinę, jo sukimosi vertė bus 720 laipsnių. Nustačius sukimąsi į 0 laipsnių, sukimasis bus atstatytas iš 720 į 0 laipsnių. Tada robotas galės atlikti sukimus pagal tą naują vertę.

Pastaba: Šis metodas galimas tik tuo atveju, jei pavaros sistema konfigūruojama su Inerciniu jutikliu, GPS jutikliu arba Giroskopiniu jutikliu lange „Įrenginiai“.

Usage:
drivetrain.set_rotation(rotation, units)

Parametrai

Aprašymas

rotation

Roboto sukimosi vertė laipsniais arba posūkiais. Tai gali būti sveikasis skaičius integer arba dešimtainis skaičius (float).

units

Pasirinktinai. Pasukimo vienetas: DEGREES (numatytasis) arba TURNSVienas posūkis lygus 360 laipsnių.

# Spin counterclockwise two times
drivetrain.set_rotation(720, DEGREES)
drivetrain.turn_to_rotation(0, DEGREES)

set_turn_threshold#

set_turn_threshold nustato, kiek arti robotas turi priartėti prie tikslinio kampo, kad posūkis būtų baigtas.

Mažesnis slenkstis gali padėti tiksliau atlikti posūkius, tačiau robotui gali prireikti daugiau laiko, kad baigtų posūkį. Didesnis slenkstis gali padėti posūkiams baigtis greičiau, tačiau jie gali būti mažiau tikslūs.

Pastaba: Šis metodas galimas tik tuo atveju, jei pavaros sistema konfigūruojama su Inerciniu jutikliu, GPS jutikliu arba Giroskopiniu jutikliu lange „Įrenginiai“.

Usage:
drivetrain.set_turn_threshold(value)

Parametrai

Aprašymas

value

Posūkio slenkstis laipsniais. Tai gali būti sveikasis skaičius integer arba dešimtainis skaičius (float). Numatytoji posūkio slenkstis yra 1 laipsnis.

set_turn_constant#

set_turn_constant pakeičia, kaip stipriai robotas koreguoja savo posūkius.

Didesnė reikšmė robotui posūkius koreguoja stipriau. Mažesnė reikšmė – posūkius koreguoja švelniau. Numatytoji reikšmė yra 1,0.

Pastaba: Šis metodas galimas tik tuo atveju, jei pavaros sistema konfigūruojama su Inerciniu jutikliu, GPS jutikliu arba Giroskopiniu jutikliu lange „Įrenginiai“.

Usage:
drivetrain.set_turn_constant(value)

Parametrai

Aprašymas

value

Posūkio konstanta. Tai gali būti dešimtainė reikšmė (float) nuo 0,1 iki 4,0. Numatytoji reikšmė yra 1,0.

set_turn_direction_reverse#

set_turn_direction_reverse pakeičia, ar išmaniosios pavaros posūkio kryptis yra atvirkštinė.

Tai galima naudoti, jei pavaros agregatas po rankinio konfigūravimo kode sukasi priešinga kryptimi nei tikėtasi. Šis metodas veikia taip pat, kaip ir nustatant parametrą reverse į True , kai konstruojamas „ SmartDrive.

Pastaba: Šis metodas galimas tik tuo atveju, jei pavaros sistema konfigūruojama su Inerciniu jutikliu, GPS jutikliu arba Giroskopiniu jutikliu lange „Įrenginiai“.

Usage:
drivetrain.set_turn_direction_reverse(value)

Parametrai

Aprašymas

value

Ar pakeisti išmaniosios pavaros sukimosi kryptį: True pakeičia sukimosi kryptį, o False naudoja numatytąją sukimosi kryptį.

Getteriai#

is_done#

is_done grąžina, ar robotas baigė judėti, kaip loginę reikšmę. Tai gali būti naudojama kitų veiksmų, pagrįstų roboto judėjimu, laikui valdyti.

  • True — Robotas baigė judėti.

  • False — Robotas vis dar juda.

Šis metodas veikia kartu su šiais „Drivetrain“ metodais, turinčiais parametrą wait : drive_for, turn_for, turn_to_heading ir turn_to_rotation.

Usage:
drivetrain.is_done()

Parametrai

Aprašymas

Šis metodas neturi parametrų.

is_moving#

is_moving grąžina, ar robotas juda, kaip loginę reikšmę. Tai gali būti naudojama kitų veiksmų, pagrįstų roboto judėjimu, laikui valdyti.

  • True — Robotas juda.

  • False — Robotas nejuda.

Naudojimas:

drivetrain.is_moving()

Parametrai

Aprašymas

Šis metodas neturi parametrų.

heading#

Kryptis – tai roboto pasukimo kryptis, matuojama laipsniais. heading grąžina dabartinę roboto kryptį nuo 0 iki 359,99 laipsnių.

Roboto pradinė kryptis yra 0 laipsnių.

Pastaba: Šis metodas galimas tik tuo atveju, jei pavaros sistema konfigūruojama su Inerciniu jutikliu, GPS jutikliu arba Giroskopiniu jutikliu lange „Įrenginiai“.

Usage:
drivetrain.heading(units)

Parametrai

Aprašymas

units

Pasirinktinai. Vienetas, kuriuo reikia grąžinti kryptį: DEGREES (numatytasis) arba TURNSVienas posūkis lygus 360 laipsnių.

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

rotation#

Sukimas rodo, kiek robotas pasisuko, matuojamas laipsniais. Projekto pradžioje sukimosi vertė nustatoma į 0 laipsnių. rotation grąžina dabartinį roboto sukimąsi.

Sukant į dešinę, sukimasis padidėja, o sukant į kairę – sumažėja. Pavyzdžiui, padarius du pilnus posūkius į dešinę, sukimasis bus 720 laipsnių.

Pastaba: Šis metodas galimas tik tuo atveju, jei pavaros sistema konfigūruojama su Inerciniu jutikliu, GPS jutikliu arba Giroskopiniu jutikliu lange „Įrenginiai“.

Usage:
drivetrain.rotation(units)

Parametrai

Aprašymas

units

Pasirinktinai. Vienetas, kuriuo grąžinamas sukimasis: DEGREES (numatytasis) arba TURNSVienas posūkis lygus 360 laipsnių.

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

velocity#

velocity grąžina roboto važiavimo greitį.

Jis gali grąžinti greitį procentais nuo -100 % iki 100 %, RPMarba VelocityUnits.DPS (laipsniais per sekundę). Teigiama reikšmė reiškia, kad robotas važiuoja į priekį. Neigiama reikšmė reiškia, kad robotas važiuoja atbuline eiga.

Usage:
drivetrain.velocity(units)

Parametrai

Aprašymas

units

Pasirinktinai. Greičio vienetas: RPM (apsisukimai per minutę, numatytoji reikšmė), PERCENTarba VelocityUnits.DPS (laipsniai per sekundę).

current#

current grąžina pavaros naudojamos elektros srovės kiekį, matuojamą amperais. Srovė yra per pavarą tekančios elektros kiekis.

Didesnė srovės vertė reiškia, kad pavaros sistema naudoja daugiau elektros srovės. Taip gali nutikti, kai robotas stumia objektą arba bando pajudėti, kai yra užstrigęs.

Tai gali būti naudojama norint patikrinti, ar pavaros sistemai kyla problemų judesio metu. Jei srovė išlieka didelė, pavaros sistema gali įkaisti arba ne taip efektyviai naudoti energiją.

Usage:
drivetrain.current(units)

Parametrai

Aprašymas

units

Pasirinktinai. Srovės matavimo vienetas: CurrentUnits.AMP (amperai, numatytasis).

power#

power grąžina pavaros sunaudojamą galią, matuojamą vatais. Galia rodo, kaip greitai pavara eikvoja energiją.

Didesnė galios vertė reiškia, kad pavaros sistema energiją naudoja greičiau. Tai gali nutikti, kai robotas stumia objektą arba bando pajudėti, kai yra įstrigęs.

Tai galima naudoti judesiams palyginti arba patikrinti, ar pavaros sistema veikia sunkiai. Jei galia išlieka didelė, pavaros sistema gali įkaisti arba ne taip efektyviai naudoti energiją.

Usage:
drivetrain.power()

Parametrai

Aprašymas

Šis metodas neturi parametrų.

torque#

Sukimo momentas parodo, kaip stipriai transmisija gali stumti arba traukti, kai ratai sukasi.

torque grąžina pavaros naudojamą sukimo momentą, matuojamą niutonmetrais (Nm) arba coliais-svarais (InLb).

Didesnė sukimo momento vertė reiškia, kad pavaros sistema stumia arba traukia stipriau. Tai gali nutikti, kai robotas stumia objektą arba bando pajudėti, kai yra užstrigęs.

Tai galima naudoti norint patikrinti, ar pavaros sistema veikia sunkiai, arba palyginti, kiek stūmimo reikia skirtingiems judesiams.

Usage:
drivetrain.torque(units)

Parametrai

Aprašymas

units

Pasirinktinai. Sukimo momento grąžinimo vienetas: TorqueUnits.NM (niutonmetrai, numatytoji reikšmė) arba TorqueUnits.INLB (coliai svarai).

efficiency#

efficiency grąžina, kaip efektyviai pavaros sistema naudoja energiją, procentais nuo 0 % iki 100 %.

Efektyvumas rodo, kiek pavaros galios sunaudojama judėjimui. Didesnė efektyvumo vertė reiškia, kad daugiau pavaros galios sunaudojama judėjimui. Mažesnė efektyvumo vertė gali būti, kai pavara dirba intensyviai, bet juda mažai, pavyzdžiui, kai robotas užstringa arba stumia į objektą.

Tai gali būti naudojama judesiams palyginti arba patikrinti, ar pavarų sistema nešvaisto energijos, užuot ją naudojusi judėjimui.

Usage:
drivetrain.efficiency()

Parametrai

Aprašymas

Šis metodas neturi parametrų.

temperature#

temperature grąžina vidutinę pavaros agregato temperatūrą pasirinktu temperatūros vienetu.

Temperatūra rodo, kiek įkaitę pavaros varikliai. Aukštesnė temperatūra reiškia, kad varikliai darbo metu įkaista. Kad varikliai veiktų visu našumu, jų temperatūra turi būti žemesnė nei 55 °C.

Jei varikliai per daug įkaista, jie sumažina maksimalią srovę, kad apsisaugotų. Esant 70 °C temperatūrai, varikliai nustos veikti, kol atvės.

Tai gali būti naudojama norint patikrinti, ar pavarų dėžė neperkaista pasikartojančių judesių, ilgų važiavimų metu arba kai ji spaudžia objektą.

Usage:
drivetrain.temperature(units)

Parametrai

Aprašymas

units

Pasirinktinai. Temperatūros vienetas, kuriuo reikia grąžinti temperatūrą: TemperatureUnits.CELSIUS (numatytasis) arba TemperatureUnits.FAHRENHEIT.

get_timeout#

get_timeout grąžina šiuo metu nustatytą timeout milisekundėmis.

Usage:
drivetrain.get_timeout()

Parametrai

Aprašymas

Šis metodas neturi parametrų.

Konstruktoriai#

Konstruktoriai naudojami rankiniu būdu sukurti DriveTrain ir SmartDrive objektus, kurie yra būtini pavaros konfigūruojimui už VEXcode ribų.

Prieš kuriant transmisiją, turi būti sukurti bent du Motor arba MotorGroup objektai.

DriveTrain#

DriveTrain sukuria transmisiją be inercinio jutiklio, GPS jutiklio arba giroskopinio jutiklio.

Usage:
DriveTrain(lm, rm, wheelTravel, trackWidth, wheelBase, units, externalGearRatio)

Parametras

Aprašymas

lm

Kairysis variklis arba variklių grupė.

rm

Dešinysis variklis arba variklių grupė.

wheelTravel

Pasirinktinai. Varančiosios ašies ratų apimtis. Numatytoji reikšmė yra 300 milimetrų.

trackWidth

Pasirinktinai. Plotis tarp kairiojo ir dešiniojo ratų. Numatytasis nustatymas yra 320 milimetrų.

wheelBase

Pasirinktinai. Atstumas tarp priekinių ir galinių ratų. Numatytasis nustatymas yra 320 milimetrų.

units

Pasirinktinai. wheelTravel, trackWidthir wheelBasematavimo vienetai: MM (milimetriai, numatytoji reikšmė), INCHESarba DistanceUnits.CM (centimetrai).

externalGearRatio

Pasirinktinai. Pavarų perdavimo skaičius, naudojamas pavaros atstumams reguliuoti, jei naudojamos pavaros. Tai gali būti sveikasis skaičius integer arba dešimtainis skaičius (float). Numatytoji reikšmė yra 1,0.

# Create the Motors
left_motor = Motor(Ports.PORT1, GearSetting.RATIO_18_1, False)
right_motor = Motor(Ports.PORT2, GearSetting.RATIO_18_1, True)

# Create a drivetrain with default values
drivetrain = DriveTrain(left_motor, right_motor)

# Create the motors
left_motor = Motor(Ports.PORT1, GearSetting.RATIO_18_1, False)
right_motor = Motor(Ports.PORT2, GearSetting.RATIO_18_1, True)

"""
Create a drivetrain with the following values:
- wheelTravel = 319.19
- trackWidth = 295
- wheelBase = 40
- units = MM (Millimeters)
- externalGearRatio - 1
"""
drivetrain = DriveTrain(left_motor, right_motor, 319.19, 295, 40, MM, 1)

SmartDrive#

SmartDrive sukuria pavaros sistemą, sukonfigūruotą su inerciniu jutikliu, GPS jutikliu arba giroskopiniu jutikliu.

Usage:
SmartDrive(lm, rm, g, wheelTravel, trackWidth, wheelBase, units, externalGearRatio)

Parametras

Aprašymas

lm

Kairysis variklis arba variklių grupė.

rm

Dešinysis variklis arba variklių grupė.

g

Pavaros sistemoje naudojamas inercinis jutiklis, GPS jutiklis arba giroskopinis jutiklis.

wheelTravel

Pasirinktinai. Varančiosios ašies ratų apimtis. Numatytoji reikšmė yra 300 milimetrų.

trackWidth

Pasirinktinai. Plotis tarp kairiojo ir dešiniojo ratų. Numatytasis nustatymas yra 320 milimetrų.

wheelBase

Pasirinktinai. Atstumas tarp priekinių ir galinių ratų. Numatytasis nustatymas yra 320 milimetrų.

units

Pasirinktinai. wheelTravel, trackWidthir wheelBasematavimo vienetai: MM (milimetriai, numatytoji reikšmė), INCHESarba DistanceUnits.CM (centimetrai).

externalGearRatio

Pasirinktinai. Pavarų perdavimo skaičius, naudojamas pavaros atstumams reguliuoti, jei naudojamos pavaros. Tai gali būti sveikasis skaičius integer arba dešimtainis skaičius (float). Numatytoji reikšmė yra 1,0.

# Create the Motors
left_motor = Motor(Ports.PORT1, GearSetting.RATIO_18_1, False)
right_motor = Motor(Ports.PORT2, GearSetting.RATIO_18_1, True)

# Create a Gyro Sensor in Port A
gyro_a = Gyro(brain.three_wire_port.a)


# Create a drivetrain with default values
drivetrain = SmartDrive(left_motor, right_motor, gyro_a)

# Create the Motors
left_motor = Motor(Ports.PORT1, GearSetting.RATIO_18_1, False)
right_motor = Motor(Ports.PORT2, GearSetting.RATIO_18_1, True)

# Create a Gyro Sensor in Port A
gyro_a = Gyro(brain.three_wire_port.a)

"""
Create a drivetrain with the following values:
- wheelTravel = 319.19
- trackWidth = 295
- wheelBase = 40
- units = MM (Millimeters)
- externalGearRatio - 1
"""
drivetrain = SmartDrive(left_motor, right_motor, gyro_a, 319.19, 295, 40, MM, 1)