Variklis ir variklių grupė#

Įvadas#

Varikliai ir variklių grupės valdo, kaip juda roboto dalys. Objektas motor valdo vieną konfigūruotą „IQ Smart“ variklį, o objektas „ motor_group valdo kelis konfigūruotus „IQ Smart“ variklius kartu, kad jie judėtų kartu. Varikliai ir variklių grupės gali būti naudojamos rankai pakelti, nagui pasukti, ratui sukti arba kitai konstrukcijos daliai perkelti. Du varikliai gali veikti kartu kaip pavara, kad judintų ir suktų visą robotą.

Kiekvienas variklis arba variklių grupė konfigūruojama lange „Įrenginiai“. Priklausomai nuo konstrukcijos, variklių ir variklių grupių pavadinimai gali keistis. Šiame puslapyje kaip pavadinimų pavyzdžiai naudojami Motor1 ir MotorGroup1 . Prireikus pakeiskite juos savo sukonfigūruotais pavadinimais.

„VEX IQ“ variklis, rodantis sukimosi į priekį kryptį, nurodytą pliuso ženklu ir rodykle, rodančia, kad variklis sukasi į kairę arba prieš laikrodžio rodyklę. VEX IQ variklis, rodantis atvirkštinę kryptį, nurodytą minuso ženklu ir rodykle, rodančia, kad jis sukasi į dešinę arba pagal laikrodžio rodyklę.

Pagal numatytuosius nustatymus, forward suka variklį prieš laikrodžio rodyklę, o reverse suka variklį pagal laikrodžio rodyklę. Jei variklis nustatytas suktis atbuline eiga, šios kryptys bus sukeistos.

Variklis#

Class Constructors#

1 — Sukuria motor objektą IQ išmaniajam varikliui, prijungtam prie nurodyto išmaniojo prievado. Variklis automatiškai naudoja aptiktą vidinį gearSetting.

motor(
  int32_t index );

2 — Sukuria motor objektą nurodytame „Smart Port“ prievade ir pasirinktinai pakeičia jo kryptį. Variklis automatiškai naudoja aptiktą vidinį gearSetting.

motor(
 int32_t index,
 bool    reverse );

3 — Sukuria motor objektą nurodytame „Smart Port“ su nurodytu gearSetting.

motor(
 int32_t     index,
 gearSetting gears );

4 — Sukuria motor objektą nurodytame „Smart Port“ su nurodytu gearSetting ir pasirinktinai atvirkštine kryptimi.

motor(
 int32_t     index,
 gearSetting gears,
 bool        reverse );

Class Destructor#

Sunaikina motor objektą ir išlaisvina susijusius išteklius.

~motor();

Parameters#

Parametras

Tipas

Aprašymas

index

int32_t

Išmanusis prievadas, prie kurio prijungtas variklis, užrašomas kaip PORTx, kur x yra prievado numeris (pavyzdžiui, PORT1).

reverse

bool

Nustato, ar variklio sukimosi kryptis yra atvirkštinė:

  • false (numatytasis) — Variklio kryptis nepakeičiama.
  • true — Variklio kryptis pakeičiama.

gears

gearSetting

Nurodo vidinį krumpliaračio kasetės perdavimo skaičių.

  • ratio1_1 — A 1:1 perdavimo skaičius
  • ratio2_1 — A 2:1 perdavimo skaičius
  • ratio3_1 — A 3:1 perdavimo skaičius

Notes#

  • Pavarų nustatymas turėtų atitikti variklyje įmontuotą fizinę kasetę.

Example#

// Create the motor instance in Smart Port 1
motor LeftMotor = motor(PORT1);

// Creates the motor instance with different settings
motor RightMotor = motor(
  PORT2,      // Smart Port 2
  ratio2_1,  // Gear ratio is 2:1
  true);

Motorų grupė#

Class Constructors#

motor_group( motor &m1, Args&... m2 );

Class Destructor#

Sunaikina motor_group objektą ir išlaisvina susijusius išteklius.

~motor_group();

Parameters#

Parametras

Tipas

Aprašymas

m1

motor &

Pirmasis variklis buvo pridėtas prie grupės.

m2

motor &

Prie grupės pridėti papildomi varikliai. Vienoje variklių grupėje gali būti ne daugiau kaip keturi varikliai.

Example#

// Create individual motor instances
motor LeftMotor  = motor(PORT1);
motor RightMotor = motor(PORT2);

// Create a motor group with both motors
motor_group DriveMotors = motor_group(LeftMotor, RightMotor);

Narių funkcijos#

Yra daug būdų koduoti variklius ir variklių grupes. Žemiau pateikiamas visų motor ir motor_group narių funkcijų sąrašas:

