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.

Ein VEX IQ (2. Generation) Motor, dessen Vorwärtsrichtung durch ein Pluszeichen und dessen Drehrichtung durch einen Pfeil angezeigt wird, der anzeigt, dass er sich nach links bzw. gegen den Uhrzeigersinn dreht. Ein VEX IQ (2. Generation) Motor, bei dem die umgekehrte Drehrichtung durch ein Minuszeichen und einen Pfeil angezeigt wird, der angibt, dass er sich nach rechts bzw. im Uhrzeigersinn dreht.

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 motor Objekt für den IQ Smart Motor, der an den angegebenen Smart Port angeschlossen ist. Der Motor verwendet automatisch die erkannte interne gearSetting.

motor(
  int32_t index );

2 — Erzeugt ein motor Objekt am angegebenen Smart Port und kehrt optional dessen Drehrichtung um. Der Motor verwendet automatisch die erkannte interne gearSetting.

motor(
 int32_t index,
 bool    reverse );

3 — Erstellt ein motor Objekt am angegebenen Smart Port mit der angegebenen gearSetting.

motor(
 int32_t     index,
 gearSetting gears );

4 — Erzeugt ein motor Objekt am angegebenen Smart Port mit der angegebenen gearSetting und 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

index

int32_t

Der Smart Port, an den der Motor angeschlossen ist, wird als PORTxgeschrieben, wobei x die Portnummer ist (zum Beispiel PORT1).

reverse

bool

Legt fest, ob die Drehrichtung des Motors umgekehrt wird:

  • false (Standard) – Drehrichtung des Motors wird nicht umgekehrt.
  • true – Drehrichtung des Motors wird umgekehrt.

gears

gearSetting

Gibt das interne Übersetzungsverhältnis des Getriebes an.

  • ratio1_1 — Übersetzungsverhältnis 1:1
  • ratio2_1 — Übersetzungsverhältnis 2:
  • ratio3_1 — Übersetzungsverhältnis 3:1

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

m1

motor &

Der erste Motor, der der Gruppe hinzugefügt wurde.

m2

motor &

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.

Available Functions

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

3 — Dreht den Motor oder die Motorgruppe mit der angegebenen Spannung.

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

Parameters

Parameter

Typ

Beschreibung

dir

directionType

Die Drehrichtung des Motors oder der Motorgruppe: forward oder reverse.

velocity

double

Die Drehzahl, mit der von 0 % auf 100 % erhöht werden soll, wenn percent verwendet werden.

units

velocityUnits

Die Einheit zur Darstellung der Geschwindigkeit:

  • percent % pct
  • Urpm — Umdrehungen pro Minute
  • dps — Grad pro Sekunde

voltage

double

Die Spannung, mit der sich die Person drehen soll. Ein negativer Wert bewirkt eine Drehung entgegengesetzt zur angegebenen Drehrichtung dir.

units

voltageUnits

Die Einheit zur Darstellung der Spannung:

  • volt — Volt
  • voltageUnits::mV — Millivolt

Return Values

Diese Funktion gibt keinen Wert zurück.

Notes
  • Diese 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 stop aufgerufen wird oder eine andere Bewegungsfunktion ausgeführt wird.

  • Funktionen wie isDone und isSpinning sind auf spinnicht anwendbar, da es keine zielbasierte Bewegung verwendet (hat keinen rotation oder time Parameter).

Examples
// 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.

Available Functions

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

8 — Akzeptiert einen Richtungsparameter und dreht sich für eine bestimmte Zeit mit der aktuell konfigurierten Motorgeschwindigkeit.

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

Parameters

Parameter

Typ

Beschreibung

dir

directionType

Die Drehrichtung des Motors oder der Motorgruppe: forward oder reverse.

rotation

double

Die Strecke, die der Motor oder die Motorgruppe zurücklegt.

units

rotationUnits

Die Rotationseinheit:

  • deg / degrees — Grad
  • turns / rev — Umdrehungen

time

double

Die Zeitspanne, in der sich der Motor oder die Motorgruppe dreht.

units

timeUnits

The unit of time:

  • seconds / sec — seconds
  • msec — milliseconds

velocity

double

Die Drehzahl, mit der von 0 % auf 100 % erhöht werden soll, wenn percent verwendet werden.

units_v

velocityUnits

Die Einheit, die zur Darstellung der Geschwindigkeit verwendet wird: velocity:

  • percent / pct — Prozent
  • rpm — Umdrehungen pro Minute
  • dps — Grad pro Sekunde

waitForCompletion

bool

​

  • true (Standard) – Das Projekt wartet, bis der Motor oder die Motorgruppe ihre Drehung beendet hat, bevor die nächste Codezeile ausgeführt wird.
  • false – Die nächste Codezeile wird sofort ausgeführt.

