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.
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
motordla inteligentnego silnika IQ podłączonego do określonego portu inteligentnego. Silnik automatycznie używa wykrytego wewnętrznego ustawienia przekładnigearSetting.motor( int32_t index );
2 — Tworzy obiekt silnika
motorna określonym porcie inteligentnym i opcjonalnie zmienia jego kierunek. Silnik automatycznie używa wykrytego wewnętrznego ustawienia przekładnigearSetting.motor( int32_t index, bool reverse );
3 — Tworzy obiekt silnika
motorna określonym porcie inteligentnym z określonym ustawieniem przekładnigearSetting.motor( int32_t index, gearSetting gears );
4 — Tworzy obiekt silnika
motorna określonym porcie inteligentnym z określonym ustawieniem przekładnigearSettingi 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 |
|---|---|---|
|
|
Inteligentny port, do którego podłączony jest silnik, zapisany jako |
|
|
Ustawia, czy kierunek wirowania silnika jest odwrócony:
|
|
|
Określa wewnętrzny współczynnik przekładni zębatej.
|
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 |
|---|---|---|
|
|
Pierwszy silnik dodany do grupy. |
|
|
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.zainstalowano
installed— 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.
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 );
Parameters3 — Obraca silnik lub grupę silników przy użyciu określonego napięcia.
void spin( directionType dir, double voltage, voltageUnits units );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Kierunek obrotu silnika lub grupy silników: |
|
|
Prędkość wirowania od 0% do 100% przy użyciu |
|
|
Jednostka używana do reprezentowania prędkości:
|
|
|
Napięcie, z którym należy wirować. Wartość ujemna wiruje przeciwnie do podanego kierunku |
|
|
Jednostka używana do reprezentowania napięcia:
|
Ta funkcja nie zwraca wartości.
NotesFunkcja 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
stoplub wykonania innej funkcji ruchu.Funkcje takie jak
isDoneiisSpinningnie są stosowane dospin, ponieważ nie wykorzystuje on ruchu opartego na celu (nie ma parametrurotationlubtime).
// 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.
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 );
Parameters8 — 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 );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Kierunek obrotu silnika lub grupy silników: |
|
|
Odległość, na jaką obraca się silnik lub grupa silników. |
|
|
Jednostka obrotu:
|
|
|
Czas trwania obrotu silnika lub grupy silników. |
|
|
Jednostka czasu:
|
|
|
Prędkość wirowania od 0% do 100% przy użyciu |
|
|
Jednostka używana do reprezentowania prędkości
|
|
|
|
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 orwaitForCompletionis set tofalse.
Wykonanie innej funkcji ruchu silnika (takiej jak
spinlubstop) podczas trwania funkcjispinForspowoduje przerwanie bieżącego ruchu.Ponieważ spinFor
spinForjest oparty na celu (używa parametru obrotuspinForlubrotation), funkcje takie jakisDoneiisSpinningdziałają z spinFortime.
// 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 Functions1 — 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 );
Parameters2 — 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 );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Wartość pozycji, do której będzie się obracał silnik lub grupa silników. |
|
|
Jednostka obrotu:
|
|
|
Prędkość wirowania od 0% do 100% przy użyciu |
|
|
Jednostka używana do reprezentowania prędkości
|
|
|
|
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 orwaitForCompletionis set tofalse.
Wykonanie innej funkcji ruchu silnika (takiej jak
spinlubspinFor) podczas trwania funkcjispinToPositionspowoduje przerwanie bieżącego ruchu.Ponieważ
spinToPositionjest oparte na celu (używa parametru obroturotation), funkcje takie jakisDoneiisSpinningdziałają zspinToPosition.
// 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.
1 — Zatrzymuje silnik lub grupę silników za pomocą aktualnie skonfigurowanego trybu hamowania.
void stop();
Parameters2 — Zatrzymuje silnik lub grupę silników przy użyciu trybu hamowania podanego w wywołaniu funkcji.
void stop( brakeType mode );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Opcjonalnie. Jak silnik lub grupa silników zatrzyma się:
|
Ta funkcja nie zwraca wartości.
NotesWybranie polecenia
stoppowoduje natychmiastowe zatrzymanie bieżącego ruchu silnika lub grupy silników.Jeżeli nie określono trybu hamowania, silnik lub grupa silników używa aktualnie skonfigurowanego trybu hamowania.
stopprzerywa każdy aktywny ruch oparty na celu (taki jakspinForlubspinToPosition).
// 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 Functionsvoid setVelocity(
double velocity,
velocityUnits units );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Prędkość wirowania od 0% do 100% przy użyciu |
|
|
Jednostka używana do reprezentowania prędkości
|
Ta funkcja nie zwraca wartości.
NotesKażda kolejna funkcja ruchu silnika (taka jak
spin,spinForlubspinToPosition), która nie określa jawnie prędkości, będzie używać tej wartości.
// 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 Functions1 — 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 );
Parameters3 — Ustawia maksymalny moment obrotowy poprzez ograniczenie prądu silnika.
void setMaxTorque( double value, currentUnits units );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Maksymalny moment obrotowy, jaki może wykorzystać silnik lub grupa silników. |
|
|
Określa moment obrotowy jako procent: |
|
|
Określa moment obrotowy w jednostkach fizycznych, takich jak:
|
|
|
Określa moment obrotowy poprzez ograniczenie prądu silnika:
|
Ta funkcja nie zwraca wartości.
NotesW 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 Functionsvoid setPosition(
double value,
rotationUnits units );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Wartość pozycji, którą należy ustawić dla silnika lub grupy silników. |
|
|
Jednostka położenia:
|
Ta funkcja nie zwraca wartości.
NotesPo wywołaniu
setPositionkolejne wywołaniaspinToPositionbę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.
void setStopping(
brakeType mode );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Jak silnik lub grupa silników zatrzyma się:
|
Ta funkcja nie zwraca wartości.
NotesKażde kolejne wywołanie
stopbez 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.
void setTimeout(
int32_t time,
timeUnits units );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Czas, w którym silnik lub grupa silników może próbować zakończyć ruch. Musi to być dodatnia liczba całkowita. |
|
|
Jednostka czasu:
|
wartości zwracanych
Ta funkcja nie zwraca wartości.
NotesLimit 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
spinForispinToPosition.
// 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.
bool isDone();
Ta funkcja nie przyjmuje żadnych parametrów.
Return ValuesZwraca 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.
isDoneworks together with the following Motion functions that have thewaitForCompletionparameter:spinForandspinToPosition.
// 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.
bool isSpinning();
Ta funkcja nie przyjmuje żadnych parametrów.
Return ValuesZwraca 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.
isSpinningwspółpracuje z funkcjami ruchu Motion, takimi jakspin,spinForispinToPosition.
// 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 Functionsdouble position(
rotationUnits units );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Jednostka przywracająca położenie silnika lub grupy silników w zakresie:
|
Zwraca wartość double co oznacza bieżącą pozycję silnika lub grupy silników w określonych jednostkach.
Wywołanie
setPositionzmienia 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.
// 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 Functionsdouble velocity(
velocityUnits units );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Jednostka używana do reprezentowania prędkości:
|
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 Functions1 — Zwraca natężenie prądu elektrycznego silnika lub grupy silników w amperach.
double current( currentUnits units = amp );
Parameters2 — Zwraca prąd elektryczny silnika lub grupy silników jako procent maksymalnego prądu znamionowego.
double current( percentUnits units );
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Jednostka używana do reprezentowania prądu: |
|
|
Reprezentuje prąd jako procent maksymalnego prądu znamionowego silnika: |
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 Functionsdouble power(
powerUnits units = watt );
Parametry
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Jednostka używana do przedstawienia mocy silnika:
|
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.
double torque(
torqueUnits units = Nm );
Parametry
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Jednostka używana do przedstawienia momentu obrotowego silnika:
|
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 Functionsdouble efficiency(
percentUnits units = percent );
Parametry
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Jednostka używana do reprezentowania sprawności silnika:
|
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 Functions1 — 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 |
|---|---|---|
|
|
Jednostka używana do przedstawiania temperatury silnika lub grupy silników jako procent:
|
|
|
Jednostka używana do reprezentowania temperatury silnika lub grupy silników w stopniach:
|
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) do70°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.
double voltage(
voltageUnits units = volt );
Parametry
Parametr |
Typ |
Opis |
|---|---|---|
|
|
Jednostka reprezentująca napięcie:
|
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.
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).
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.
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.