Antriebsstrang#

Einführung#

Der VEX V5-Roboter nutzt einen Antriebsstrang zum Fahren und Drehen. Ein Antriebsstrang besteht aus Motoren und Rädern, die zusammenarbeiten, um den Roboter zu bewegen.

Ein konfigurierter Antriebsstrang kann einen Inertialsensor, GPS-Sensor, Gyrosensor oder keinen Sensor verwenden. Bei Verwendung eines Sensors unterstützt der Antriebsstrang den Roboter bei präzisen Bewegungen und Drehungen. Zu Beginn jedes Projekts kalibriert der Antriebsstrang den Sensor automatisch. Halten Sie den Roboter während der Kalibrierung ruhig, damit er sich korrekt bewegen und drehen kann.

Es gibt viele Möglichkeiten, den Antriebsstrang zu codieren. Auf dieser Seite wird drivetrain als Beispiel für den Antriebsstrangnamen verwendet. Ersetzen Sie diesen bei Bedarf durch Ihren eigenen, konfigurierten Namen.

Nachfolgend finden Sie eine Liste aller Antriebsmethoden:

Aktionen – Den Roboter bewegen und drehen.

  • drive — Bewegt den Roboter unendlich vorwärts oder rückwärts.

  • drive_for — Bewegt den Roboter vorwärts oder rückwärts über eine bestimmte Distanz.

  • turn — Dreht den Roboter endlos nach links oder rechts.

  • turn_for — Dreht den Roboter um eine bestimmte Anzahl von Grad nach links oder rechts.

  • turn_to_heading — Dreht den Roboter in eine bestimmte Richtung zwischen -359 und 359 Grad. Der Roboter wählt dabei den kürzesten Weg, um die Zielrichtung zu erreichen.

  • turn_to_rotation — Dreht den Roboter in eine bestimmte Rotation.

  • stop — Stoppt die Bewegung des Roboters.

  • calibrate_drivetrain – Kalibriert den mit dem Antriebsstrang konfigurierten Sensor.

Mutatoren – Einstellungen des Antriebsstrangs anpassen.

  • set_drive_velocity — Sagt dem Roboter, wie schnell er fahren soll.

  • set_turn_velocity — Sagt dem Roboter, wie schnell er sich drehen soll.

  • set_stopping — Gibt an, wie der Roboter seine Bewegung beendet: durch Bremsen, Ausrollen oder Anhalten.

  • set_timeout — Legt fest, wie viele Sekunden der Roboter versucht, eine Bewegung abzuschließen.

  • set_heading — Ändert die aktuelle Fahrtrichtung des Roboters in eine neue Fahrtrichtung.

  • set_rotation — Ändert die aktuelle Rotation des Roboters in eine neue Rotation.

  • set_turn_threshold – Gibt an, wie nahe der Roboter einem Zielwinkel kommen muss, bevor eine Drehung abgeschlossen ist.

  • set_turn_constant – Ändert, wie stark der Roboter seine Drehungen korrigiert.

  • set_turn_direction_reverse – Ändert, ob die Drehrichtung des intelligenten Antriebsstrangs umgekehrt wird.

Antriebsstrangstatus prüfen

  • is_done — Gibt als booleschen Wert zurück, ob der Roboter seine Bewegung beendet hat.

  • is_moving — Gibt als booleschen Wert zurück, ob sich der Roboter bewegt.

  • heading — Gibt die aktuelle Richtung des Roboters von 0 bis 359,99 Grad zurück.

  • rotation — Gibt die aktuelle Rotation des Roboters zurück.

  • velocity — Gibt die Geschwindigkeit des Roboters zurück.

  • current — Gibt zurück, wie viel elektrischer Strom der Antriebsstrang verbraucht.

  • power — Gibt zurück, wie schnell der Antriebsstrang Energie verbraucht.

  • torque — Gibt zurück, wie viel Drehmoment der Antriebsstrang verwendet.

  • efficiency — Gibt an, wie effizient der Antriebsstrang die Leistung nutzt.

  • temperature — Gibt zurück, wie warm der Antriebsstrang ist.

  • get_timeout – Gibt die aktuelle Timeout-Einstellung zurück.

Konstrukteure – Antriebsstrang manuell erstellen und konfigurieren.

Aktionen#

drive#

Der Antrieb drive und zwar endlos. Der Roboter bewegt sich so lange, bis er eine andere Aktion erhält, wie z. B. Drehen oder Anhalten. Die Drehzahl (U/min) oder die Geschwindigkeit (Grad pro Sekunde) wird durch das Übersetzungsverhältnis des Antriebsstrangs begrenzt.

Usage:
drivetrain.drive(direction, velocity, units)

Parameter

Beschreibung

direction

Die Bewegungsrichtung des Roboters: FORWARD oder REVERSE.

velocity