Return Values

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 or waitForCompletion is set to false.
Notes
  • Die Ausführung einer anderen Motorbewegungsfunktion (z. B. spin oder stop), während spinFor im Gange ist, unterbricht die aktuelle Bewegung.

  • Da spinFor zielbasiert ist (verwendet einen rotation oder time Parameter), funktionieren Funktionen wie isDone und isSpinning mit spinFor.

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

spinToPosition#

spinToPosition 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 Functions

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

2 — Dreht sich mit der aktuell konfigurierten Motorgeschwindigkeit in eine bestimmte Position.

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

Parameters

Parameter

Typ

Beschreibung

rotation

double

Der Positionswert, auf den sich der Motor oder die Motorgruppe drehen wird.

units

rotationUnits

Die Rotationseinheit:

  • deg / degrees — Grad
  • turns / rev — Umdrehungen

velocity

double

Die Drehzahl, mit der von 0 % auf 100 % erhöht werden soll, wenn percent verwendet werden.

units_v

velocityUnits

Die Einheit, die zur Darstellung der Geschwindigkeit verwendet wird: velocity:

  • pct — Prozent
  • rpm — Umdrehungen pro Minute
  • dps — Grad pro Sekunde

waitForCompletion

bool

​

  • true (Standard) – Das Projekt wartet, bis der Motor oder die Motorgruppe ihre Drehung beendet hat, bevor die nächste Codezeile ausgeführt wird.
  • false – Die nächste Codezeile wird sofort ausgeführt.

Return Values

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 or waitForCompletion is set to false.
Notes
  • Die Ausführung einer anderen Motorbewegungsfunktion (z. B. spin oder spinFor), während spinToPosition noch läuft, unterbricht die aktuelle Bewegung.

  • Da spinToPosition zielbasiert ist (verwendet einen rotation Parameter), funktionieren Funktionen wie isDone und isSpinning mit spinToPosition.

Examples
// 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.

Available Functions

1 — Stoppt den Motor oder die Motorgruppe im aktuell konfigurierten Bremsmodus.

void stop();

2 — Stoppt den Motor oder die Motorgruppe mithilfe des im Funktionsaufruf angegebenen Bremsmodus.

void stop(
  brakeType mode );

Parameters

Parameter

Typ

Beschreibung

mode

brakeType

Optional. So stoppt der Motor bzw. die Motorgruppe:

  • coast – Verlangsamt bis zum Stillstand.
  • brake – Stoppt sofort.
  • hold – Stoppt sofort und hält die Position des Motors bzw. der Motorgruppe.

Return Values

Diese Funktion gibt keinen Wert zurück.

Notes
  • Durch den Aufruf von stop wird 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.

  • stop unterbricht jede aktive zielbasierte Bewegung (wie z. B. spinFor oder spinToPosition).

Examples
// 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 Functions
void setVelocity(
    double        velocity,
    velocityUnits units );

Parameters

Parameter

Typ

Beschreibung

velocity

double

Die Drehzahl, mit der von 0 % auf 100 % erhöht werden soll, wenn percent verwendet werden.

units

velocityUnits

Die Einheit, die zur Darstellung der Geschwindigkeit verwendet wird: velocity:

  • percent / pct — Prozent
  • rpm — Umdrehungen pro Minute
  • dps — Grad pro Sekunde

Return Values

Diese Funktion gibt keinen Wert zurück.

Notes
  • Jede nachfolgende Motorbewegungsfunktion (wie z. B. spin, spinFor, oder spinToPosition), die keine Geschwindigkeit explizit angibt, verwendet diesen Wert.

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#

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 Functions

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

3 — Legt das maximale Drehmoment durch Begrenzung des Motorstroms fest.

void setMaxTorque(
 double       value,
 currentUnits units );

Parameters

Parameter

Typ

Beschreibung

value

double

Das maximale Drehmoment, das der Motor oder die Motorgruppe nutzen kann.

units

percentUnits

Drehmomentangabe in Prozent: percent pct Prozent

units

torqueUnits

Gibt das Drehmoment in physikalischen Einheiten an, z. B.:

  • Nm — Newtonmeter
  • InLb — Inch-Pfund

units

currentUnits

Gibt das Drehmoment durch Begrenzung des Motorstroms an:

  • amp

Return Values

Diese Funktion gibt keinen Wert zurück.

Notes
  • Bei 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 Functions
void setPosition(
    double        value,
    rotationUnits units );

Parameters

Parameter

Typ

Beschreibung

value

double

Der für den Motor oder die Motorgruppe einzustellende Positionswert.

units

rotationUnits

