Motor und Motorgruppe#
Einführung#
Motors and motor groups control how parts of a robot move. A motor object controls one configured IQ Smart Motor, while a motor_group object controls multiple configured IQ Smart Motors together so they move in tandem. Motors and motor groups can be used to raise an arm, turn a claw, spin a wheel, or move another part of a build. Two motors can work together as a drivetrain to move and turn the whole robot.
Jeder Motor bzw. jede Motorgruppe wird im Fenster „Geräte“ konfiguriert. Je nach Build können die Namen der Motoren und Motorgruppen variieren. Auf dieser Seite werden Motor1 und „ MotorGroup1 als Beispielnamen verwendet. Ersetzen Sie diese bei Bedarf durch Ihre eigenen Namen.
Standardmäßig dreht sich ein Motor bei den Einstellungen forward (gegen den Uhrzeigersinn), bei reverse im Uhrzeigersinn). Wird der Motor auf Rückwärtslauf eingestellt, werden diese Drehrichtungen vertauscht.
Motor#
Class Constructors#
1 — Erstellt ein
motorObjekt für den IQ Smart Motor, der an den angegebenen Smart Port angeschlossen ist. Der Motor verwendet automatisch die erkannte internegearSetting.motor( int32_t index );
2 — Erzeugt ein
motorObjekt am angegebenen Smart Port und kehrt optional dessen Drehrichtung um. Der Motor verwendet automatisch die erkannte internegearSetting.motor( int32_t index, bool reverse );
3 — Erstellt ein
motorObjekt am angegebenen Smart Port mit der angegebenengearSetting.motor( int32_t index, gearSetting gears );
4 — Erzeugt ein
motorObjekt am angegebenen Smart Port mit der angegebenengearSettingund optional umgekehrter Richtung.motor( int32_t index, gearSetting gears, bool reverse );
Class Destructor#
Zerstört das Objekt motor und gibt zugehörige Ressourcen frei.
~motor();
Parameters#
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Der Smart Port, an den der Motor angeschlossen ist, wird als |
|
|
Legt fest, ob die Drehrichtung des Motors umgekehrt wird:
|
|
|
Gibt das interne Übersetzungsverhältnis des Getriebes an.
|
Notes#
Die Gangeinstellung sollte mit der im Motor installierten Kartusche übereinstimmen.
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 Group#
Class Constructors#
motor_group( motor &m1, Args&... m2 );
Class Destructor#
Zerstört das Objekt motor_group und gibt die zugehörigen Ressourcen frei.
~motor_group();
Parameters#
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Der erste Motor, der der Gruppe hinzugefügt wurde. |
|
|
Der Gruppe wurden weitere Motoren hinzugefügt. Eine Motorgruppe darf maximal vier Motoren enthalten. |
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);
Mitgliedsfunktionen#
Es gibt viele Möglichkeiten, Motoren und Motorgruppen zu codieren. Nachfolgend finden Sie eine Liste aller Memberfunktionen von motor und motor_group:
Aktionen – Motoren und Motorgruppen anhalten und drehen.
spin— Dreht einen Motor oder eine Motorgruppe unendlich lange vorwärts oder rückwärts.spinFor— Lässt einen Motor oder eine Motorgruppe über eine bestimmte Distanz oder Zeitspanne rotieren.spinToPosition— Dreht einen Motor oder eine Motorgruppe in eine bestimmte Position.stop— Stoppt einen Motor oder eine Motorgruppe am Drehen.
Mutatoren – Einstellungen für Motoren und Motorgruppen anpassen.
setVelocity— Weist einen Motor oder eine Motorgruppe an, wie schnell er sich drehen soll.setMaxTorque— Legt fest, wie stark ein Motor oder eine Motorgruppe beim Drehen drücken darf.setPosition— Ändert die aktuelle Position des Motors oder der Motorgruppe auf einen neuen Wert.setStopping— Legt fest, wie ein Motor oder eine Motorgruppe zum Stillstand kommt: durch Bremsen, Auslaufen oder Halten.setTimeout— Legt fest, wie lange ein Motor oder eine Motorgruppe versucht, eine Bewegung abzuschließen.
Getter – Motor- und Motorgruppenstatus prüfen.
isDone— Gibt als booleschen Wert zurück, ob der Motor oder die Motorgruppe die Bewegung beendet hat.isSpinning— Gibt als booleschen Wert zurück, ob sich der Motor oder die Motorgruppe dreht.position— Gibt die aktuelle Position des Motors oder der Motorgruppe zurück.velocity— Gibt zurück, wie schnell sich der Motor oder die Motorgruppe dreht.current— Gibt zurück, wie viel elektrischer Strom der Motor oder die Motorgruppe verbraucht.power— Gibt zurück, wie viel Leistung der Motor oder die Motorgruppe verbraucht.torque— Gibt zurück, wie viel Drehmoment der Motor oder die Motorgruppe verwendet.efficiency— Gibt zurück, wie effizient der Motor oder die Motorgruppe die Leistung nutzt.temperature— Gibt die Temperatur des Motors oder der Motorgruppe zurück.voltage— Gibt die dem Motor oder der Motorgruppe zugeführte elektrische Spannung zurück.direction— Gibt die Drehrichtung des Motors oder der Motorgruppe zurück.installed— Gibt zurück, ob der Motor oder die Motorgruppe mit dem Gehirn verbunden ist.count— Gibt die Anzahl der Motoren in einer Motorgruppe zurück.
Bevor Sie eine der Memberfunktionen motor oder motor_group aufrufen, muss eine Instanz erstellt werden, wie unten gezeigt:
/* 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);
Aktionen#
spin#
spin vorwärts oder rückwärts. Der Motor oder die Motorgruppe dreht sich so lange, bis eine andere Aktion ausgelöst wird, z. B. eine Drehung in eine andere Richtung oder ein Stopp.
1 — Dreht den Motor oder die Motorgruppe mit der aktuell eingestellten Motorgeschwindigkeit.
void spin( directionType dir );
2 — Dreht den Motor oder die Motorgruppe mit der angegebenen Geschwindigkeit.
void spin( directionType dir, double velocity, velocityUnits units );
Parameters3 — Dreht den Motor oder die Motorgruppe mit der angegebenen Spannung.
void spin( directionType dir, double voltage, voltageUnits units );
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Die Drehrichtung des Motors oder der Motorgruppe: |
|
|
Die Drehzahl, mit der von 0 % auf 100 % erhöht werden soll, wenn |
|
|
Die Einheit zur Darstellung der Geschwindigkeit:
|
|
|
Die Spannung, mit der sich die Person drehen soll. Ein negativer Wert bewirkt eine Drehung entgegengesetzt zur angegebenen Drehrichtung |
|
|
Die Einheit zur Darstellung der Spannung:
|
Diese Funktion gibt keinen Wert zurück.
NotesDiese Funktion wartet nicht, und das Projekt wird unmittelbar nach dem Aufruf weiter ausgeführt.
Der Motor bzw. die Motorgruppe dreht sich so lange weiter, bis
stopaufgerufen wird oder eine andere Bewegungsfunktion ausgeführt wird.Funktionen wie
isDoneundisSpinningsind aufspinnicht anwendbar, da es keine zielbasierte Bewegung verwendet (hat keinenrotationodertimeParameter).
// Spin forward, then stop
Motor1.spin(forward);
wait(1, seconds);
Motor1.stop();
spinFor#
spinFor lässt einen Motor oder eine Motorgruppe eine bestimmte Strecke oder Zeit lang rotieren. Die Rotationslänge bezieht sich auf die aktuelle Position des Motors oder der Motorgruppe. Standardmäßig wartet das Projekt, bis der Motor oder die Motorgruppe die Rotation abgeschlossen hat, bevor die nächste Codezeile ausgeführt wird.
1 — Dreht sich über eine bestimmte Distanz mit der im Funktionsaufruf angegebenen Geschwindigkeit.
bool spinFor( double rotation, rotationUnits units, double velocity, velocityUnits units_v, bool waitForCompletion = true );
2 — Akzeptiert einen Richtungsparameter und dreht sich über eine bestimmte Distanz mit der im Funktionsaufruf angegebenen Geschwindigkeit.
bool spinFor( directionType dir, double rotation, rotationUnits units, double velocity, velocityUnits units_v, bool waitForCompletion = true );
3 — Dreht sich über eine bestimmte Distanz mit der aktuell konfigurierten Motorgeschwindigkeit.
bool spinFor( double rotation, rotationUnits units, bool waitForCompletion = true );
4 — Akzeptiert einen Richtungsparameter und dreht sich über eine bestimmte Distanz mit der aktuell konfigurierten Motorgeschwindigkeit.
bool spinFor( directionType dir, double rotation, rotationUnits units, bool waitForCompletion = true );
5 — Dreht sich für eine bestimmte Zeit mit der im Funktionsaufruf angegebenen Geschwindigkeit.
bool spinFor( double time, timeUnits units, double velocity, velocityUnits units_v );
6 — Akzeptiert einen Richtungsparameter und dreht sich für eine bestimmte Zeitspanne mit der im Funktionsaufruf angegebenen Geschwindigkeit.
bool spinFor( directionType dir, double time, timeUnits units, double velocity, velocityUnits units_v );
7 — Dreht sich für eine bestimmte Zeit mit der aktuell konfigurierten Motorgeschwindigkeit.
bool spinFor( double time, timeUnits units );
Parameters8 — Akzeptiert einen Richtungsparameter und dreht sich für eine bestimmte Zeit mit der aktuell konfigurierten Motorgeschwindigkeit.
bool spinFor( directionType dir, double time, timeUnits units );
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Die Drehrichtung des Motors oder der Motorgruppe: |
|
|
Die Strecke, die der Motor oder die Motorgruppe zurücklegt. |
|
|
Die Rotationseinheit:
|
|
|
Die Zeitspanne, in der sich der Motor oder die Motorgruppe dreht. |
|
|
The unit of time:
|
|
|
Die Drehzahl, mit der von 0 % auf 100 % erhöht werden soll, wenn |
|
|
Die Einheit, die zur Darstellung der Geschwindigkeit verwendet wird:
|
|
|
|
Gibt einen booleschen Wert zurück, der angibt, ob der Motor oder die Motorgruppe den Zielwert erreicht hat.
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.
Die Ausführung einer anderen Motorbewegungsfunktion (z. B.
spinoderstop), währendspinForim Gange ist, unterbricht die aktuelle Bewegung.Da
spinForzielbasiert ist (verwendet einenrotationodertimeParameter), funktionieren Funktionen wieisDoneundisSpinningmitspinFor.
// 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 dreht einen Motor oder eine Motorgruppe in eine bestimmte Position.
Die Position eines Motors oder einer Motorgruppe gibt an, wie weit er sich gedreht hat, gemessen in degrees oder turns. Eine Umdrehung entspricht 360 Grad. Zu Beginn eines Projekts wird die Position des Motors oder der Motorgruppe auf 0 Grad eingestellt. Die Position des Motors oder der Motorgruppe kann auch mit der Funktion setPosition festgelegt werden.
Positionswerte sind absolut. Das bedeutet, dass die Drehrichtung von der aktuellen Position des Motors bzw. der Motorgruppe abhängt.
Wenn sich der Motor oder die Motorgruppe beispielsweise von 0 Grad auf eine Position von 720 Grad dreht, dreht er sich zwei Umdrehungen vorwärts. Dreht er sich anschließend auf eine Position von 360 Grad, dreht er sich eine Umdrehung rückwärts, da 360 kleiner als 720 ist.
Available Functions1 — Dreht sich mit der im Funktionsaufruf angegebenen Geschwindigkeit zu einer bestimmten Position.
bool spinToPosition( double rotation, rotationUnits units, double velocity, velocityUnits units_v, bool waitForCompletion = true );
Parameters2 — Dreht sich mit der aktuell konfigurierten Motorgeschwindigkeit in eine bestimmte Position.
bool spinToPosition( double rotation, rotationUnits units, bool waitForCompletion = true );
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Der Positionswert, auf den sich der Motor oder die Motorgruppe drehen wird. |
|
|
Die Rotationseinheit:
|
|
|
Die Drehzahl, mit der von 0 % auf 100 % erhöht werden soll, wenn |
|
|
Die Einheit, die zur Darstellung der Geschwindigkeit verwendet wird:
|
|
|
|
Gibt einen booleschen Wert zurück, der angibt, ob der Motor oder die Motorgruppe die angeforderte zielbasierte Bewegung gestartet hat.
true— The motor or motor group begins the requested target-based movement.false— The call fails orwaitForCompletionis set tofalse.
Die Ausführung einer anderen Motorbewegungsfunktion (z. B.
spinoderspinFor), währendspinToPositionnoch läuft, unterbricht die aktuelle Bewegung.Da
spinToPositionzielbasiert ist (verwendet einenrotationParameter), funktionieren Funktionen wieisDoneundisSpinningmitspinToPosition.
// Spin forward, then go to 90°
Motor1.spin(forward);
wait(1, seconds);
Motor1.spinToPosition(90, degrees);
stop#
stop stoppt einen Motor oder eine Motorgruppe am Drehen.
1 — Stoppt den Motor oder die Motorgruppe im aktuell konfigurierten Bremsmodus.
void stop();
Parameters2 — Stoppt den Motor oder die Motorgruppe mithilfe des im Funktionsaufruf angegebenen Bremsmodus.
void stop( brakeType mode );
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Optional. So stoppt der Motor bzw. die Motorgruppe:
|
Diese Funktion gibt keinen Wert zurück.
NotesDurch den Aufruf von
stopwird die Bewegung jedes laufenden Motors oder jeder Motorgruppe sofort gestoppt.Wenn kein Bremsmodus angegeben ist, verwendet der Motor bzw. die Motorgruppe den aktuell konfigurierten Bremsmodus.
stopunterbricht jede aktive zielbasierte Bewegung (wie z. B.spinForoderspinToPosition).
// Spin and coast to a stop
Motor1.setVelocity(100, percent);
Motor1.spin(forward);
wait(1, seconds);
Motor1.stop(coast);
Mutatoren#
setVelocity#
Der Parameter setVelocity gibt einem Motor oder einer Motorgruppe die Drehzahl vor. Ein höherer Prozentwert beschleunigt die Drehung, ein niedrigerer Prozentwert verlangsamt sie.
Jedes Projekt beginnt standardmäßig damit, dass jeder Motor bzw. jede Motorgruppe mit 50 % Drehzahl läuft.
Hinweis: Eine höhere Drehzahl lässt den Motor bzw. die Motorgruppe schneller rotieren, kann aber die Präzision verringern. Eine niedrigere Drehzahl lässt den Motor bzw. die Motorgruppe langsamer rotieren, kann aber die Präzision erhöhen.
Available Functionsvoid setVelocity(
double velocity,
velocityUnits units );
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Die Drehzahl, mit der von 0 % auf 100 % erhöht werden soll, wenn |
|
|
Die Einheit, die zur Darstellung der Geschwindigkeit verwendet wird:
|
Diese Funktion gibt keinen Wert zurück.
NotesJede nachfolgende Motorbewegungsfunktion (wie z. B.
spin,spinFor, oderspinToPosition), die keine Geschwindigkeit explizit angibt, verwendet diesen Wert.
// 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#
Das Drehmoment gibt an, wie stark ein Motor oder eine Motorengruppe beim Drehen drücken oder ziehen kann.
setMaxTorque legt das maximale Drehmoment fest, das ein Motor oder eine Motorgruppe verwenden darf.
Ein höherer Prozentsatz ermöglicht es dem Motor oder der Motorgruppe, stärker zu drücken, beispielsweise beim Anheben eines schweren Gegenstands. Ein niedrigerer Prozentsatz begrenzt die maximale Schubkraft des Motors oder der Motorgruppe. Dies kann den Roboter schützen, falls der Motor oder die Motorgruppe blockiert oder an ihre maximale Bewegungsgrenze stößt.
Jedes Projekt beginnt standardmäßig damit, dass das Drehmoment jedes Motors bzw. jeder Motorgruppe auf 50 % eingestellt ist.
Available Functions1 — Legt das maximale Drehmoment als Prozentsatz des Nenndrehmoments des Motors oder der Motorgruppe fest.
void setMaxTorque( double value, percentUnits units );
2 — Legt das maximale Drehmoment in physikalischen Drehmomenteinheiten fest.
void setMaxTorque( double value, torqueUnits units );
Parameters3 — Legt das maximale Drehmoment durch Begrenzung des Motorstroms fest.
void setMaxTorque( double value, currentUnits units );
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Das maximale Drehmoment, das der Motor oder die Motorgruppe nutzen kann. |
|
|
Drehmomentangabe in Prozent: |
|
|
Gibt das Drehmoment in physikalischen Einheiten an, z. B.:
|
|
|
Gibt das Drehmoment durch Begrenzung des Motorstroms an:
|
Diese Funktion gibt keinen Wert zurück.
NotesBei Verwendung
currentUnitswird das Drehmoment dadurch begrenzt, dass die Menge an elektrischem Strom, die der Motor oder die Motorgruppe aufnehmen kann, eingeschränkt wird.
setPosition#
Die Position eines Motors oder einer Motorgruppe gibt an, wie weit er sich gedreht hat, gemessen in degrees oder turns. Eine Umdrehung entspricht 360 Grad. setPosition wird die aktuelle Position des Motors oder der Motorgruppe auf einen neuen Wert geändert.
Wenn sich beispielsweise ein Motor oder eine Motorgruppe um 180 Grad gedreht hat, wird durch Einstellen der Position auf 0 Grad diese Position von 180 auf 0 Grad zurückgesetzt. Anschließend kann sich der Motor oder die Motorgruppe basierend auf diesem neuen Wert in verschiedene Positionen drehen.
Available Functionsvoid setPosition(
double value,
rotationUnits units );
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Der für den Motor oder die Motorgruppe einzustellende Positionswert. |
|
|
Positionseinheit:
|
Diese Funktion gibt keinen Wert zurück.
NotesNach dem Aufruf von
setPositionverwenden nachfolgende Aufrufe vonspinToPositiondie aktualisierte Position als Referenz.
setStopping#
setStopping legt fest, wie ein Motor oder eine Motorgruppe zum Stillstand kommt: durch Bremsen, Ausrollen oder Halten.
void setStopping(
brakeType mode );
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
So stoppt der Motor bzw. die Motorgruppe:
|
Diese Funktion gibt keinen Wert zurück.
NotesBei jedem nachfolgenden Aufruf von
stopohne Angabe eines Bremsmodus wird dieser Wert verwendet.
setTimeout#
setTimeout wird festgelegt, wie lange ein Motor oder eine Motorgruppe versucht, eine Bewegung abzuschließen. Gelingt dies nicht innerhalb dieser Zeit, wird der Versuch abgebrochen und die nächste Codezeile ausgeführt. Dadurch wird verhindert, dass der Motor oder die Motorgruppe bei einer Bewegung hängen bleibt.
void setTimeout(
int32_t time,
timeUnits units );
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Die Zeitspanne, in der der Motor oder die Motorgruppe versuchen kann, eine Bewegung abzuschließen. Dies muss eine positive ganze Zahl sein. |
|
|
Zeiteinheit:
|
Rückgabewerte
Diese Funktion gibt keinen Wert zurück.
NotesDer Motor- oder Motorgruppen-Timeout wird verwendet, um zu verhindern, dass Bewegungen, die ihre Zielposition nicht erreichen, die Ausführung anderer Befehle im Befehlsstapel unterbrechen.
Wenn der Motor oder die Motorgruppe ihre Zielposition nicht vor Ablauf des Zeitlimits erreicht, wird der Versuch abgebrochen und mit der nächsten Codezeile fortgefahren.
Das Timeout gilt für Funktionen, die einen Zielwert haben, wie z. B.
spinForundspinToPosition.
// Stop a long move after 1 second
Motor1.setTimeout(1, seconds);
Motor1.spinFor(forward, 2, turns);
Motor1.spinToPosition(0, degrees);
Getter#
isDone#
isDone gibt als booleschen Wert zurück, ob der Motor oder die Motorgruppe die Bewegung abgeschlossen hat. Dieser Wert kann verwendet werden, um den Zeitpunkt anderer Aktionen basierend auf der Bewegung des Motors oder der Motorgruppe zu steuern.
true— Der Motor bzw. die Motorgruppe hat ihre Bewegung beendet.false— Der Motor bzw. die Motorgruppe bewegt sich noch.
Diese Funktion arbeitet mit den folgenden Bewegungsfunktionen zusammen, die den Parameter waitForCompletion haben: spinFor und spinToPosition.
bool isDone();
Diese Funktion akzeptiert keine Parameter.
Return ValuesGibt als booleschen Wert zurück, ob der Motor oder die Motorgruppe die Bewegung beendet hat.
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 isSpinning gibt als booleschen Wert zurück, ob sich der Motor oder die Motorgruppe dreht. Dieser Wert kann verwendet werden, um das Timing anderer Aktionen basierend auf der Bewegung des Motors oder der Motorgruppe zu steuern.
true— Der Motor bzw. die Motorgruppe dreht sich.false— Der Motor oder die Motorgruppe dreht sich nicht.
Diese Funktion arbeitet mit Motion-Bewegungsfunktionen wie spin, spinFor und spinToPosition zusammen.
bool isSpinning();
Diese Funktion akzeptiert keine Parameter.
Return ValuesGibt als booleschen Wert zurück, ob sich der Motor oder die Motorgruppe dreht.
true— The motor or motor group is spinning.false— The motor or motor group is not spinning.
isSpinningfunktioniert mit Motion-Bewegungsfunktionen wiespin,spinForundspinToPosition.
// 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#
Die Position eines Motors oder einer Motorgruppe gibt an, wie weit er sich gedreht hat, gemessen in degrees oder turns. Eine Umdrehung entspricht 360 Grad. position gibt die aktuelle Position des Motors oder der Motorgruppe zurück.
Zu Beginn eines Projekts wird die Position des Motors bzw. der Motorgruppe auf 0 Grad eingestellt. Dreht sich der Motor bzw. die Motorgruppe eine Umdrehung vorwärts, beträgt die Position 360 Grad bzw. eine Umdrehung. Dreht sich der Motor bzw. die Motorgruppe in die andere Richtung, ist die Position negativ.
Available Functionsdouble position(
rotationUnits units );
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Die Einheit, um die Position des Motors oder der Motorgruppe wie folgt zurückzugeben:
|
Gibt einen Wert vom Typ double zurück, der die aktuelle Position des Motors oder der Motorgruppe in den angegebenen Einheiten darstellt.
Der Aufruf von
setPositionändert den Referenzpunkt für diesen Wert.Der zurückgegebene Wert spiegelt den aktuellen Messwert des Encoders wider und gibt nicht an, ob sich der Motor oder die Motorgruppe aktiv bewegt.
Wird diese Funktion auf eine
motor_groupaufgerufen, gibt sie die Position des ersten Motors in der Gruppe zurück.
// Spin, then show the final position
Motor1.spin(forward);
wait(1, seconds);
Motor1.stop();
Brain.Screen.print("Pos: %f", Motor1.position(degrees));
velocity#
velocity gibt an, wie schnell sich der Motor oder die Motorgruppe dreht.
Ein positiver Wert bedeutet, dass sich der Motor oder die Motorgruppe vorwärts dreht. Ein negativer Wert bedeutet, dass sie sich rückwärts dreht.
Available Functionsdouble velocity(
velocityUnits units );
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Die Einheit zur Darstellung der Geschwindigkeit:
|
Gibt einen Wert vom double zurück, der angibt, wie schnell sich der Motor oder die Motorgruppe in den angegebenen Einheiten dreht.
Notizen
Wird diese Funktion für eine
motor_groupaufgerufen, gibt sie die Geschwindigkeit des ersten Motors in der Gruppe zurück.
current#
Der Wert current gibt an, wie viel Strom der Motor oder die Motorgruppe verbraucht. Der Strom ist die elektrische Menge, die durch den Motor oder die Motorgruppe fließt. Die Angabe erfolgt in Ampere (A) und liegt zwischen 0,0 und 1,2 A.
Ein höherer Stromwert bedeutet, dass der Motor oder die Motorgruppe mehr Strom verbraucht. Dies kann vorkommen, wenn der Motor oder die Motorgruppe etwas Schweres anhebt, gegen ein Hindernis drückt oder versucht, sich aus einer Blockade zu bewegen.
Dies kann genutzt werden, um zu überprüfen, ob der Motor oder die Motorgruppe während einer Bewegung überlastet ist. Bleibt der Stromfluss hoch, kann der Motor sich erwärmen oder weniger effizient arbeiten.
Available Functions1 — Gibt den elektrischen Strom des Motors oder der Motorgruppe in Ampere zurück.
double current( currentUnits units = amp );
Parameters2 — Gibt den elektrischen Strom des Motors bzw. der Motorgruppe als Prozentsatz des maximalen Nennstroms zurück.
double current( percentUnits units );
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Die Einheit zur Darstellung der Stromstärke: |
|
|
Represents the current as a percentage of the motor’s maximum rated current: |
Gibt einen Wert vom double zurück, der angibt, wie viel Strom der Motor oder die Motorgruppe in den angegebenen Einheiten aufnimmt.
Notizen
Wird diese Funktion für eine
motor_groupaufgerufen, gibt sie den gesamten elektrischen Strom für alle Motoren in der Gruppe zurück.
power#
Die Funktion „Leistung power gibt an, wie viel Leistung der Motor oder die Motorgruppe in Watt verbraucht. Die Leistung zeigt an, wie schnell der Motor oder die Motorgruppe Energie verbraucht.
Ein höherer Leistungswert bedeutet, dass der Motor oder die Motorgruppe mehr Energie verbraucht. Dies kann vorkommen, wenn der Motor oder die Motorgruppe etwas Schweres anhebt, gegen ein Hindernis drückt oder versucht, sich aus einer Blockade zu bewegen.
Dies kann genutzt werden, um Bewegungen zu vergleichen oder zu überprüfen, ob der Motor oder die Motorgruppe überlastet ist. Bei anhaltend hoher Leistung kann der Motor wärmer werden oder Energie weniger effizient nutzen.
Available Functionsdouble power(
powerUnits units = watt );
Parameter
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Die Einheit zur Darstellung der Motorleistung:
|
Rückgabewerte
Gibt einen Wert vom Typ double zurück, der angibt, wie viel Leistung der Motor bzw. die Motorgruppe in Watt verbraucht.
Notizen
Wird diese Funktion für eine
motor_groupaufgerufen, gibt sie die elektrische Leistung des ersten Motors in der Gruppe zurück.
torque#
Das Drehmoment gibt an, wie stark ein Motor oder eine Motorengruppe beim Drehen verdreht, drückt oder zieht.
torque gibt an, wie viel Drehmoment der Motor oder die Motorgruppe verwendet.
Ein höherer Drehmomentwert bedeutet, dass der Motor oder die Motorgruppe stärker drückt oder zieht. Dies kann vorkommen, wenn der Motor oder die Motorgruppe etwas Schweres anhebt, gegen ein Hindernis drückt oder versucht, sich aus einer Blockade zu befreien.
Dies kann genutzt werden, um zu überprüfen, ob der Motor oder die Motorgruppe Schwierigkeiten hat, oder um zu vergleichen, wie viel Kraftaufwand für verschiedene Bewegungen erforderlich ist.
Um das Drehmoment eines Motors oder einer Motorgruppe einzustellen, verwenden Sie setMaxTorque.
double torque(
torqueUnits units = Nm );
Parameter
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Die Einheit zur Darstellung des Motordrehmoments:
|
Rückgabewerte
Gibt einen Wert vom double zurück, der angibt, wie viel Drehmoment der Motor oder die Motorgruppe in den angegebenen Einheiten verwendet.
Notizen
Wird diese Funktion für eine
motor_groupaufgerufen, gibt sie das mechanische Ausgangsdrehmoment des ersten Motors in der Gruppe zurück.
efficiency#
efficiency gibt an, wie effizient der Motor bzw. die Motorgruppe die Leistung nutzt, als Prozentsatz von 0 % bis 100 %.
Der Wirkungsgrad gibt an, wie viel der Leistung des Motors oder der Motorgruppe für die Bewegung genutzt wird. Ein höherer Wirkungsgrad bedeutet, dass mehr Leistung des Motors oder der Motorgruppe für die Bewegung verwendet wird. Ein niedriger Wirkungsgrad kann auftreten, wenn der Motor oder die Motorgruppe stark beansprucht wird, sich aber kaum bewegt, beispielsweise wenn sie blockiert ist oder gegen ein Hindernis stößt.
Dies kann genutzt werden, um Bewegungen zu vergleichen oder zu überprüfen, ob der Motor oder die Motorgruppe Energie verschwendet, anstatt sie für Bewegungen zu nutzen.
Available Functionsdouble efficiency(
percentUnits units = percent );
Parameter
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Die Einheit zur Darstellung des Motorwirkungsgrades:
|
Rückgabewerte
Gibt einen Wert vom Typ double zurück, der angibt, wie effizient der Motor bzw. die Motorgruppe die Leistung in Prozent nutzt.
Notizen
Wird diese Funktion für eine
motor_groupaufgerufen, gibt sie den Wirkungsgrad des ersten Motors in der Gruppe zurück.
temperature#
temperature gibt die Temperatur des Motors oder der Motorgruppe zurück.
Die Motortemperatur gibt an, wie warm der Motor bzw. die Motorgruppe ist. Eine höhere Temperatur bedeutet, dass sich der Motor bzw. die Motorgruppe während des Betriebs erwärmt. Um die volle Leistung zu erbringen, sollte die Motortemperatur unter 55°C
Wird der Motor oder die Motorgruppe zu heiß, reduziert sie zum Selbstschutz ihren Maximalstrom. Bei 70°Cschaltet sich der Motor ab, bis er abgekühlt ist.
Dies kann verwendet werden, um zu überprüfen, ob der Motor oder die Motorgruppe bei wiederholten Bewegungen, langen Läufen oder beim Drücken gegen ein Objekt zu heiß wird.
Available Functions1 — Gibt die Motor- oder Motorgruppentemperatur als Prozentsatz der maximalen Betriebstemperatur zurück.
double temperature( percentUnits units = percent );
2 — Gibt die Motor- oder Motorgruppentemperatur in physikalischen Temperatureinheiten zurück.
double temperature( temperatureUnits units );
Parameter
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Die Einheit zur Darstellung der Motor- oder Motorgruppentemperatur in Prozent:
|
|
|
Die Einheit zur Angabe der Motor- oder Motorgruppentemperatur in Grad:
|
Rückgabewerte
Gibt einen Wert vom Typ double zurück, der die Temperatur des Motors oder der Motorgruppe in den angegebenen Einheiten darstellt.
Notizen
Der Betriebstemperaturbereich für den Motor beträgt ungefähr
20°C(68°F) bis70°C(158°F).Wird diese Funktion für eine
motor_groupaufgerufen, gibt sie die Temperatur des ersten Motors in der Gruppe zurück.
voltage#
voltage gibt die dem Motor bzw. der Motorgruppe zugeführte elektrische Spannung zurück.
double voltage(
voltageUnits units = volt );
Parameter
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Die Einheit zur Darstellung der Spannung:
|
Rückgabewerte
Gibt einen Wert vom Typ double zurück, der die dem Motor oder der Motorgruppe zugeführte elektrische Spannung in den angegebenen Einheiten darstellt.
Notizen
Wird diese Funktion für eine
motor_groupaufgerufen, gibt sie die elektrische Spannung des ersten Motors in der Gruppe zurück.
direction#
direction gibt die Drehrichtung des Motors bzw. der Motorgruppe zurück.
directionType direction();
Parameter
Diese Funktion benötigt keine Parameter.
Rückgabewerte
Gibt einen Wert vom Typ directionType zurück, der die aktuelle Drehrichtung des Motors oder der Motorgruppe angibt:
forward— The motor or motor group is spinning forward.reverse— The motor or motor group is spinning in reverse.
installed#
installed gibt zurück, ob der Motor oder die Motorgruppe mit dem IQ (2. Generation) Gehirn verbunden ist.
bool installed();
Parameter
Diese Funktion benötigt keine Parameter.
Rückgabewerte
Gibt einen booleschen Wert von bool zurück, der angibt, ob der Motor oder die Motorgruppe angeschlossen ist.
true— The motor or motor group is connected.false— The motor or motor group is not connected.
count#
count gibt die Anzahl der Motoren in einer Motorgruppe zurück.
int32_t count();
Parameter
Diese Funktion benötigt keine Parameter.
Rückgabewerte
Gibt einen int32_t zurück, der die Anzahl der Motoren in der Motorgruppe darstellt.