Optional. Die Fahrgeschwindigkeit kann von 0 % bis 100 % (bei Verwendung von PERCENT, von 0 bis 600 U/min (bei Verwendung RPM) oder von 0 bis 3600 Grad pro Sekunde (bei Verwendung VelocityUnits.DPSvariieren. Dies kann eine Ganzzahl integer oder eine Dezimalzahl (float) sein. Wird keine Geschwindigkeit angegeben, fährt der Roboter mit der aktuellen Fahrgeschwindigkeit.

units

Optional. Die Geschwindigkeitseinheit: RPM (Umdrehungen pro Minute, Standard), PERCENToder VelocityUnits.DPS (Grad pro Sekunde).

# Drive forward, then stop
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop()

# Drive forward at 360 degrees per second
drivetrain.drive(FORWARD, 360.0, VelocityUnits.DPS)

drive_for#

Der Befehl drive_for bewegt den Roboter eine bestimmte Strecke vorwärts oder rückwärts. Das Projekt wartet, bis der Roboter die Bewegung abgeschlossen hat, bevor die nächste Codezeile ausgeführt wird. Bei Drehzahlen (RPM) oder Grad pro Sekunde (Grad pro Sekunde) hängt der Grenzwert vom Übersetzungsverhältnis des Antriebsstrangs ab.

Usage:
drivetrain.drive_for(direction, distance, units, velocity, units_v, wait)

Parameter

Beschreibung

direction

Die Bewegungsrichtung des Roboters: FORWARD oder REVERSE.

distance

Die vom Roboter zurückgelegte Strecke. Dies kann eine ganze Zahl integer ) oder eine Dezimalzahl (float ) sein.

units

Optional. Die Entfernungseinheit: INCHES (Standard) oder MM.

velocity

Optional. Die Fahrgeschwindigkeit kann von 0 % bis 100 % (bei Verwendung von PERCENT, von 0 bis 600 U/min (bei Verwendung RPM) oder von 0 bis 3600 Grad pro Sekunde (bei Verwendung VelocityUnits.DPSvariieren. Dies kann eine Ganzzahl integer oder eine Dezimalzahl (float) sein. Wird keine Geschwindigkeit angegeben, fährt der Roboter mit der aktuellen Fahrgeschwindigkeit.

units_v

Optional. Die Geschwindigkeitseinheit: RPM (Umdrehungen pro Minute, Standard), PERCENToder VelocityUnits.DPS (Grad pro Sekunde).

wait

Optional. wait=True (Standard) Das Projekt wartet, bis der Roboter seine Bewegung abgeschlossen hat, bevor die nächste Codezeile ausgeführt wird. wait=False Die nächste Codezeile wird sofort ausgeführt.

# Drive forwards and backwards
drivetrain.drive_for(FORWARD, 5)
wait(1, SECONDS)
drivetrain.drive_for(REVERSE, 5)

turn#

turn dreht ihn endlos nach links oder rechts. Der Roboter dreht sich so lange, bis er eine andere Aktion erhält, z. B. Fahren oder Anhalten. Die Drehzahl (U/min) oder die Grad pro Sekunde (°/s) werden durch das Übersetzungsverhältnis des Antriebsstrangs begrenzt.

Usage:
drivetrain.turn(direction, velocity, units)

Parameter

Beschreibung

direction

Die Richtung, in die sich der Roboter dreht: LEFT oder RIGHT.

velocity

Optional. Die Drehgeschwindigkeit kann zwischen 0 % und 100 % (bei Verwendung von PERCENT, 0 und 600 U/min (bei Verwendung RPM) oder 0 und 3600 Grad pro Sekunde (bei Verwendung von VelocityUnits.DPSliegen. Dies kann eine Ganzzahl integer oder eine Dezimalzahl (float) sein. Wird keine Geschwindigkeit angegeben, dreht sich der Roboter mit der aktuellen Drehgeschwindigkeit.

units

Optional. Die Geschwindigkeitseinheit: RPM (Umdrehungen pro Minute, Standard), PERCENToder VelocityUnits.DPS (Grad pro Sekunde).

# Turn right, then stop
drivetrain.turn(RIGHT)
wait(2, SECONDS)
drivetrain.stop()

turn_for#

Der Befehl turn_for dreht den Roboter um eine bestimmte Gradzahl nach links oder rechts. Die Drehung erfolgt relativ zur aktuellen Position des Roboters. Das Projekt wartet, bis der Roboter die Drehung abgeschlossen hat, bevor die nächste Codezeile ausgeführt wird. Bei Drehzahlen (RPM) oder Grad pro Sekunde wird der Grenzwert durch das Übersetzungsverhältnis des Antriebsstrangs bestimmt.

Usage:
drivetrain.turn_for(direction, angle, units, velocity, units_v, wait)

Parameter

Beschreibung

direction

Die Richtung, in die sich der Roboter dreht: LEFT oder RIGHT.

angle

Die Anzahl der Grad, um die sich der Roboter dreht. Dies kann eine ganze Zahl integer ) oder eine Dezimalzahl (float ) sein.

units

Optional. Die Dreheinheit: DEGREES (Standard) oder TURNSEine Drehung entspricht 360 Grad.

velocity

Optional. Die Drehgeschwindigkeit kann zwischen 0 % und 100 % (bei Verwendung von PERCENT, 0 und 600 U/min (bei Verwendung RPM) oder 0 und 3600 Grad pro Sekunde (bei Verwendung von VelocityUnits.DPSliegen. Dies kann eine Ganzzahl integer oder eine Dezimalzahl (float) sein. Wird keine Geschwindigkeit angegeben, dreht sich der Roboter mit der aktuellen Drehgeschwindigkeit.

units_v

Optional. Die Geschwindigkeitseinheit: RPM (Umdrehungen pro Minute, Standard), PERCENToder VelocityUnits.DPS (Grad pro Sekunde).

wait

Optional. wait=True (Standard) Das Projekt wartet, bis der Roboter seine Drehung abgeschlossen hat, bevor die nächste Codezeile ausgeführt wird. wait=False Die nächste Codezeile wird sofort ausgeführt.

# Turn left, then turn around to the right
drivetrain.turn_for(LEFT, 90)
drivetrain.turn_for(RIGHT, 180)

turn_to_heading#

Die Ausrichtung des Roboters wird in Grad gemessen. Der Wert turn_to_heading bewirkt, dass der Roboter in eine bestimmte Richtung zwischen -359 und 359 Grad ausgerichtet wird. Dabei wählt er den kürzesten Weg, um die Zielausrichtung zu erreichen.

Die Ausgangsrichtung des Roboters beträgt 0 Grad.

Das Projekt wartet, bis der Roboter seine Drehung abgeschlossen hat, bevor die nächste Codezeile ausgeführt wird.

Hinweis: Diese Funktion ist nur verfügbar, wenn der Antriebsstrang im Gerätefenster mit einem Inertialsensor, GPS-Sensor oder Gyrosensor konfiguriert ist.

Usage:
drivetrain.turn_to_heading(angle, units, velocity, units_v, wait)

Parameter

Beschreibung

angle

Die Richtung, in die der Roboter zeigen soll, in Grad. Dies kann eine ganze Zahl integer ) oder eine Dezimalzahl (float) zwischen -359 und 359 sein.

units

Optional. Die Überschrifteneinheit: DEGREES (Standard).

velocity

Optional. Die Drehgeschwindigkeit kann zwischen 0 % und 100 % (bei Verwendung von PERCENT, 0 und 600 U/min (bei Verwendung RPM) oder 0 und 3600 Grad pro Sekunde (bei Verwendung von VelocityUnits.DPSliegen. Dies kann eine Ganzzahl integer oder eine Dezimalzahl (float) sein. Wird keine Geschwindigkeit angegeben, dreht sich der Roboter mit der aktuellen Drehgeschwindigkeit.

units_v

Optional. Die Geschwindigkeitseinheit: RPM (Umdrehungen pro Minute, Standard), PERCENToder VelocityUnits.DPS (Grad pro Sekunde).

wait

Optional. wait=True (Standard) Das Projekt wartet, bis der Roboter seine Drehung abgeschlossen hat, bevor die nächste Codezeile ausgeführt wird. wait=False Die nächste Codezeile wird sofort ausgeführt.

# Turn to face the cardinal directions
drivetrain.turn_to_heading(90, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_heading(180, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_heading(270, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_heading(0, DEGREES)

# Turn twice slowly
drivetrain.turn_to_heading(90, DEGREES, 20, PERCENT)
wait(1, SECONDS)
drivetrain.turn_to_heading(180, DEGREES, 20, PERCENT)

turn_to_rotation#

turn_to_rotation dreht den Roboter in eine bestimmte Rotation.

Die Rotation gibt an, um welchen Winkel sich der Roboter gedreht hat, gemessen in Grad. Zu Beginn eines Projekts ist der Rotationswert auf 0 Grad eingestellt. Die Rotation kann auch mit der Methode set_rotation festgelegt werden.

Die Rotationswerte sind absolut. Das bedeutet, die Drehrichtung hängt von der aktuellen Rotation des Roboters ab. Eine Rechtsdrehung erhöht die Rotation, eine Linksdrehung verringert sie.

Wenn der Roboter beispielsweise bei 0 Grad startet und Sie ihn um 720 Grad drehen, dreht er sich zweimal nach rechts. Drehen Sie ihn anschließend um 360 Grad, dreht er sich einmal nach links, da 360 kleiner als 720 ist.

Das Projekt wartet, bis der Roboter seine Drehung abgeschlossen hat, bevor die nächste Codezeile ausgeführt wird.

Hinweis: Diese Methode ist nur verfügbar, wenn der Antriebsstrang im Gerätefenster mit einem Inertialsensor, GPS-Sensor oder Gyrosensor konfiguriert ist.

Usage:
drivetrain.turn_to_rotation(angle, units, velocity, units_v, wait)

Parameter

Beschreibung

angle

Der Rotationswert in Grad oder Umdrehungen, um den sich der Roboter drehen wird. Dies kann eine ganze Zahl integer ) oder eine Dezimalzahl (float ) sein.

units

Optional. Die Rotationseinheit: DEGREES (Standard) oder TURNSEine Umdrehung entspricht 360 Grad.

velocity

Optional. Die Drehgeschwindigkeit kann zwischen 0 % und 100 % (bei Verwendung von PERCENT, 0 und 600 U/min (bei Verwendung RPM) oder 0 und 3600 Grad pro Sekunde (bei Verwendung von VelocityUnits.DPSliegen. Dies kann eine Ganzzahl integer oder eine Dezimalzahl (float) sein. Wird keine Geschwindigkeit angegeben, dreht sich der Roboter mit der aktuellen Drehgeschwindigkeit.

units_v

Optional. Die Geschwindigkeitseinheit: RPM (Umdrehungen pro Minute, Standard), PERCENToder VelocityUnits.DPS (Grad pro Sekunde).

wait

Optional. wait=True (Standard) Das Projekt wartet, bis der Roboter seine Drehung abgeschlossen hat, bevor die nächste Codezeile ausgeführt wird. wait=False Die nächste Codezeile wird sofort ausgeführt.

# Turn left, then spin in a circle clockwise and face right
drivetrain.turn_to_rotation(-90, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_rotation(450, DEGREES)

# Turn left then slowly spin in a circle clockwise
drivetrain.turn_to_rotation(-90, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_rotation(450, DEGREES, 20, PERCENT)

stop#

stop stoppt die Bewegung des Roboters.

Usage:
drivetrain.stop(mode)

Parameter

Beschreibung

mode

Optional. So stoppt der Roboter: BRAKE (Standard), BRAKEoder COAST

  • COAST – Stoppt sofort.
  • HOLD – Verlangsamt bis zum Stillstand.
  • HOLD – Stoppt sofort und hält die Radposition.

# Drive forward, then stop
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop()

calibrate_drivetrain#

calibrate_drivetrain ist eine integrierte Funktion, die den konfigurierten Inertialsensor, GPS-Sensor oder Gyrosensor des Antriebsstrangs kalibriert.

Die Kalibrierung hilft dem Sensor, Bewegungen korrekt zu messen. Halten Sie den Roboter während der Kalibrierung etwa 2 Sekunden lang ruhig. Bewegt sich der Roboter während der Kalibrierung, misst der Sensor die Bewegung möglicherweise nicht korrekt.

Das Projekt wartet, bis die Kalibrierung abgeschlossen ist, bevor die nächste Codezeile ausgeführt wird.

Hinweis: Diese Funktion ist nur verfügbar, wenn der Antriebsstrang im Gerätefenster mit einem Inertialsensor, GPS-Sensor oder Gyrosensor konfiguriert ist.

Usage:
calibrate_drivetrain()

Parameter

Beschreibung

Diese Funktion hat keine Parameter.

Mutatoren#

set_drive_velocity#

Der Wert set_drive_velocity gibt die Fahrgeschwindigkeit des Roboters vor. Ein höherer Prozentsatz beschleunigt den Roboter, ein niedrigerer verlangsamt ihn. Bei einer Drehzahl von 100 U/min oder Grad pro Sekunde wird der Grenzwert durch das Übersetzungsverhältnis des Antriebsstrangs bestimmt.

Jedes Projekt beginnt standardmäßig damit, dass der Roboter mit 50 % Geschwindigkeit fährt.

Hinweis: Eine höhere Geschwindigkeit lässt den Roboter schneller fahren, kann aber die Präzision verringern. Eine niedrigere Geschwindigkeit lässt den Roboter langsamer fahren, kann aber die Präzision erhöhen.

Usage:
drivetrain.set_drive_velocity(velocity, units)

Parameter

Beschreibung

velocity

Die Geschwindigkeit, mit der gefahren werden soll, von 0 % bis 100 % bei Verwendung PERCENT, von 0 bis 600 U/min bei Verwendung RPModer von 0 bis 3600 Grad pro Sekunde bei Verwendung VelocityUnits.DPSDies kann eine integer oder eine Dezimalzahl (float ) sein.

units

Optional. Die Geschwindigkeitseinheit: RPM (Umdrehungen pro Minute, Standard), PERCENToder VelocityUnits.DPS (Grad pro Sekunde).

# Drive forward at the default velocity
drivetrain.drive_for(FORWARD, 100, MM)
wait(1, SECONDS)

# Drive slower
drivetrain.set_drive_velocity(20, PERCENT)
drivetrain.drive_for(FORWARD, 100, MM)
wait(1, SECONDS)

# Drive faster
drivetrain.set_drive_velocity(100, PERCENT)
drivetrain.drive_for(FORWARD, 100, MM)
wait(1, SECONDS)

set_turn_velocity#

Der Wert set_turn_velocity gibt die Drehgeschwindigkeit des Roboters vor. Ein höherer Prozentsatz beschleunigt die Drehung, ein niedrigerer verlangsamt sie. Bei einer Drehzahl (RPM) oder Grad pro Sekunde wird der Grenzwert durch das Übersetzungsverhältnis des Antriebsstrangs bestimmt.

Jedes Projekt beginnt standardmäßig damit, dass sich der Roboter mit 50 % Geschwindigkeit dreht.

Hinweis: Eine höhere Geschwindigkeit führt zu schnelleren Drehungen des Roboters, kann aber die Präzision verringern. Eine niedrigere Geschwindigkeit verlangsamt die Drehung, kann aber die Präzision erhöhen.

Usage:
drivetrain.set_turn_velocity(velocity, units)

Parameter

Beschreibung

velocity

Die Drehzahl, mit der von 0 % bis 100 % bei Verwendung PERCENTgedreht werden soll, von 0 bis 600 U/min bei Verwendung RPModer von 0 bis 3600 Grad pro Sekunde bei Verwendung VelocityUnits.DPS. Dies kann eine integer oder eine Dezimalzahl (float ) sein.

units

Optional. Die Geschwindigkeitseinheit: RPM (Umdrehungen pro Minute, Standard), PERCENToder VelocityUnits.DPS (Grad pro Sekunde).

# Turn at the default velocity
drivetrain.turn_for(RIGHT, 100)
wait(1, SECONDS)

# Turn slower
drivetrain.set_turn_velocity(20, PERCENT)
drivetrain.turn_for(RIGHT, 100)
wait(1, SECONDS)

# Turn faster
drivetrain.set_turn_velocity(100, PERCENT)
drivetrain.turn_for(RIGHT, 100)
wait(1, SECONDS)

set_stopping#

set_stopping legt fest, wie der Roboter seine Bewegung beendet: durch Bremsen, Ausrollen oder Anhalten.

Usage:
drivetrain.set_stopping(mode)

Parameter

Beschreibung

mode

So stoppt der Roboter:

  • BRAKE – Stoppt sofort.
  • COAST – Verlangsamt bis zum Stillstand.
  • HOLD – Stoppt sofort und hält die Radposition.

Wird diese Methode nicht verwendet, nutzt der Roboter beim Anhalten die Tasten BRAKE.

set_timeout#

set_timeout wird festgelegt, wie viele Sekunden der Roboter versucht, eine Bewegung abzuschließen. Gelingt ihm dies nicht, bricht er den Versuch ab und fährt mit der nächsten Codezeile fort. Dadurch wird verhindert, dass der Roboter bei einer Bewegung hängen bleibt.

Usage:
drivetrain.set_timeout(value, units)

Parameter

Beschreibung

value

Die Zeitspanne, in der der Roboter versuchen kann, eine Bewegung abzuschließen. Dies kann eine positive ganze Zahl integer ) oder eine Dezimalzahl (float ) sein.

units

Optional. Die Zeiteinheit: MSEC (Millisekunden, Standard) oder SECONDS.

set_heading#

Die Ausrichtung des Roboters wird in Grad gemessen. Der Befehl set_heading ändert die aktuelle Ausrichtung des Roboters auf einen neuen Wert.

Wenn sich der Roboter beispielsweise nach rechts gedreht hat, wird durch Einstellen der Ausrichtung auf 0 Grad diese Position nach rechts zum neuen 0-Grad-Wert. Anschließend kann der Roboter basierend auf dieser neuen Ausrichtung andere Positionen anfahren.

Hinweis: Diese Methode ist nur verfügbar, wenn der Antriebsstrang im Gerätefenster mit einem Inertialsensor, GPS-Sensor oder Gyrosensor konfiguriert ist.

Usage:
drivetrain.set_heading(heading, units)

Parameter

Beschreibung

heading

Der für den Roboter einzustellende Kurswert in Grad oder Umdrehungen. Dies kann eine ganze Zahl integer ) oder eine Dezimalzahl (float ) sein.

units

Optional. Die Einheit für die Kursangabe: DEGREES (Standard) oder TURNSEine Drehung entspricht 360 Grad.

# Face the new 0 degrees
drivetrain.set_heading(90, DEGREES)
drivetrain.turn_to_heading(0, DEGREES)

set_rotation#

Die Rotation gibt an, um welchen Winkel sich der Roboter gedreht hat, gemessen in Grad. Zu Beginn eines Projekts ist der Rotationswert auf 0 Grad eingestellt. Der Befehl set_rotation ändert die aktuelle Rotation des Roboters auf einen neuen Wert.

Hat der Roboter beispielsweise zwei volle Drehungen nach rechts ausgeführt, beträgt sein Rotationswert 720 Grad. Durch Setzen der Rotation auf 0 Grad wird dieser Wert von 720 auf 0 Grad zurückgesetzt. Anschließend kann der Roboter Drehungen basierend auf diesem neuen Wert ausführen.

Hinweis: Diese Methode ist nur verfügbar, wenn der Antriebsstrang im Gerätefenster mit einem Inertialsensor, GPS-Sensor oder Gyrosensor konfiguriert ist.

Usage:
drivetrain.set_rotation(rotation, units)

Parameter

Beschreibung

rotation

Der für den Roboter einzustellende Rotationswert in Grad oder Umdrehungen. Dies kann eine ganze Zahl integer ) oder eine Dezimalzahl (float ) sein.

units

Optional. Die Rotationseinheit: DEGREES (Standard) oder TURNSEine Umdrehung entspricht 360 Grad.

# Spin counterclockwise two times
drivetrain.set_rotation(720, DEGREES)
drivetrain.turn_to_rotation(0, DEGREES)

set_turn_threshold#

set_turn_threshold legt fest, wie nahe der Roboter einem Zielwinkel kommen muss, bevor eine Drehung abgeschlossen ist.

Ein niedrigerer Schwellenwert ermöglicht präzisere Drehungen, allerdings kann der Roboter für die Drehung länger benötigen. Ein höherer Schwellenwert beschleunigt die Drehungen, die Präzision kann jedoch geringer sein.

Hinweis: Diese Methode ist nur verfügbar, wenn der Antriebsstrang im Gerätefenster mit einem Inertialsensor, GPS-Sensor oder Gyrosensor konfiguriert ist.

Usage:
drivetrain.set_turn_threshold(value)

Parameter

Beschreibung

value

Der Drehwinkelschwellenwert in Grad. Dies kann eine ganze Zahl integer ) oder eine Dezimalzahl (float) sein. Der Standardwert für den Drehwinkelschwellenwert beträgt 1 Grad.

set_turn_constant#

set_turn_constant ändert, wie stark der Roboter seine Drehungen korrigiert.

Ein höherer Wert bewirkt eine stärkere Korrektur der Kurven durch den Roboter. Ein niedrigerer Wert bewirkt eine sanftere Korrektur. Der Standardwert ist 1,0.

Hinweis: Diese Methode ist nur verfügbar, wenn der Antriebsstrang im Gerätefenster mit einem Inertialsensor, GPS-Sensor oder Gyrosensor konfiguriert ist.

Usage:
drivetrain.set_turn_constant(value)

Parameter

Beschreibung

value

Die Umdrehungskonstante. Dies kann eine Dezimalzahl (float) zwischen 0,1 und 4,0 sein. Der Standardwert ist 1,0.

set_turn_direction_reverse#

set_turn_direction_reverse ändert, ob die Drehrichtung des intelligenten Antriebsstrangs umgekehrt wird.

Dies kann verwendet werden, wenn sich der Antriebsstrang nach manueller Konfiguration im Code in die entgegengesetzte Richtung dreht als erwartet. Diese Methode funktioniert genauso wie das Setzen des Parameters reverse auf True beim Erstellen eines SmartDrive.

Hinweis: Diese Methode ist nur verfügbar, wenn der Antriebsstrang im Gerätefenster mit einem Inertialsensor, GPS-Sensor oder Gyrosensor konfiguriert ist.

Usage:
drivetrain.set_turn_direction_reverse(value)

Parameter

Beschreibung

value

Ob die Drehrichtung des intelligenten Antriebsstrangs umgekehrt werden soll: True kehrt die Drehrichtung um, und False verwendet die Standarddrehrichtung.

Getter#

is_done#

Die Funktion is_done gibt als booleschen Wert zurück, ob der Roboter seine Bewegung beendet hat is_done . Dieser Wert kann verwendet werden, um den Zeitpunkt anderer Verhaltensweisen basierend auf der Bewegung des Roboters zu steuern.

  • True — Der Roboter hat seine Bewegung beendet.

  • False — Der Roboter bewegt sich noch.

Diese Methode funktioniert zusammen mit den folgenden Drivetrain-Methoden, die den Parameter wait haben: drive_for, turn_for, turn_to_heading und turn_to_rotation.

Usage:
drivetrain.is_done()

Parameter

Beschreibung

Diese Methode hat keine Parameter.

is_moving#

Die Funktion is_moving gibt als booleschen Wert zurück, ob sich der Roboter bewegt is_moving . Dieser Wert kann verwendet werden, um den Zeitpunkt anderer Verhaltensweisen basierend auf der Bewegung des Roboters zu steuern.

  • True — Der Roboter bewegt sich.

  • False — Der Roboter bewegt sich nicht.

Nutzung:

drivetrain.is_moving()

Parameter

Beschreibung

Diese Methode hat keine Parameter.

heading#

Die Ausrichtung (in Grad) gibt die Blickrichtung des Roboters an. Der Befehl heading liefert die aktuelle Ausrichtung des Roboters zwischen 0 und 359,99 Grad.

Die Ausgangsrichtung des Roboters beträgt 0 Grad.

Hinweis: Diese Methode ist nur verfügbar, wenn der Antriebsstrang im Gerätefenster mit einem Inertialsensor, GPS-Sensor oder Gyrosensor konfiguriert ist.

Usage:
drivetrain.heading(units)

Parameter

Beschreibung

units

Optional. Die Einheit für die Rückkehrrichtung: DEGREES (Standard) oder TURNSEine Umdrehung entspricht 360 Grad.

# Display the heading after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print("Heading: ")
brain.screen.print(drivetrain.heading())

rotation#

Die Rotation gibt an, um wie viel sich der Roboter gedreht hat, gemessen in Grad. Zu Beginn eines Projekts ist der Rotationswert auf 0 Grad eingestellt. Die Eingabe rotation gibt die aktuelle Rotation des Roboters zurück.

Eine Rechtsdrehung erhöht die Rotation, eine Linksdrehung verringert sie. Beispielsweise ergibt eine zweifache Rechtsdrehung eine Rotation von 720 Grad.

Hinweis: Diese Methode ist nur verfügbar, wenn der Antriebsstrang im Gerätefenster mit einem Inertialsensor, GPS-Sensor oder Gyrosensor konfiguriert ist.

Usage:
drivetrain.rotation(units)

Parameter

Beschreibung

units

Optional. Die Einheit für die Rückdrehung: DEGREES (Standard) oder TURNS. Eine Umdrehung entspricht 360 Grad.

# Display the rotation after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print("Rotation: ")
brain.screen.print(drivetrain.rotation())

velocity#

velocity gibt an, wie schnell der Roboter fährt.

Die Geschwindigkeit kann als Prozentsatz von -100 % bis 100 %, in RPModer in VelocityUnits.DPS (Grad pro Sekunde) angegeben werden. Ein positiver Wert bedeutet, dass der Roboter vorwärts fährt. Ein negativer Wert bedeutet, dass der Roboter rückwärts fährt.

Usage:
drivetrain.velocity(units)

Parameter

Beschreibung

units

Optional. Die Geschwindigkeitseinheit: RPM (Umdrehungen pro Minute, Standard), PERCENToder VelocityUnits.DPS (Grad pro Sekunde).

current#

Der Wert current gibt an, wie viel Strom der Antriebsstrang verbraucht, gemessen in Ampere. Stromstärke ist die Menge an Elektrizität, die durch den Antriebsstrang fließt.

Ein höherer Stromwert bedeutet, dass der Antriebsstrang mehr Strom verbraucht. Dies kann vorkommen, wenn der Roboter gegen ein Hindernis drückt oder versucht, sich aus einer festgefahrenen Situation zu befreien.

Dies kann genutzt werden, um zu überprüfen, ob der Antriebsstrang während einer Bewegung überlastet ist. Bleibt der Stromfluss hoch, kann der Antriebsstrang sich erwärmen oder die Energie weniger effizient nutzen.

Usage:
drivetrain.current(units)

Parameter

Beschreibung

units

Optional. Die Einheit, in der der Strom zurückgegeben werden soll: CurrentUnits.AMP (Ampere, Standard).

power#

Die Leistungsangabe power gibt an, wie viel Leistung der Antriebsstrang in Watt verbraucht. Die Leistungsangabe zeigt, wie schnell der Antriebsstrang Energie verbraucht.

Ein höherer Leistungswert bedeutet, dass der Antriebsstrang schneller Energie verbraucht. Dies kann vorkommen, wenn der Roboter gegen ein Hindernis drückt oder versucht, sich aus einer festgefahrenen Situation zu befreien.

Dies kann genutzt werden, um Bewegungen zu vergleichen oder zu überprüfen, ob der Antriebsstrang überlastet ist. Bei anhaltend hoher Leistung kann der Antriebsstrang wärmer werden oder die Energie weniger effizient nutzen.

Usage:
drivetrain.power()

Parameter

Beschreibung

Diese Methode hat keine Parameter.

torque#

Das Drehmoment gibt an, wie stark der Antriebsstrang drücken oder ziehen kann, während sich die Räder drehen.

torque gibt an, wie viel Drehmoment der Antriebsstrang verwendet, gemessen in Newtonmeter (Nm) oder Inch-Pfund (InLb).

Ein höherer Drehmomentwert bedeutet, dass der Antriebsstrang stärker drückt oder zieht. Dies kann vorkommen, wenn der Roboter gegen ein Hindernis drückt oder versucht, sich aus einer festgefahrenen Situation zu befreien.

Dies kann genutzt werden, um zu überprüfen, ob der Antriebsstrang überlastet ist oder um zu vergleichen, wie viel Schubkraft für verschiedene Bewegungen benötigt wird.

Usage:
drivetrain.torque(units)

Parameter

Beschreibung

units

Optional. Die Einheit, in der das Drehmoment zurückgegeben werden soll: TorqueUnits.NM (Newtonmeter, Standard) oder TorqueUnits.INLB (Zoll-Pfund).

efficiency#

efficiency gibt an, wie effizient der Antriebsstrang die Leistung nutzt, als Prozentsatz von 0% bis 100%.

Der Wirkungsgrad gibt an, wie viel der Antriebsleistung für die Bewegung genutzt wird. Ein höherer Wirkungsgrad bedeutet, dass mehr Antriebsleistung für die Bewegung verwendet wird. Ein niedriger Wirkungsgrad kann auftreten, wenn der Antriebsstrang stark beansprucht wird, sich aber kaum bewegt, beispielsweise wenn der Roboter feststeckt oder gegen ein Hindernis stößt.

Dies kann genutzt werden, um Bewegungen zu vergleichen oder zu überprüfen, ob der Antriebsstrang Energie verschwendet, anstatt sie für die Bewegung zu nutzen.

Usage:
drivetrain.efficiency()

Parameter

Beschreibung

Diese Methode hat keine Parameter.

temperature#

temperature gibt die Durchschnittstemperatur des Antriebsstrangs in der ausgewählten Temperatureinheit zurück.

Die Temperaturanzeige gibt an, wie warm die Antriebsmotoren sind. Eine höhere Temperatur bedeutet, dass die Motoren während des Betriebs wärmer werden. Um ihre volle Leistung zu erbringen, sollten die Motoren unter 55 °C bleiben.

Wenn die Motoren zu heiß werden, reduzieren sie zum Selbstschutz ihren maximalen Strom. Bei 70 °C schalten sich die Motoren ab, bis sie abgekühlt sind.

Dies kann verwendet werden, um zu überprüfen, ob der Antriebsstrang bei wiederholten Bewegungen, langen Fahrten oder beim Drücken gegen ein Objekt zu heiß wird.

Usage:
drivetrain.temperature(units)

Parameter

Beschreibung

units

Optional. Die Einheit, in der die Temperatur zurückgegeben werden soll: TemperatureUnits.CELSIUS (Standard) oder TemperatureUnits.FAHRENHEIT.

get_timeout#

get_timeout gibt das aktuell eingestellte timeout in Millisekunden zurück.

Usage:
drivetrain.get_timeout()

Parameter

Beschreibung

Diese Methode hat keine Parameter.

Konstruktoren#

Konstruktoren werden verwendet, um manuell DriveTrain und SmartDrive Objekte zu erstellen, die für die Konfiguration eines Antriebsstrangs außerhalb von VEXcode erforderlich sind.

Vor dem Erstellen eines Antriebsstrangs müssen mindestens zwei Motor- oder MotorGroup-Objekte erstellt werden.

DriveTrain#

DriveTrain erzeugt einen Antriebsstrang ohne einen Inertialsensor, GPS-Sensor oder Gyrosensor.

Usage:
DriveTrain(lm, rm, wheelTravel, trackWidth, wheelBase, units, externalGearRatio)

Parameter

Beschreibung

lm

Der linke Motor oder Motorgruppe.

rm

Der rechte Motor oder Motorgruppe.

wheelTravel

Optional. Der Umfang der Antriebsräder. Standardwert: 300 Millimeter.

trackWidth

Optional. Der Abstand zwischen dem linken und rechten Rad. Standardmäßig beträgt er 320 Millimeter.

wheelBase

Optional. Der Abstand zwischen Vorder- und Hinterrad. Standardmäßig beträgt er 320 Millimeter.

units

Optional. Die Einheit für wheelTravel, trackWidthund wheelBase: MM (Millimeter, Standard), INCHESoder DistanceUnits.CM (Zentimeter).

externalGearRatio

Optional. Das Übersetzungsverhältnis zur Anpassung der Antriebsdistanzen, falls Zahnräder verwendet werden. Mögliche Werte: integer Zahl) oder Dezimalzahl (float). Standardwert: 1,0.

# Create the Motors
left_motor = Motor(Ports.PORT1, GearSetting.RATIO_18_1, False)
right_motor = Motor(Ports.PORT2, GearSetting.RATIO_18_1, True)

# Create a drivetrain with default values
drivetrain = DriveTrain(left_motor, right_motor)

# Create the motors
left_motor = Motor(Ports.PORT1, GearSetting.RATIO_18_1, False)
right_motor = Motor(Ports.PORT2, GearSetting.RATIO_18_1, True)

"""
Create a drivetrain with the following values:
- wheelTravel = 319.19
- trackWidth = 295
- wheelBase = 40
- units = MM (Millimeters)
- externalGearRatio - 1
"""
drivetrain = DriveTrain(left_motor, right_motor, 319.19, 295, 40, MM, 1)

SmartDrive#

SmartDrive erstellt einen Antriebsstrang, der mit einem Inertialsensor, GPS-Sensor oder Gyrosensor konfiguriert ist.

Usage:
SmartDrive(lm, rm, g, wheelTravel, trackWidth, wheelBase, units, externalGearRatio)

Parameter

Beschreibung

lm

Der linke Motor oder Motorgruppe.

rm

Der rechte Motor oder Motorgruppe.

g

Der vom Antriebsstrang verwendete Inertialsensor, GPS-Sensor oder Gyrosensor.

wheelTravel

Optional. Der Umfang der Antriebsräder. Standardwert: 300 Millimeter.

trackWidth

Optional. Der Abstand zwischen dem linken und rechten Rad. Standardmäßig beträgt er 320 Millimeter.

wheelBase

Optional. Der Abstand zwischen Vorder- und Hinterrad. Standardmäßig beträgt er 320 Millimeter.

units

Optional. Die Einheit für wheelTravel, trackWidthund wheelBase: MM (Millimeter, Standard), INCHESoder DistanceUnits.CM (Zentimeter).

externalGearRatio

Optional. Das Übersetzungsverhältnis zur Anpassung der Antriebsdistanzen, falls Zahnräder verwendet werden. Mögliche Werte: integer Zahl) oder Dezimalzahl (float). Standardwert: 1,0.

# Create the Motors
left_motor = Motor(Ports.PORT1, GearSetting.RATIO_18_1, False)
right_motor = Motor(Ports.PORT2, GearSetting.RATIO_18_1, True)

# Create a Gyro Sensor in Port A
gyro_a = Gyro(brain.three_wire_port.a)


# Create a drivetrain with default values
drivetrain = SmartDrive(left_motor, right_motor, gyro_a)

# Create the Motors
left_motor = Motor(Ports.PORT1, GearSetting.RATIO_18_1, False)
right_motor = Motor(Ports.PORT2, GearSetting.RATIO_18_1, True)

# Create a Gyro Sensor in Port A
gyro_a = Gyro(brain.three_wire_port.a)

"""
Create a drivetrain with the following values:
- wheelTravel = 319.19
- trackWidth = 295
- wheelBase = 40
- units = MM (Millimeters)
- externalGearRatio - 1
"""
drivetrain = SmartDrive(left_motor, right_motor, gyro_a, 319.19, 295, 40, MM, 1)