Veiksmai — Sustabdyti ir sukti variklius bei variklių grupes.

  • spin — Variklis arba variklių grupė sukasi pirmyn arba atgal amžinai.

  • spinFor — Suka variklį arba variklių grupę tam tikrą atstumą arba laiką.

  • spinToPosition – Suka variklį arba variklių grupę į konkrečią padėtį.

  • stop — Sustabdo variklio arba variklių grupės sukimąsi.

Mutatoriai – koreguokite variklio ir variklio grupės nustatymus.

  • setVelocity — Nurodo varikliui arba variklių grupei, kokiu greičiu suktis.

  • setMaxTorque — Nustato, kiek stipriai variklis arba variklių grupė gali spausti sukimosi metu.

  • setPosition — Pakeičia variklio arba variklių grupės dabartinę padėtį į naują reikšmę.

  • setStopping — Nustato, kaip variklis arba variklių grupė sustabdys judėjimą: stabdant, riedant iš vėžių arba palaikant.

  • setTimeout — Nustato, kiek laiko variklis arba variklių grupė bandys užbaigti judesį.

Geteris – patikrinkite variklio ir variklių grupės būseną.

  • isDone — Grąžina, ar variklis arba variklių grupė baigė judėti, kaip loginę reikšmę.

  • isSpinning – Grąžina, ar sukasi variklis, ar variklių grupė, kaip loginę reikšmę.

  • position — Grąžina dabartinę variklio arba variklių grupės padėtį.

  • velocity — Grąžina variklio arba variklių grupės sukasi greitį.

  • current — Grąžina, kiek elektros srovės naudoja variklis arba variklių grupė.

  • power — Grąžina, kiek energijos naudoja variklis arba variklių grupė.

  • torque — Grąžina, kiek sukimo momento naudoja variklis arba variklių grupė.

  • efficiency – Grąžina, kaip efektyviai variklis arba variklių grupė naudoja energiją.

  • temperature — Grąžina variklio arba variklių grupės temperatūrą.

  • voltage — Grąžina varikliui arba variklių grupei tiekiamą elektros įtampą.

  • direction — Grąžina variklio arba variklių grupės sukimosi kryptį.

  • installed — Grąžina, ar variklis, ar variklių grupė yra prijungta prie smegenų.

  • count — Grąžina variklių grupės variklių skaičių.

Prieš iškviečiant bet kokias motor arba motor_group narių funkcijas, reikia sukurti egzempliorių, kaip parodyta žemiau:

/* This constructor is required when using VS Code.
Motor and Motor Group configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */

// Create the motor instance in Smart Port 1
motor Motor1 = motor(PORT1);

Veiksmai#

spin#

spin suka variklį arba variklių grupę pirmyn arba atgal amžinai. Variklis arba variklių grupė suksis tol, kol jam bus duotas kitas veiksmas, pavyzdžiui, suktis kita kryptimi arba sustoti.

Available Functions

1 — Suka variklį arba variklių grupę naudodamas šiuo metu konfigūruotą variklio greitį.

void spin(
 directionType dir );

2 — Suka variklį arba variklių grupę nurodytu greičiu.

void spin(
 directionType dir,
 double        velocity,
 velocityUnits units );

3 — Suka variklį arba variklių grupę naudodama nurodytą įtampą.

void spin(
 directionType dir,
 double        voltage,
 voltageUnits  units );

Parameters

Parametras

Tipas

Aprašymas

dir

directionType

Variklio arba variklių grupės sukimosi kryptis: forward arba reverse.

velocity

double

Sukimosi greitis nuo 0 % iki 100 %, kai naudojama percent.

units

velocityUnits

Greičiui pavaizduoti naudojami šie vienetai:

  • percent / pct — procentai
  • rpm — apsisukimai per minutę
  • dps — laipsniai per sekundę

voltage

double

Įtampa, kuria reikia suktis. Neigiama vertė sukasi priešinga duotai dir.

units

voltageUnits

Įtampai išreikšti naudojamas vienetas:

  • volt — voltai
  • voltageUnits::mV — milivoltai

Return Values

Ši funkcija negrąžina reikšmės.

Notes
  • Ši funkcija nelaukia ir projektas bus tęsiamas iškart po iškvietimo.

  • Variklis arba variklių grupė toliau suksis, kol bus iškviesta stop arba bus įvykdyta kita judėjimo funkcija.

  • Tokios funkcijos kaip isDone ir isSpinning netaikomos funkcijai spin, nes ji nenaudoja judėjimo pagal taikinį (neturi rotation ar time parametro).

Examples
// Spin forward, then stop
Motor1.spin(forward);
wait(1, seconds);
Motor1.stop();

spinFor#

spinFor suka variklį arba variklių grupę tam tikrą atstumą arba laiką. Sukimosi pagrindu veikiantis sukimas yra santykinis pagal dabartinę variklio arba variklių grupės padėtį. Pagal numatytuosius nustatymus projektas lauks, kol variklis arba variklių grupė baigs suktis, prieš paleidžiant kitą kodo eilutę.