Positionseinheit:

  • deg / degrees — Grad
  • turns / rev — Umdrehungen

Return Values

Diese Funktion gibt keinen Wert zurück.

Notes
  • Nach dem Aufruf von setPositionverwenden nachfolgende Aufrufe von spinToPosition die aktualisierte Position als Referenz.

setStopping#

setStopping legt fest, wie ein Motor oder eine Motorgruppe zum Stillstand kommt: durch Bremsen, Ausrollen oder Halten.

Available Functions
void setStopping(
  brakeType mode );

Parameters

Parameter

Typ

Beschreibung

mode

brakeType

So stoppt der Motor bzw. die Motorgruppe:

  • brake – Stoppt sofort.
  • coast – Verlangsamt sich bis zum Stillstand.
  • hold – Stoppt sofort und hält die Position des Motors bzw. der Motorgruppe.

Return Values

Diese Funktion gibt keinen Wert zurück.

Notes
  • Bei jedem nachfolgenden Aufruf von stop ohne 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.

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

Parameters

Parameter

Typ

Beschreibung

time

int32_t

Die Zeitspanne, in der der Motor oder die Motorgruppe versuchen kann, eine Bewegung abzuschließen. Dies muss eine positive ganze Zahl sein.

units

timeUnits

Zeiteinheit:

  • msec — Millisekunden
  • seconds / sec — Sekunden

Rückgabewerte

Diese Funktion gibt keinen Wert zurück.

Notes
  • Der 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. spinFor und spinToPosition.

Examples
// 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.

Available Functions
bool isDone();

Parameters

Diese Funktion akzeptiert keine Parameter.

Return Values

Gibt 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.
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 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.

Available Functions
bool isSpinning();

Parameters

Diese Funktion akzeptiert keine Parameter.

Return Values

Gibt 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.
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#

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 Functions
double position(
  rotationUnits units );

Parameters

Parameter

Typ

Beschreibung

units

rotationUnits

Die Einheit, um die Position des Motors oder der Motorgruppe wie folgt zurückzugeben:

  • deg / degrees — Grad
  • turns / rev — Umdrehungen

Return Values

Gibt einen Wert vom Typ double zurück, der die aktuelle Position des Motors oder der Motorgruppe in den angegebenen Einheiten darstellt.

Notes
  • 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.

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 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 Functions
double velocity(
    velocityUnits units );

Parameters

Parameter

Typ

Beschreibung

units

velocityUnits

Die Einheit zur Darstellung der Geschwindigkeit:

  • percent % pct
  • Urpm — Umdrehungen pro Minute
  • dps — Grad pro Sekunde

Return Values

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 Functions

1 — Gibt den elektrischen Strom des Motors oder der Motorgruppe in Ampere zurück.

double current(
  currentUnits units = amp );

2 — Gibt den elektrischen Strom des Motors bzw. der Motorgruppe als Prozentsatz des maximalen Nennstroms zurück.

double current(
  percentUnits units );

Parameters

Parameter

Typ

Beschreibung

units

currentUnits

Die Einheit zur Darstellung der Stromstärke:amp (Standard) — Ampere

units

percentUnits

Represents the current as a percentage of the motor’s maximum rated current:percent / pct — percent

Return Values

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 Functions
double power(
  powerUnits units = watt );

Parameter

Parameter

Typ

Beschreibung

units

powerUnits

Die Einheit zur Darstellung der Motorleistung:

  • watt (Standard) — Watt

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.

Available Functions
double torque(
  torqueUnits units = Nm );

Parameter

Parameter

Typ

Beschreibung

units

torqueUnits

Die Einheit zur Darstellung des Motordrehmoments:

  • Nm (Standard) — Newtonmeter
  • InLb — Inch-Pfund

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 Functions
double efficiency(
  percentUnits units = percent );

Parameter

Parameter

Typ

Beschreibung

units

percentUnits

Die Einheit zur Darstellung des Motorwirkungsgrades:

  • percent percentUnits::pct (Standard) — Prozent

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 Functions

1 — 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

units

percentUnits

Die Einheit zur Darstellung der Motor- oder Motorgruppentemperatur in Prozent:

  • percent percentUnits::pct (Standard) — Prozent

units

temperatureUnits

Die Einheit zur Angabe der Motor- oder Motorgruppentemperatur in Grad:

  • celsius — Grad Celsius
  • fahrenheit — Grad Fahrenheit

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) bis 70°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.

Available Functions
double voltage(
  voltageUnits units = volt );

Parameter

Parameter

Typ

Beschreibung

units

voltageUnits

Die Einheit zur Darstellung der Spannung:

  • volt (Standard)
  • voltageUnits::mV — Millivolt

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.

Available Functions
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.

Available Functions
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.

Available Functions
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.