Silnik i Grupa Motoryzacyjna#

Wstęp#

Silniki i grupy silników sterują ruchem części robota. Obiekt motor steruje jednym skonfigurowanym silnikiem IQ Smart Motor, natomiast obiekt motor_group steruje wieloma skonfigurowanymi silnikami IQ Smart Motor, dzięki czemu poruszają się one w tandemie. Silniki i grupy silników mogą być używane do podnoszenia ramienia, obracania chwytaka, obracania koła lub przesuwania innej części konstrukcji. Dwa silniki mogą współpracować jako układ napędowy, aby poruszać i obracać całego robota.

Każdy silnik lub grupa silników jest konfigurowana w oknie Urządzenia. W zależności od wersji, nazwy silników i grup silników mogą się zmieniać. Na tej stronie przykładowe nazwy to Motor1 i MotorGroup1 W razie potrzeby można je zastąpić własnymi, skonfigurowanymi nazwami.

Silnik VEX IQ (2. generacja) pokazujący kierunek do przodu oznaczony znakiem plus i strzałką wskazującą, że obraca się w lewo, czyli przeciwnie do ruchu wskazówek zegara. Silnik VEX IQ (2. generacja) pokazujący odwrotny kierunek obrotów oznaczony znakiem minus i strzałką wskazującą, że obraca się w prawo lub zgodnie z ruchem wskazówek zegara.

Domyślnie, forward obraca silnik przeciwnie do ruchu wskazówek zegara, a reverse obraca silnik zgodnie z ruchem wskazówek zegara. Jeśli silnik jest ustawiony na bieg wsteczny, kierunki te zostaną zmienione.

Silnik#

Class Constructors#

1 — Tworzy obiekt „silnik motor dla inteligentnego silnika IQ podłączonego do określonego portu inteligentnego. Silnik automatycznie używa wykrytego wewnętrznego ustawienia przekładni gearSetting.

motor(
  int32_t index );

2 — Tworzy obiekt silnika motor na określonym porcie inteligentnym i opcjonalnie zmienia jego kierunek. Silnik automatycznie używa wykrytego wewnętrznego ustawienia przekładni gearSetting.

motor(
 int32_t index,
 bool    reverse );

3 — Tworzy obiekt silnika motor na określonym porcie inteligentnym z określonym ustawieniem przekładni gearSetting.

motor(
 int32_t     index,
 gearSetting gears );

4 — Tworzy obiekt silnika motor na określonym porcie inteligentnym z określonym ustawieniem przekładni gearSetting i opcjonalnym odwróconym kierunkiem.

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

Class Destructor#

Niszczy obiekt silnika motor i uwalnia powiązane zasoby.

~motor();

Parameters#

Parametr

Typ

Opis

index

int32_t

Inteligentny port, do którego podłączony jest silnik, zapisany jako PORTx, gdzie x to numer portu (na przykład PORT1).

reverse

bool

Ustawia, czy kierunek wirowania silnika jest odwrócony:

  • false (domyślnie) — Nie odwraca kierunku wirowania silnika.
  • true — Odwraca kierunek wirowania silnika.

gears

gearSetting

Określa wewnętrzny współczynnik przekładni zębatej.

  • ratio1_1 — współczynnik przekładni 1:1
  • ratio2_1 — współczynnik przekładni 2:
  • ratio3_1 — współczynnik przekładni 3:1

Notes#

  • Ustawienia przekładni powinny odpowiadać fizycznemu wkładowi zamontowanemu w silniku.

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

Grupa Motoryzacyjna#

Class Constructors#

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

Class Destructor#

Niszczy obiekt motor_group i zwalnia powiązane zasoby.

~motor_group();

Parameters#

Parametr

Typ

Opis

m1

motor &

Pierwszy silnik dodany do grupy.

m2

motor &

Dodano dodatkowe silniki do grupy. Maksymalna liczba silników w jednej grupie to cztery.

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

Funkcje członkowskie#

Istnieje wiele sposobów kodowania silników i grup silników. Poniżej znajduje się lista wszystkich funkcji składowych motor i motor_group:

Działania — zatrzymanie i obrót silników i grup silników.

  • spin — Obraca silnik lub grupę silników do przodu lub do tyłu w nieskończoność.

  • spinFor — Obraca silnik lub grupę silników na określoną odległość lub przez określony czas.

  • spinToPosition — Obraca silnik lub grupę silników do określonej pozycji.

  • stop — Zatrzymuje silnik lub grupę silników przed wirowaniem.

Mutatory — dostosuj ustawienia silnika i grupy silników.

  • setVelocity — Informuje silnik lub grupę silników, jak szybko ma się kręcić.

  • setMaxTorque — Ustawia siłę, z jaką silnik lub grupa silników może naciskać podczas wirowania.

  • setPosition — Zmienia bieżącą pozycję silnika lub grupy silników na nową wartość.

  • setStopping — Ustawia sposób zatrzymania silnika lub grupy silników: poprzez hamowanie, jazdę bez obciążenia lub przytrzymywanie.

  • setTimeout — Ustawia, ile czasu silnik lub grupa silników będzie próbowała zakończyć ruch.

Gettery — sprawdź status silnika i grupy silników.

  • isDone — Zwraca wartość logiczną informującą, czy silnik lub grupa silników zakończyła ruch.

  • isSpinning — Zwraca wartość logiczną informującą, czy silnik lub grupa silników się obraca.

  • position — Zwraca aktualną pozycję silnika lub grupy silników.

  • velocity — Zwraca prędkość, z jaką obraca się silnik lub grupa silników.

  • current — Zwraca wartość prądu elektrycznego zużywanego przez silnik lub grupę silników.

  • power — Zwraca ilość energii zużywanej przez silnik lub grupę silników.

  • torque — Zwraca wartość momentu obrotowego używanego przez silnik lub grupę silników.

  • efficiency — Zwraca informację o tym, jak efektywnie silnik lub grupa silników wykorzystuje energię.

  • temperature — Zwraca temperaturę silnika lub grupy silników.

  • voltage — Zwraca napięcie elektryczne dostarczone do silnika lub grupy silników.

  • direction — Zwraca kierunek, w którym obraca się silnik lub grupa silników.

  • zainstalowanoinstalled — Zwraca informację, czy silnik lub grupa silników jest połączona z mózgiem.

  • count — Zwraca liczbę silników w grupie silników.

Before calling any motor or motor_group member functions, an instance must be created, as shown below:

/* 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);

Akcje#

spin#

spin powoduje nieograniczony obrót silnika lub grupy silników do przodu lub do tyłu. Silnik lub grupa silników będzie się obracać, dopóki nie zostanie wykonana inna czynność, np. obrót w innym kierunku lub zatrzymanie.

Available Functions

1 — Obraca silnik lub grupę silników, wykorzystując aktualnie skonfigurowaną prędkość silnika.

void spin(
 directionType dir );

2 — Obraca silnik lub grupę silników z określoną prędkością.

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

3 — Obraca silnik lub grupę silników przy użyciu określonego napięcia.

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

Parameters

Parametr

Typ

Opis

dir

directionType

Kierunek obrotu silnika lub grupy silników: forward lub reverse.

velocity

double

Prędkość wirowania od 0% do 100% przy użyciu percent.

units

velocityUnits

Jednostka używana do reprezentowania prędkości:

  • percent / pct — procent
  • rpm — obroty na minutę
  • dps — stopnie na sekundę

voltage

double

Napięcie, z którym należy wirować. Wartość ujemna wiruje przeciwnie do podanego kierunku dir.

units

voltageUnits

Jednostka używana do reprezentowania napięcia:

  • volt — wolty
  • voltageUnits::mV — miliwolty

Return Values

Ta funkcja nie zwraca wartości.

Notes
  • Funkcja ta nie wymaga oczekiwania, a projekt będzie kontynuowany natychmiast po wywołaniu.

  • Silnik lub grupa silników będzie się obracać, aż do wywołania stop lub wykonania innej funkcji ruchu.

  • Funkcje takie jak isDone i isSpinning nie są stosowane do spin, ponieważ nie wykorzystuje on ruchu opartego na celu (nie ma parametru rotation lub time).

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

spinFor#

spinFor obraca silnik lub grupę silników na określoną odległość lub przez określony czas. Obrót oparty na obrocie jest względny do bieżącej pozycji silnika lub grupy silników. Domyślnie projekt czeka, aż silnik lub grupa silników zakończy obrót, zanim zostanie uruchomiony kolejny wiersz kodu.

Available Functions

1 — Obrót na określoną odległość z prędkością podaną w wywołaniu funkcji.

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

2 — Akceptuje parametr kierunku i obraca się na określoną odległość z prędkością podaną w wywołaniu funkcji.

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

3 — Obrót na określoną odległość przy użyciu bieżąco skonfigurowanej prędkości silnika.

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

4 — Akceptuje parametr kierunku i obraca się na określoną odległość, używając aktualnie skonfigurowanej prędkości silnika.

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

5 — Obrót przez określony czas z prędkością podaną w wywołaniu funkcji.

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

6 — Akceptuje parametr kierunku i obraca się przez określony czas z prędkością podaną w wywołaniu funkcji.

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

7 — Obrót przez określony czas z wykorzystaniem bieżąco skonfigurowanej prędkości silnika.

bool spinFor(
 double    time,
 timeUnits units );

8 — Akceptuje parametr kierunku i obraca się przez określony czas, używając bieżąco skonfigurowanej prędkości silnika.

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

Parameters

Parametr

Typ

Opis

dir

directionType

Kierunek obrotu silnika lub grupy silników: forward lub reverse.

rotation

double

Odległość, na jaką obraca się silnik lub grupa silników.

units

rotationUnits

Jednostka obrotu:

  • deg / degrees — stopnie
  • turns / rev — obroty

time

double

Czas trwania obrotu silnika lub grupy silników.

units

timeUnits

Jednostka czasu:

  • seconds / sec — sekundy
  • msec — milisekundy

velocity

double

Prędkość wirowania od 0% do 100% przy użyciu percent.

units_v

velocityUnits

Jednostka używana do reprezentowania prędkości velocity:

  • percent / pct — procent
  • rpm — obrotów na minutę
  • dps — stopni na sekundę

waitForCompletion

bool

​

  • true (domyślnie) — powoduje, że projekt czeka, aż silnik lub grupa silników zakończy obrót, zanim zostanie wykonany kolejny wiersz kodu.
  • false — powoduje, że kolejny wiersz kodu zostanie wykonany natychmiast.

Return Values

Zwraca wartość logiczną pokazującą, czy silnik lub grupa silników osiągnęła wartość docelową.

  • 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
  • Wykonanie innej funkcji ruchu silnika (takiej jak spin lub stop) podczas trwania funkcji spinFor spowoduje przerwanie bieżącego ruchu.

  • Ponieważ spinFor spinFor jest oparty na celu (używa parametru obrotu spinFor lub rotation ), funkcje takie jak isDone i isSpinning działają z spinFor time.

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 obraca silnik lub grupę silników do określonej pozycji.

Pozycja silnika lub grupy silników to odległość, o jaką obrócił się silnik, mierzona w degrees lub turns. Jeden obrót to 360 stopni. Na początku projektu położenie silnika lub grupy silników jest ustawione na 0 stopni. Położenie silnika lub grupy silników można również ustawić za pomocą funkcji setPosition.

Wartości pozycji są bezwzględne. Oznacza to, że kierunek obrotu zależy od aktualnej pozycji silnika lub grupy silników.

Na przykład, jeśli silnik lub grupa silników zaczyna od 0 stopni i obraca się do pozycji 720 stopni, wykona dwa obroty do przodu. Jeśli następnie obraca się do pozycji 360 stopni, wykona jeden obrót do tyłu, ponieważ 360 stopni jest mniejsze niż 720 stopni.

Available Functions

1 — Obrót do określonej pozycji z prędkością podaną w wywołaniu funkcji.

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

2 — Obrót do określonej pozycji przy użyciu bieżąco skonfigurowanej prędkości silnika.

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

Parameters

Parametr

Typ

Opis

rotation

double

Wartość pozycji, do której będzie się obracał silnik lub grupa silników.

units

rotationUnits

Jednostka obrotu:

  • deg / degrees — stopnie
  • turns / rev — obroty

velocity

double

Prędkość wirowania od 0% do 100% przy użyciu percent.

units_v

velocityUnits

Jednostka używana do reprezentowania prędkości velocity:

  • pct — procent
  • rpm — obrotów na minutę
  • dps — stopni na sekundę

waitForCompletion

bool

​

  • true (domyślnie) — powoduje, że projekt czeka, aż silnik lub grupa silników zakończy obrót, zanim zostanie wykonany kolejny wiersz kodu.
  • false — powoduje, że kolejny wiersz kodu zostanie wykonany natychmiast.

Return Values

Zwraca wartość logiczną pokazującą, czy silnik lub grupa silników rozpoczęła żądany ruch oparty na celu.

  • true — The motor or motor group begins the requested target-based movement.
  • false — The call fails or waitForCompletion is set to false.
Notes
  • Wykonanie innej funkcji ruchu silnika (takiej jak spin lub spinFor) podczas trwania funkcji spinToPosition spowoduje przerwanie bieżącego ruchu.

  • Ponieważ spinToPosition jest oparte na celu (używa parametru obrotu rotation ), funkcje takie jak isDone i isSpinning działają z spinToPosition.

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

stop#

stop zatrzymuje silnik lub grupę silników przed wirowaniem.

Available Functions

1 — Zatrzymuje silnik lub grupę silników za pomocą aktualnie skonfigurowanego trybu hamowania.

void stop();

2 — Zatrzymuje silnik lub grupę silników przy użyciu trybu hamowania podanego w wywołaniu funkcji.

void stop(
  brakeType mode );

Parameters

Parametr

Typ

Opis

mode

brakeType

Opcjonalnie. Jak silnik lub grupa silników zatrzyma się:

  • coast — zwalnia do zatrzymania.
  • brake — zatrzymuje się natychmiast.
  • hold — zatrzymuje się natychmiast i utrzymuje pozycję silnika lub grupy silników.

Return Values

Ta funkcja nie zwraca wartości.

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

Mutatory#

setVelocity#

Wartość setVelocity określa prędkość obrotową silnika lub grupy silników. Wyższy procent powoduje, że silnik lub grupa silników obraca się szybciej, a niższy procent powoduje, że silnik lub grupa silników obraca się wolniej.

Każdy projekt rozpoczyna się od tego, że każdy silnik lub grupa silników obraca się domyślnie z prędkością 50%.

Uwaga: Wyższa prędkość sprawia, że ​​silnik lub grupa silników obraca się szybciej, ale może być mniej precyzyjna. Niższa prędkość sprawia, że ​​silnik lub grupa silników obraca się wolniej, ale może być bardziej precyzyjna.

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

Parameters

Parametr

Typ

Opis

velocity

double

Prędkość wirowania od 0% do 100% przy użyciu percent.

units

velocityUnits

Jednostka używana do reprezentowania prędkości velocity:

  • percent / pct — procent
  • rpm — obrotów na minutę
  • dps — stopni na sekundę

Return Values

Ta funkcja nie zwraca wartości.

Notes
  • Każda kolejna funkcja ruchu silnika (taka jak spin, spinFor lub spinToPosition), która nie określa jawnie prędkości, będzie używać tej wartości.

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#

Moment obrotowy pokazuje, jak mocno silnik lub grupa silników może pchać lub ciągnąć podczas obrotu.

setMaxTorque ustawia maksymalny moment obrotowy, jaki może osiągnąć silnik lub grupa silników.

Wyższy procent pozwala silnikowi lub grupie silników na mocniejsze pchanie, np. podczas podnoszenia ciężkiego przedmiotu. Niższy procent ogranicza siłę, z jaką silnik lub grupa silników może pchać. Może to pomóc w ochronie robota, jeśli silnik lub grupa silników utknie lub osiągnie granicę swojego zasięgu.

Każdy projekt rozpoczyna się od momentu obrotowego każdego silnika lub grupy silników wynoszącego domyślnie 50%.

Available Functions

1 — Ustawia maksymalny moment obrotowy jako procent znamionowego momentu obrotowego silnika lub grupy silników.

void setMaxTorque(
 double       value,
 percentUnits units );

2 — Ustawia maksymalny moment obrotowy za pomocą fizycznych jednostek momentu obrotowego.

void setMaxTorque(
 double      value,
 torqueUnits units );

3 — Ustawia maksymalny moment obrotowy poprzez ograniczenie prądu silnika.

void setMaxTorque(
 double       value,
 currentUnits units );

Parameters

Parametr

Typ

Opis

value

double

Maksymalny moment obrotowy, jaki może wykorzystać silnik lub grupa silników.

units

percentUnits

Określa moment obrotowy jako procent: percent / pct — procent

units

torqueUnits

Określa moment obrotowy w jednostkach fizycznych, takich jak:

  • Nm — niutonometry
  • InLb — cale-funty

units

currentUnits

Określa moment obrotowy poprzez ograniczenie prądu silnika:

  • amp

Return Values

Ta funkcja nie zwraca wartości.

Notes
  • W przypadku użycia currentUnitsmoment obrotowy jest ograniczany poprzez narzucenie limitu prądu elektrycznego, jaki może wykorzystać silnik lub grupa silników.

setPosition#

Pozycja silnika lub grupy silników to odległość, na jaką wykonał on obrót, mierzona w degrees lub turns. Jeden obrót to 360 stopni. setPosition zmienia bieżącą pozycję silnika lub grupy silników na nową wartość.

Na przykład, jeśli silnik lub grupa silników obróciła się o 180 stopni, ustawienie pozycji na 0 stopni spowoduje zresetowanie tej pozycji ze 180 do 0 stopni. Następnie silnik lub grupa silników może obracać się do pozycji na podstawie tej nowej wartości.

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

Parameters

Parametr

Typ

Opis

value

double

Wartość pozycji, którą należy ustawić dla silnika lub grupy silników.

units

rotationUnits

Jednostka położenia:

  • deg / degrees — stopnie
  • turns / rev — obroty

Return Values

Ta funkcja nie zwraca wartości.

Notes
  • Po wywołaniu setPositionkolejne wywołania spinToPosition będą używać zaktualizowanej pozycji jako odniesienia.

setStopping#

setStopping ustawia sposób zatrzymania silnika lub grupy silników: poprzez hamowanie, jazdę bez obciążenia lub przytrzymywanie.

Available Functions
void setStopping(
  brakeType mode );

Parameters

Parametr

Typ

Opis

mode

brakeType

Jak silnik lub grupa silników zatrzyma się:

  • brake — zatrzymuje się natychmiast.
  • coast — zwalnia do zatrzymania.
  • hold — zatrzymuje się natychmiast i utrzymuje pozycję silnika lub grupy silników.

Return Values

Ta funkcja nie zwraca wartości.

Notes
  • Każde kolejne wywołanie stop bez określonego trybu hamowania będzie używać tej wartości.

setTimeout#

setTimeout ustawia, ile czasu silnik lub grupa silników będzie próbować zakończyć ruch. Jeśli silnik lub grupa silników nie zdoła zakończyć ruchu w tym czasie, przerwie próbę i przejdzie do następnego wiersza kodu. Zapobiega to zablokowaniu silnika lub grupy silników podczas ruchu.

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

Parameters

Parametr

Typ

Opis

time

int32_t

Czas, w którym silnik lub grupa silników może próbować zakończyć ruch. Musi to być dodatnia liczba całkowita.

units

timeUnits

Jednostka czasu:

  • msec — milisekundy
  • seconds / sec — sekund

wartości zwracanych

Ta funkcja nie zwraca wartości.

Notes
  • Limit czasu silnika lub grupy silników jest używany w celu zapobieżenia temu, aby ruchy, które nie osiągnęły swojej pozycji docelowej, zatrzymywały wykonywanie innych poleceń w stosie.

  • Jeśli silnik lub grupa silników nie osiągnie pozycji docelowej przed upływem limitu czasu, próby zostaną przerwane i przejdziemy do następnego wiersza kodu.

  • Limit czasu dotyczy funkcji, które mają wartość docelową, taką jak spinFor i spinToPosition.

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

Getters#

isDone#

isDone zwraca wartość logiczną, czy silnik lub grupa silników zakończyła ruch. Można tego użyć do sterowania czasem innych zachowań na podstawie ruchu silnika lub grupy silników.

  • true — Silnik lub grupa silników zakończyła ruch.

  • false — Silnik lub grupa silników nadal się porusza.

Funkcja ta działa w połączeniu z następującymi funkcjami Motion, które mają parametr waitForCompletion równy waitForCompletion : spinFor i spinToPosition.

Available Functions
bool isDone();

Parameters

Ta funkcja nie przyjmuje żadnych parametrów.

Return Values

Zwraca wartość logiczną informującą, czy silnik lub grupa silników zakończyły ruch.

  • true — The motor or motor group is finished moving.
  • false — The motor or motor group is still moving.
Notes
  • isDone works together with the following Motion functions that have the waitForCompletion parameter: spinFor and 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 zwraca wartość logiczną, czy silnik lub grupa silników się obraca. Można jej użyć do sterowania czasem innych zachowań na podstawie ruchu silnika lub grupy silników.

  • true — Silnik lub grupa silników się kręci.

  • false — Silnik lub grupa silników nie obraca się.

Funkcja ta działa w połączeniu z funkcjami ruchu Motion, takimi jak spin, spinFor i spinToPosition.

Available Functions
bool isSpinning();

Parameters

Ta funkcja nie przyjmuje żadnych parametrów.

Return Values

Zwraca wartość logiczną informującą, czy silnik lub grupa silników się kręci.

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

Pozycja silnika lub grupy silników to odległość, na jaką wykonał on obrót, mierzona w degrees lub turns. Jeden obrót to 360 stopni. position zwraca aktualną pozycję silnika lub grupy silników.

Na początku projektu położenie silnika lub grupy silników jest ustawione na 0 stopni. Jeśli silnik lub grupa silników obróci się o jeden obrót do przodu, położenie będzie wynosić 360 stopni lub 1 obrót. Jeśli silnik lub grupa silników obróci się w przeciwnym kierunku, położenie będzie ujemne.

Available Functions
double position(
  rotationUnits units );

Parameters

Parametr

Typ

Opis

units

rotationUnits

Jednostka przywracająca położenie silnika lub grupy silników w zakresie:

  • deg / degrees — stopnie
  • turns / rev — obrotów

Return Values

Zwraca wartość double co oznacza bieżącą pozycję silnika lub grupy silników w określonych jednostkach.

Notes
  • Wywołanie setPosition zmienia punkt odniesienia dla tej wartości.

  • Zwrócona wartość odzwierciedla bieżący odczyt enkodera i nie wskazuje, czy silnik lub grupa silników aktywnie się porusza.

  • When called on a motor_group, this function returns the position of the first motor in the group.

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 zwraca informację o tym, jak szybko obraca się silnik lub grupa silników.

Wartość dodatnia oznacza, że ​​silnik lub grupa silników obraca się do przodu. Wartość ujemna oznacza, że ​​obraca się do tyłu.

Available Functions
double velocity(
    velocityUnits units );

Parameters

Parametr

Typ

Opis

units

velocityUnits

Jednostka używana do reprezentowania prędkości:

  • percent / pct — procent
  • rpm — obroty na minutę
  • dps — stopnie na sekundę

Return Values

Zwraca wartość double oznaczającą, jak szybko obraca się silnik lub grupa silników w określonych jednostkach.

Notatki

  • When called on a motor_group, this function returns the velocity of the first motor in the group.

current#

current zwraca natężenie prądu elektrycznego pobieranego przez silnik lub grupę silników. Prąd to ilość prądu przepływającego przez silnik lub grupę silników. W amperach, natężenie prądu jest podawane w zakresie od 0,0 do 1,2 A.

Wyższa wartość prądu oznacza, że ​​silnik lub zespół silników zużywa więcej prądu. Może się tak zdarzyć, gdy silnik lub zespół silników podnosi ciężki przedmiot, naciska na niego lub próbuje się poruszyć, gdy utknie.

Można tego użyć, aby sprawdzić, czy silnik lub zespół silników ma problemy podczas ruchu. Jeśli prąd utrzymuje się na wysokim poziomie, silnik może się nagrzewać lub zużywać energię mniej efektywnie.

Available Functions

1 — Zwraca natężenie prądu elektrycznego silnika lub grupy silników w amperach.

double current(
  currentUnits units = amp );

2 — Zwraca prąd elektryczny silnika lub grupy silników jako procent maksymalnego prądu znamionowego.

double current(
  percentUnits units );

Parameters

Parametr

Typ

Opis

units

currentUnits

Jednostka używana do reprezentowania prądu:amp (domyślnie) — ampery

units

percentUnits

Reprezentuje prąd jako procent maksymalnego prądu znamionowego silnika:percent / pct — procent

Return Values

Zwraca wartość double oznaczającą, ile prądu elektrycznego pobiera silnik lub grupa silników, w określonych jednostkach.

Notatki

  • Gdy zostanie wywołana dla motor_group motor_group, funkcja ta zwraca całkowity prąd elektryczny dla wszystkich silników w grupie.

power#

power zwraca moc zużywaną przez silnik lub grupę silników w watach. Moc pokazuje, jak szybko silnik lub grupa silników zużywa energię.

Wyższa wartość mocy oznacza, że ​​silnik lub grupa silników zużywa energię szybciej. Może się to zdarzyć, gdy silnik lub grupa silników podnosi coś ciężkiego, popycha przedmiot lub próbuje się poruszyć, gdy utknie.

Można tego użyć do porównania ruchów lub sprawdzenia, czy silnik lub grupa silników ma problemy. Jeśli moc pozostaje wysoka, silnik może się nagrzewać lub zużywać energię mniej efektywnie.

Available Functions
double power(
  powerUnits units = watt );

Parametry

Parametr

Typ

Opis

units

powerUnits

Jednostka używana do przedstawienia mocy silnika:

  • watt (domyślnie) — waty

wartości zwracanych

Zwraca wartość double oznaczającą, ile mocy zużywa silnik lub grupa silników w watach.

Notatki

  • Gdy zostanie wywołana motor_group, funkcja ta zwraca moc elektryczną pierwszego silnika w grupie.

torque#

Moment obrotowy pokazuje, jak mocno silnik lub grupa silników skręca, popycha lub ciągnie podczas obrotu.

torque zwraca wartość momentu obrotowego używanego przez silnik lub grupę silników.

Wyższa wartość momentu obrotowego oznacza, że ​​silnik lub grupa silników pcha lub ciągnie mocniej. Może się tak zdarzyć, gdy silnik lub grupa silników podnosi coś ciężkiego, popycha obiekt lub próbuje się poruszyć, gdy jest zablokowany.

Można tego użyć, aby sprawdzić, czy dany ruch lub grupa ruchowa ma trudności, lub porównać, ile siły nacisku potrzeba przy różnych ruchach.

Aby ustawić moment obrotowy silnika lub grupy silników, należy użyć setMaxTorque.

Available Functions
double torque(
  torqueUnits units = Nm );

Parametry

Parametr

Typ

Opis

units

torqueUnits

Jednostka używana do przedstawienia momentu obrotowego silnika:

  • Nm (domyślna) — niutonometry
  • InLb — cale/funty

wartości zwracanych

Zwraca wartość double oznaczającą, jaki moment obrotowy wykorzystuje silnik lub grupa silników, w określonych jednostkach.

Notatki

  • When called on a motor_group, this function returns the mechanical output torque of the first motor in the group.

efficiency#

efficiency zwraca informację o tym, jak efektywnie silnik lub grupa silników wykorzystuje energię, w procentach od 0% do 100%.

Sprawność pokazuje, jaka część mocy silnika lub grupy silników jest wykorzystywana do poruszania się. Wyższa wartość sprawności oznacza, że ​​większa część mocy silnika lub grupy silników jest wykorzystywana do poruszania się. Niższa wartość sprawności może wystąpić, gdy silnik lub grupa silników intensywnie pracuje, ale porusza się nieznacznie, na przykład gdy jest zablokowany lub popycha obiekt.

Można tego użyć do porównywania ruchów lub sprawdzenia, czy silnik lub grupa silników marnuje energię zamiast wykorzystać ją do ruchu.

Available Functions
double efficiency(
  percentUnits units = percent );

Parametry

Parametr

Typ

Opis

units

percentUnits

Jednostka używana do reprezentowania sprawności silnika:

  • percent / percentUnits::pct (domyślnie) — procent

wartości zwracanych

Zwraca wartość double oznaczającą, w procentach, jak efektywnie silnik lub grupa silników wykorzystuje energię.

Notatki

  • Gdy zostanie wywołana motor_group, funkcja ta zwraca wydajność pierwszego silnika w grupie.

temperature#

temperature zwraca temperaturę silnika lub grupy silników.

Motor temperature shows how warm the motor or motor group is. A higher temperature means the motor or motor group is getting warmer while it works. The motor should stay below 55°C to keep working at full performance.

Jeśli silnik lub zespół silników przegrzeje się, obniży maksymalny prąd, aby się zabezpieczyć. Przy 70°Csilnik przestanie pracować do momentu ostygnięcia.

Można tego użyć, aby sprawdzić, czy silnik lub grupa silników nie przegrzewa się zbytnio podczas powtarzających się ruchów, długich biegów lub gdy naciska na jakiś obiekt.

Available Functions

1 — Zwraca temperaturę silnika lub grupy silników jako procent maksymalnej temperatury roboczej.

double temperature(
  percentUnits units = percent );

2 — Zwraca temperaturę silnika lub grupy silników w fizycznych jednostkach temperatury.

double temperature(
  temperatureUnits units );

Parametry

Parametr

Typ

Opis

units

percentUnits

Jednostka używana do przedstawiania temperatury silnika lub grupy silników jako procent:

  • percent / percentUnits::pct (domyślnie) — procent

units

temperatureUnits

Jednostka używana do reprezentowania temperatury silnika lub grupy silników w stopniach:

  • celsius — stopnie Celsjusza
  • fahrenheit — stopnie Fahrenheita

wartości zwracanych

Zwraca wartość double , co oznacza temperaturę silnika lub grupy silników w określonych jednostkach.

Notatki

  • Zakres temperatur roboczych silnika wynosi w przybliżeniu od 20°C (68°F) do 70°C (158°F).

  • Gdy zostanie wywołana motor_group, funkcja ta zwraca temperaturę pierwszego silnika w grupie.

voltage#

Napięcie voltage zwraca napięcie elektryczne dostarczane do silnika lub grupy silników.

Available Functions
double voltage(
  voltageUnits units = volt );

Parametry

Parametr

Typ

Opis

units

voltageUnits

Jednostka reprezentująca napięcie:

  • volt (domyślnie)
  • voltageUnits::mV — miliwolty

wartości zwracanych

Zwraca wartość double , co oznacza napięcie elektryczne dostarczane do silnika lub grupy silników w określonych jednostkach.

Notatki

  • When called on a motor_group, this function returns the electrical voltage of the first motor in the group.

direction#

Kierunek direction zwraca kierunek, w którym obraca się silnik lub grupa silników.

Available Functions
directionType direction();

Parametry

Funkcja ta nie przyjmuje żadnych parametrów.

wartości zwracanych

Zwraca wartość directionType directionType wskazującą aktualny kierunek silnika lub grupy silników:

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

installed#

installed zwraca informację, czy silnik lub grupa silników jest podłączona do mózgu IQ (2. generacja).

Available Functions
bool installed();

Parametry

Funkcja ta nie przyjmuje żadnych parametrów.

wartości zwracanych

Zwraca wartość bool bool wskazującą, czy silnik lub grupa silników jest podłączona.

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

count#

count zwraca liczbę silników w grupie silników.

Available Functions
int32_t count();

Parametry

Funkcja ta nie przyjmuje żadnych parametrów.

wartości zwracanych

Zwraca wartość int32_t reprezentującą liczbę silników w grupie silników.