Available Functions

1 — Sukasi tam tikrą atstumą greičiu, nurodytu funkcijos iškvietime.

bool spinFor(
 double        rotation,
 rotationUnits units,
 double        velocity,
 velocityUnits units_v,
 bool          waitForCompletion = true );

2 — Priima krypties parametrą ir sukasi tam tikrą atstumą greičiu, nurodytu funkcijos iškvietime.

bool spinFor(
 directionType dir,
 double        rotation,
 rotationUnits units,
 double        velocity,
 velocityUnits units_v,
 bool          waitForCompletion = true );

3 — Sukasi tam tikrą atstumą naudodamas šiuo metu sukonfigūruotą variklio greitį.

bool spinFor(
 double        rotation,
 rotationUnits units,
 bool          waitForCompletion = true );

4 — Priima krypties parametrą ir sukasi tam tikrą atstumą naudodamas šiuo metu konfigūruotą variklio greitį.

bool spinFor(
 directionType dir,
 double        rotation,
 rotationUnits units,
 bool          waitForCompletion = true );

5 — Sukasi tam tikrą laiką greičiu, nurodytu funkcijos iškvietime.

bool spinFor(
 double        time,
 timeUnits     units,
 double        velocity,
 velocityUnits units_v );

6 — Priima krypties parametrą ir sukasi tam tikrą laiką greičiu, nurodytu funkcijos iškvietime.

bool spinFor(
 directionType dir,
 double        time,
 timeUnits     units,
 double        velocity,
 velocityUnits units_v );

7 — Sukasi tam tikrą laiką, naudodamas šiuo metu sukonfigūruotą variklio greitį.

bool spinFor(
 double    time,
 timeUnits units );

8 — Priima krypties parametrą ir sukasi tam tikrą laiką naudodamas šiuo metu konfigūruotą variklio greitį.

bool spinFor(
 directionType dir,
 double        time,
 timeUnits     units );

Parameters

Parametras

Tipas

Aprašymas

dir

directionType

Variklio arba variklių grupės sukimosi kryptis: forward arba reverse.

rotation

double

Atstumas, kuriuo sukasi variklis arba variklių grupė.

units

rotationUnits

Sukimosi vienetas:

  • deg / degrees — laipsniai
  • turns / rev — apsisukimai

time

double

Variklio arba variklių grupės sukasi laikas.

units

timeUnits

Laiko vienetas:

  • seconds / sec — sekundės
  • msec — milisekundės

velocity

double

Sukimosi greitis nuo 0 % iki 100 %, kai naudojama percent.

units_v

velocityUnits

Vienetas, naudojamas velocity:

  • percent / pct — procentai
  • rpm — apsisukimai per minutę
  • dps — laipsniai per sekundę

waitForCompletion

bool

​

  • true (numatytasis) — Projektas laukia, kol variklis arba variklių grupė baigs suktis, prieš paleidžiant kitą kodo eilutę.
  • false — Kita kodo eilutė paleidžiama iš karto.

Return Values

Grąžina loginę reikšmę, rodančią, ar variklis arba variklių grupė pasiekė tikslinę reikšmę.

  • true — The motor or motor group reached the target value.
  • false — The motor or motor group was not able to reach the target value or waitForCompletion is set to false.
Notes
  • Vykdant kitą variklio judėjimo funkciją (pvz., spin arba stop), kol vyksta spinFor dabartinis judėjimas bus nutrauktas.

  • Kadangi spinFor yra pagrįstas taikiniu (naudoja rotation arba time parametrą), tokios funkcijos kaip isDone ir isSpinning veikia su spinFor.

Examples
// Spin 1 turn fast, then 1 turn slow
Motor1.spinFor(forward, 1, turns, true);
Motor1.spinFor(reverse, 1, turns, 20, velocityUnits::pct, true);

spinToPosition#

spinToPosition suka variklį arba variklių grupę į konkrečią padėtį.

Variklio arba variklių grupės padėtis rodo, kiek jis apsisuko, matuojant degrees arba turnsVienas apsisukimas lygus 360 laipsnių. Projekto pradžioje variklio arba variklių grupės padėtis nustatoma į 0 laipsnių. Variklio arba variklių grupės padėtį taip pat galima nustatyti naudojant funkciją setPosition.

Padėties vertės yra absoliučios. Tai reiškia, kad sukimosi kryptis priklauso nuo variklio arba variklių grupės dabartinės padėties.

Pavyzdžiui, jei variklis arba variklių grupė pradeda suktis nuo 0 laipsnių ir sukasi iki 720 laipsnių padėties, jie suksis du apsisukimus į priekį. Jei tada jie suksis iki 360 laipsnių padėties, jie suksis vieną apsisukimą atgal, nes 360 yra mažiau nei 720.

Available Functions

1 — Sukasi į konkrečią padėtį greičiu, nurodytu funkcijos iškvietime.

bool spinToPosition(
 double        rotation,
 rotationUnits units,
 double        velocity,
 velocityUnits units_v,
 bool          waitForCompletion = true );

2 — Sukasi į konkrečią padėtį naudodamas šiuo metu sukonfigūruotą variklio greitį.

bool spinToPosition(
 double        rotation,
 rotationUnits units,
 bool          waitForCompletion = true );

Parameters

Parametras

Tipas

Aprašymas

rotation

double

Padėties vertė, iki kurios suksis variklis arba variklių grupė.

units

rotationUnits

Sukimosi vienetas:

  • deg / degrees — laipsniai
  • turns / rev — apsisukimai

velocity

double

Sukimosi greitis nuo 0 % iki 100 %, kai naudojama percent.

units_v

velocityUnits

Vienetas, naudojamas velocitypavaizduoti:

  • pct — procentai
  • rpm — apsisukimai per minutę
  • dps — laipsniai per sekundę

waitForCompletion

bool

​

  • true (numatytasis) — Projektas laukia, kol variklis arba variklių grupė baigs suktis, prieš paleidžiant kitą kodo eilutę.
  • false — Kita kodo eilutė paleidžiama iš karto.

Return Values

Grąžina loginę reikšmę, rodančią, ar variklis, ar variklių grupė pradėjo prašomą judėjimą pagal taikinį.

  • true — The motor or motor group begins the requested target-based movement.
  • false — The call fails or waitForCompletion is set to false.
Notes
  • Vykdant kitą variklio judėjimo funkciją (pvz., spin arba spinFor), kol vyksta spinToPosition , dabartinis judėjimas bus nutrauktas.

  • Kadangi spinToPosition yra pagrįstas taikiniu (naudoja rotation parametrą), tokios funkcijos kaip isDone ir isSpinning veikia su spinToPosition.

Examples
// Spin forward, then go to 90°
Motor1.spin(forward);
wait(1, seconds);
Motor1.spinToPosition(90, degrees);

stop#

stop sustabdo variklio arba variklių grupės sukimąsi.

Available Functions

1 — Sustabdo variklį arba variklių grupę naudodamas šiuo metu sukonfigūruotą stabdymo režimą.

void stop();

2 — Sustabdo variklį arba variklių grupę naudodamas funkcijos iškvietime nurodytą stabdymo režimą.

void stop(
  brakeType mode );

Parameters

Parametras

Tipas

Aprašymas

mode

brakeType

Pasirinktinai. Kaip variklis arba variklių grupė sustos:

  • coast — lėtėja iki sustojimo.
  • brake — sustoja nedelsiant.
  • hold — sustoja nedelsiant ir išlaiko variklio arba variklių grupės padėtį.

Return Values

Ši funkcija negrąžina reikšmės.

Notes Examples
// Spin and coast to a stop
Motor1.setVelocity(100, percent);
Motor1.spin(forward);
wait(1, seconds);
Motor1.stop(coast);

Mutatoriai#

setVelocity#

setVelocity nurodo varikliui arba variklių grupei, kokiu greičiu suktis. Didesnis procentas leidžia varikliui arba variklių grupei suktis greičiau, o mažesnis procentas – lėčiau.

Kiekvienas projektas pradedamas nuo to, kad kiekvienas variklis arba variklių grupė pagal numatytuosius nustatymus sukasi 50 % greičiu.

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

Available Functions
void setVelocity(
    double        velocity,
    velocityUnits units );

Parameters

Parametras

Tipas

Aprašymas

velocity

double

Sukimosi greitis nuo 0 % iki 100 %, kai naudojama percent.

units

velocityUnits

Vienetas, naudojamas velocity:

  • percent / pct — procentai
  • rpm — apsisukimai per minutę
  • dps — laipsniai per sekundę

Return Values

Ši funkcija negrąžina reikšmės.

Notes
  • Bet kuri vėlesnė variklio judėjimo funkcija (pvz., spin, spinFor arba spinToPosition), kuri aiškiai nenurodo greičio, naudos šią reikšmę.

Examples
// Try default, then slow, then fast
Motor1.spinFor(forward, 180, degrees);
wait(1, seconds);
Motor1.setVelocity(20, percent);
Motor1.spinFor(reverse, 180, degrees);
wait(1, seconds);
Motor1.setVelocity(100, percent);
Motor1.spinFor(forward, 180, degrees);

setMaxTorque#

Sukimo momentas parodo, kaip stipriai variklis arba variklių grupė gali stumti arba traukti sukdamasi.

setMaxTorque nustato didžiausią sukimo momentą, kurį leidžiama naudoti varikliui arba variklių grupei.

Didesnis procentas leidžia varikliui arba variklių grupei stumti stipriau, pavyzdžiui, keliant sunkų daiktą. Mažesnis procentas riboja, kiek stipriai variklis arba variklių grupė gali stumti. Tai gali padėti apsaugoti robotą, jei variklis arba variklių grupė užstringa arba pasiekia ribą, kiek gali judėti.

Kiekvienas projektas pradedamas, kai kiekvieno variklio arba variklių grupės sukimo momentas pagal numatytuosius nustatymus yra 50 %.

Available Functions

1 — Nustato maksimalų sukimo momentą kaip variklio arba variklių grupės vardinio sukimo momento procentinę dalį.

void setMaxTorque(
 double       value,
 percentUnits units );

2 — Nustato maksimalų sukimo momentą, naudodamas fizinius sukimo momento vienetus.

void setMaxTorque(
 double      value,
 torqueUnits units );

3 — Nustato maksimalų sukimo momentą ribodamas variklio srovę.

void setMaxTorque(
 double       value,
 currentUnits units );

Parameters

Parametras

Tipas

Aprašymas

value

double

Didžiausias sukimo momentas, kurį gali naudoti variklis arba variklių grupė.

units

percentUnits

Nurodo sukimo momentą procentais: percent pct — procentai

units

torqueUnits

Nurodo sukimo momentą fiziniais vienetais, tokiais kaip:

  • Nm — niutonmetrai
  • InLb — coliai-svarai

units

currentUnits

Nurodo sukimo momentą ribodamas variklio srovę:

  • amp

Return Values

Ši funkcija negrąžina reikšmės.

Notes
  • Naudojant currentUnits, sukimo momentas ribojamas apribojant elektros srovės kiekį, kurį gali naudoti variklis arba variklių grupė.

setPosition#

Variklio arba variklių grupės padėtis rodo, kiek jis apsisuko, matuojamas degrees arba turnsVienas apsisukimas lygus 360 laipsnių. setPosition pakeičia dabartinę variklio arba variklių grupės padėtį į naują reikšmę.

Pavyzdžiui, jei variklis arba variklių grupė pasisuko iki 180 laipsnių, nustatant 0 laipsnių padėtį, ši padėtis bus atkurta iš 180 į 0 laipsnių. Tada variklis arba variklių grupė gali pasisukti į pozicijas pagal tą naują vertę.

Available Functions
void setPosition(
    double        value,
    rotationUnits units );

Parameters

Parametras

Tipas

Aprašymas

value

double

Variklio arba variklių grupės padėties vertė, kurią reikia nustatyti.

units

rotationUnits

Padėties vienetas:

  • deg / degrees — laipsniai
  • turns / rev — apsisukimai

Return Values

Ši funkcija negrąžina reikšmės.

Notes
  • Iškvietus funkciją setPosition, vėlesniuose spinToPosition iškvietimuose atnaujinta pozicija bus naudojama kaip nuoroda.

setStopping#

setStopping nustato, kaip variklis arba variklių grupė sustabdys judėjimą: stabdant, riedant iš inercijos arba palaikant.

Available Functions
void setStopping(
  brakeType mode );

Parameters

Parametras

Tipas

Aprašymas

mode

brakeType

Kaip variklis arba variklių grupė sustos:

  • brake — Sustoja nedelsiant.
  • coast — Lėtėja iki sustojimo.
  • hold — Sustoja nedelsiant ir išlaiko variklio arba variklių grupės padėtį.

Return Values

Ši funkcija negrąžina reikšmės.

Notes
  • Bet koks vėlesnis stop iškvietimas be nurodyto stabdymo režimo naudos šią reikšmę.

setTimeout#

setTimeout nustato, kiek laiko variklis arba variklių grupė bandys užbaigti judesį. Jei variklis arba variklių grupė negali baigti per tą laiką, ji nustos bandyti ir pereis prie kitos kodo eilutės. Tai neleidžia varikliui arba variklių grupei užstrigti ties judesiu.

Available Functions
void setTimeout(
    int32_t   time,
    timeUnits units );

Parameters

Parametras

Tipas

Aprašymas

time

int32_t

Laikas, per kurį variklis arba variklių grupė gali bandyti užbaigti judesį. Tai turi būti teigiamas sveikasis skaičius.

units

timeUnits

Laiko vienetas:

  • msec — milisekundės
  • seconds / sec — sekundės

Grąžinamosios reikšmės

Ši funkcija negrąžina reikšmės.

Notes
  • Variklio arba variklių grupės skirtasis laikas naudojamas tam, kad judesiai, kurie nepasiekia tikslinės padėties, nesustabdytų kitų komandų vykdymo stekelyje.

  • Jei variklis arba variklių grupė nepasiekia tikslinės padėties iki skirtojo laiko pabaigos, jis nustos bandyti ir pereis prie kitos kodo eilutės.

  • Laiko apribojimas taikomas funkcijoms, turinčioms tikslinę reikšmę, pvz., spinFor ir spinToPosition.

Examples
// Stop a long move after 1 second
Motor1.setTimeout(1, seconds);
Motor1.spinFor(forward, 2, turns);
Motor1.spinToPosition(0, degrees);

Getteriai#

isDone#

isDone grąžina, ar variklis arba variklių grupė baigė judėti, kaip loginę reikšmę. Tai gali būti naudojama kitų veiksmų, pagrįstų variklio arba variklių grupės judėjimu, laikui valdyti.

  • true — Variklis arba variklių grupė baigė judėti.

  • false — Variklis arba variklių grupė vis dar juda.

Ši funkcija veikia kartu su šiomis „Motion“ funkcijomis, turinčiomis parametrą waitForCompletion : spinFor ir spinToPosition.

Available Functions
bool isDone();

Parameters

Ši funkcija nepriima jokių parametrų.

Return Values

Grąžina, ar variklis arba variklių grupė baigė judėti, kaip loginę reikšmę.

  • true — The motor or motor group is finished moving.
  • false — The motor or motor group is still moving.
Notes
  • isDone veikia kartu su šiomis „Motion“ funkcijomis, turinčiomis parametrą waitForCompletion : spinFor ir spinToPosition.

Examples
// Spin forward until the motor is done spinning
Motor1.spinFor(forward, 200, degrees, false);
while (true) {
  if (Motor1.isDone()) {
    Drivetrain.stop();
  } else {
    Drivetrain.drive(forward);
  }
}

isSpinning#

isSpinning grąžina loginę reikšmę, ar sukasi variklis, ar variklių grupė. Tai gali būti naudojama kitų veiksmų, pagrįstų variklio arba variklių grupės judėjimu, laikui valdyti.

  • true — Variklis arba variklių grupė sukasi.

  • false — Variklis arba variklių grupė nesisuka.

Ši funkcija veikia kartu su „Motion“ judėjimo funkcijomis, tokiomis kaip spin, spinFor ir spinToPosition.

Available Functions
bool isSpinning();

Parameters

Ši funkcija nepriima jokių parametrų.

Return Values

Grąžina, ar sukasi variklis, ar variklių grupė, kaip loginę reikšmę.

  • true — The motor or motor group is spinning.
  • false — The motor or motor group is not spinning.
Notes Examples
// Spin forward until the motor is done spinning
Motor1.spinFor(forward, 200, degrees, false);
while (true) {
  if (Motor1.isSpinning()) {
    Drivetrain.drive(forward);
  } else {
    Drivetrain.stop();
  }
}

position#

Variklio arba variklių grupės padėtis nurodo, kiek toli jis apsisuko, matuojant degrees arba turnsVienas apsisukimas lygus 360 laipsnių. position grąžina dabartinę variklio arba variklių grupės padėtį.

Projekto pradžioje variklio arba variklių grupės padėtis nustatyta į 0 laipsnių. Jei variklis arba variklių grupė sukasi vienu apsisukimu į priekį, padėtis bus 360 laipsnių arba 1 apsisukimas. Jei variklis arba variklių grupė sukasi kita kryptimi, padėtis bus neigiama.

Available Functions
double position(
  rotationUnits units );

Parameters

Parametras

Tipas

Aprašymas

units

rotationUnits

Įrenginys, skirtas variklio arba variklių grupės padėčiai grąžinti:

  • deg / degrees — laipsniai
  • turns / rev — apsisukimai

Return Values

Grąžina skaičių double reiškiantį dabartinę variklio arba variklių grupės padėtį nurodytais vienetais.

Notes
  • Iškvietus setPosition, pakeičiamas šios reikšmės atskaitos taškas.

  • Grąžinta reikšmė atspindi dabartinį kodavimo įrenginio rodmenį ir nenurodo, ar variklis, ar variklių grupė aktyviai juda.

  • Kai ši funkcija iškviečiama su motor_groupreikšme, ji grąžina pirmojo variklio padėtį grupėje.

Examples
// Spin, then show the final position
Motor1.spin(forward);
wait(1, seconds);
Motor1.stop();
Brain.Screen.print("Pos: %f", Motor1.position(degrees));

velocity#

velocity grąžina variklio arba variklių grupės sukasi greitį.

Teigiama reikšmė reiškia, kad variklis arba variklių grupė sukasi pirmyn. Neigiama reikšmė reiškia, kad jie sukasi atgal.

Available Functions
double velocity(
    velocityUnits units );

Parameters

Parametras

Tipas

Aprašymas

units

velocityUnits

Greičiui pavaizduoti naudojami šie vienetai:

  • percent / pct — procentai
  • rpm — apsisukimai per minutę
  • dps — laipsniai per sekundę

Return Values

Grąžina double nurodantį, kaip greitai variklis arba variklių grupė sukasi nurodytais vienetais.

Pastabos

  • Kai ši funkcija iškviečiama su motor_groupreikšme, ji grąžina pirmojo variklio grupėje greitį.

current#

current grąžina, kiek elektros srovės sunaudoja variklis arba variklių grupė. Srovė yra per variklį arba variklių grupę tekančios elektros energijos kiekis. Grąžinama amperais, srovė nurodoma nuo 0,0 iki 1,2 A.

Didesnė srovės vertė reiškia, kad variklis arba variklių grupė naudoja daugiau elektros srovės. Taip gali nutikti, kai variklis arba variklių grupė kelia sunkų daiktą, stumia į objektą arba bando pajudėti, kai yra užstrigęs.

Tai galima naudoti norint patikrinti, ar variklis arba variklių grupė sunkiai veikia judesio metu. Jei srovė išlieka didelė, variklis gali įkaisti arba ne taip efektyviai naudoti energiją.

Available Functions

1 — Grąžina variklio arba variklių grupės elektros srovę amperais.

double current(
  currentUnits units = amp );

2 — Grąžina variklio arba variklių grupės elektros srovę, išreikštą maksimalios vardinės srovės procentine dalimi.

double current(
  percentUnits units );

Parameters

Parametras

Tipas

Aprašymas

units

currentUnits

Srovei pavaizduoti naudojamas vienetas:amp (numatytasis) – amperai

units

percentUnits

Rodo srovę procentais nuo variklio maksimalios vardinės srovės:percent / pct — procentai

Return Values

Grąžina skaičių double nurodantį, kiek elektros srovės variklis arba variklių grupė sunaudoja nurodytais vienetais.

Pastabos

  • Kai ši funkcija iškviečiama su motor_groupreikšme, ji grąžina bendrą visų grupės variklių elektros srovę.

power#

power grąžina, kiek energijos vatais sunaudoja variklis arba variklių grupė. Galia rodo, kaip greitai variklis arba variklių grupė eikvoja energiją.

Didesnė galios vertė reiškia, kad variklis arba variklių grupė energiją naudoja greičiau. Taip gali nutikti, kai variklis arba variklių grupė kelia sunkų daiktą, stumia į objektą arba bando pajudėti, kai yra užstrigęs.

Tai galima naudoti judesiams palyginti arba patikrinti, ar variklis ar variklių grupė veikia netinkamai. Jei galia išlieka didelė, variklis gali įkaisti arba energiją naudoti ne taip efektyviai.

Available Functions
double power(
  powerUnits units = watt );

Parametrai

Parametras

Tipas

Aprašymas

units

powerUnits

Variklio galiai pavaizduoti naudojamas vienetas:

  • watt (numatytasis) — vatai

Grąžinamosios reikšmės

Grąžina double nurodančius, kiek energijos vatais naudoja variklis arba variklių grupė.

Pastabos

  • Kai ši funkcija iškviečiama su motor_groupreikšme, ji grąžina pirmojo grupėje esančio variklio elektros galią.

torque#

Sukimo momentas rodo, kaip stipriai variklis arba variklių grupė sukasi, stumia arba traukia, kol sukasi.

torque grąžina, kiek sukimo momento naudoja variklis arba variklių grupė.

Didesnė sukimo momento vertė reiškia, kad variklis arba variklių grupė stumia arba traukia stipriau. Taip gali nutikti, kai variklis arba variklių grupė kelia sunkų daiktą, stumia į objektą arba bando pajudėti, kai yra užstrigęs.

Tai galima naudoti norint patikrinti, ar motorikai ar motorinei grupei sunku, arba palyginti, kiek stūmimo reikia skirtingiems judesiams.

Norėdami nustatyti variklio arba variklių grupės sukimo momentą, naudokite setMaxTorque.

Available Functions
double torque(
  torqueUnits units = Nm );

Parametrai

Parametras

Tipas

Aprašymas

units

torqueUnits

Variklio sukimo momentui pavaizduoti naudojamas vienetas:

  • Nm (numatytasis) — niutonmetrai
  • InLb — coliai-svarai

Grąžinamosios reikšmės

Grąžina double nurodančius, kiek sukimo momento variklis arba variklių grupė naudoja nurodytais vienetais.

Pastabos

  • Kai ši funkcija iškviečiama su motor_groupreikšme, ji grąžina pirmojo variklio grupėje mechaninį išėjimo sukimo momentą.

efficiency#

efficiency grąžina variklio arba variklių grupės energijos vartojimo efektyvumą procentais nuo 0 % iki 100 %.

Efektyvumas rodo, kiek variklio arba variklių grupės galios sunaudojama judėjimui. Didesnė efektyvumo vertė reiškia, kad judėjimui sunaudojama daugiau variklio arba variklių grupės galios. Mažesnė efektyvumo vertė gali būti, kai variklis arba variklių grupė dirba daug, bet juda mažai, pavyzdžiui, kai užstringa arba spaudžia objektą.

Tai galima naudoti judesiams palyginti arba patikrinti, ar variklis arba variklių grupė nešvaisto energijos, užuot ją naudoję judėjimui.

Available Functions
double efficiency(
  percentUnits units = percent );

Parametrai

Parametras

Tipas

Aprašymas

units

percentUnits

Variklio efektyvumui nurodyti naudojamas vienetas:

  • percent / percentUnits::pct (numatytasis) — procentai

Grąžinamosios reikšmės

Grąžina skaičių double nurodantį, kaip efektyviai variklis arba variklių grupė naudoja energiją procentais.

Pastabos

  • Kai ši funkcija iškviečiama su motor_groupreikšme, ji grąžina pirmojo grupėje esančio variklio efektyvumą.

temperature#

temperature grąžina variklio arba variklių grupės temperatūrą.

Variklio temperatūra rodo, kiek įšilęs variklis arba variklių grupė. Aukštesnė temperatūra reiškia, kad variklis arba variklių grupė darbo metu įkaista. Kad variklis veiktų visu našumu, jo temperatūra turi būti žemesnė nei 55°C

Jei variklis arba variklių grupė per daug įkaista, jie sumažina maksimalią srovę, kad apsisaugotų. Esant 70°Ctemperatūrai, variklis nustos veikti, kol atvės.

Tai galima naudoti norint patikrinti, ar variklis arba variklių grupė neperkaista pasikartojančių judesių, ilgų važiavimų metu arba kai spaudžia objektą.

Available Functions

1 — Grąžina variklio arba variklių grupės temperatūrą kaip maksimalios darbinės temperatūros procentinę dalį.

double temperature(
  percentUnits units = percent );

2 — Grąžina variklio arba variklių grupės temperatūrą fizinės temperatūros vienetais.

double temperature(
  temperatureUnits units );

Parametrai

Parametras

Tipas

Aprašymas

units

percentUnits

Variklio arba variklių grupės temperatūros procentinis vienetas:

  • percent / percentUnits::pct (numatytasis) — procentai

units

temperatureUnits

Variklio arba variklių grupės temperatūrai laipsniais išreikšti naudojamas vienetas:

  • celsius — Celsijaus laipsniai
  • fahrenheit — Farenheito laipsniai

Grąžinamosios reikšmės

Grąžina skaičių double , reiškiantį variklio arba variklių grupės temperatūrą nurodytais vienetais.

Pastabos

  • The operating temperature range for the motor is approximately 20°C (68°F) to 70°C (158°F).

  • Kai ši funkcija iškviečiama su motor_groupreikšme, ji grąžina pirmojo variklio grupėje temperatūrą.

voltage#

voltage grąžina varikliui arba variklių grupei tiekiamą elektros įtampą.

Available Functions
double voltage(
  voltageUnits units = volt );

Parametrai

Parametras

Tipas

Aprašymas

units

voltageUnits

Įtampos matavimo vienetas:

  • volt (numatytasis)
  • voltageUnits::mV — milivoltai

Grąžinamosios reikšmės

Grąžina skaičių double , nurodantį varikliui arba variklių grupei tiekiamą elektros įtampą nurodytais vienetais.

Pastabos

  • Kai ši funkcija iškviečiama su motor_groupreikšme, ji grąžina pirmojo grupėje esančio variklio elektros įtampą.

direction#

direction grąžina variklio arba variklių grupės sukimosi kryptį.

Available Functions
directionType direction();

Parametrai

Ši funkcija nepriima jokių parametrų.

Grąžinamosios reikšmės

Grąžina directionType , nurodantį variklio arba variklių grupės dabartinę kryptį:

  • forward — The motor or motor group is spinning forward.
  • reverse — The motor or motor group is spinning in reverse.

installed#

installed grąžina, ar variklis, ar variklių grupė yra prijungta prie IQ (1-osios kartos) smegenų.

Available Functions
bool installed();

Parametrai

Ši funkcija nepriima jokių parametrų.

Grąžinamosios reikšmės

Grąžina bool nurodančią, ar prijungtas variklis, ar variklių grupė.

  • true — The motor or motor group is connected.
  • false — The motor or motor group is not connected.

count#

count grąžina variklių grupės variklių skaičių.

Available Functions
int32_t count();

Parametrai

Ši funkcija nepriima jokių parametrų.

Grąžinamosios reikšmės

Grąžina int32_t , nurodantį variklių skaičių variklių grupėje.