Drehsensor#

Einführung#

Der Rotationssensor misst die Drehung einer Welle. Er kann überall an einem Roboter eingesetzt werden, wo sich eine Welle dreht, selbst wenn diese Welle nicht direkt mit einem Motor verbunden ist.

Ein Motor verfügt über einen eingebauten Encoder, der seine eigene Rotation erfassen kann. Der Rotationssensor funktioniert wie ein externer Encoder, der die Rotation einer separaten Welle erfassen kann.

Der Rotationssensor erfasst Winkel, Position und Geschwindigkeit der Welle. Der Winkel gibt die absolute Position der Welle zwischen 0 und 359,99 Grad an. Er wird weder beim Projektstart noch beim Ausschalten des Roboters zurückgesetzt. Die Position erfasst die Drehung der Welle um mehrere Grad oder Umdrehungen vorwärts oder rückwärts während eines Projekts und kann bei Bedarf zurückgesetzt werden.

Der Rotationssensor ist mit 1/8-Zoll- und 1/4-Zoll-Standard-VEX-Wellen kompatibel.

Der VEX EXP Rotationssensor.

Diese Seite verwendet rotation_sensor als Beispielnamen für den Rotationssensor. Ersetzen Sie diesen bei Bedarf durch Ihren eigenen, konfigurierten Namen.

Nachfolgend finden Sie eine Liste der verfügbaren Methoden:

  • set_position — Setzt die aktuelle Position des Rotationssensors auf einen bestimmten Wert.

  • angle — Gibt den aktuellen Winkel der Welle von 0 bis 359,99 Grad zurück.

  • position — Gibt zurück, wie weit sich die Welle in Grad oder Umdrehungen gedreht hat.

  • velocity — Gibt zurück, wie schnell sich die Welle dreht.

  • reset_position — Setzt die aktuelle Position des Rotationssensors auf 0 zurück.

  • set_reversed — Legt fest, ob die Ausgabe des Rotationssensors umgekehrt wird.

  • changed — Registriert eine Funktion, die immer dann ausgeführt wird, wenn sich der Wert des Rotationssensors ändert.

Konstruktor – Manuelle Initialisierung eines Rotationssensors.

  • Rotation — Erzeugt einen Rotationssensor.

Position festlegen#

set_position setzt die aktuelle Position des Rotationssensors auf einen Wert.

Die Position gibt an, wie weit sich die Welle während eines Projekts gedreht hat. Durch Ändern der Position wird der aktuelle Positionswert angepasst, ohne die Welle zu bewegen.

Usage:
rotation_sensor.set_position(position, units)

Parameter

Beschreibung

position

Der Positionswert, der dem Rotationssensor zugewiesen werden soll. Dies kann eine ganze Zahl oder eine Dezimalzahl sein.

units

Optional. Die Positionseinheit: DEGREES (Standard) oder TURNS.

# Set the Rotation Sensor to 2.5 Turns
rotation_sensor.set_position(2.5, TURNS)

Winkel#

angle gibt den aktuellen Winkel der Welle als Gleitkommazahl zurück.

Der Winkel gibt die absolute Position der Welle innerhalb einer Umdrehung an, von 0 bis 359,99 Grad. Er wird weder beim Start eines Projekts noch beim Ausschalten des Roboters zurückgesetzt.

Usage:
rotation_sensor.angle(units)

Parameter

Beschreibung

units

Optional. Die Winkeleinheit: DEGREES (Standard) oder TURNS.

Position#

Die Position position wie weit sich die Welle gedreht hat.

Im Gegensatz zum Winkel kann die Position über 359,99 Grad hinausgehen oder unter 0 Grad fallen. Die Position erfasst, wie weit sich die Welle während eines Projekts vorwärts oder rückwärts dreht und kann bei Bedarf zurückgesetzt werden.

Usage:
rotation_sensor.position(units)

Parameter

Beschreibung

units

Optional. Die Positionseinheit: DEGREES (Standard) oder TURNS.

Geschwindigkeit#

velocity gibt an, wie schnell sich die Welle dreht.

Usage:
rotation_sensor.velocity(units)

Parameter

Beschreibung

units

Die Geschwindigkeitseinheit: VelocityUnits.RPM (Umdrehungen pro Minute) oder VelocityUnits.DPS (Grad pro Sekunde).

Reset-Position#

reset_position setzt die aktuelle Position des Rotationssensors auf 0 zurück.

Usage:
rotation_sensor.reset_position()

Parameter

Beschreibung

Diese Methode hat keine Parameter.

set_reversed#

set_reversed legt fest, ob die Ausgabe des Rotationssensors umgekehrt wird.

Bei Umkehrung werden positive Werte negativ und negative Werte positiv. Diese Methode funktioniert genauso wie das Setzen des Parameters reverse auf True beim Verwenden des Konstruktors Rotation .

Usage:
rotation_sensor.set_reversed(value)

Parameter

Beschreibung

value

Ob die Ausgabe des Rotationssensors umgekehrt werden soll: True oder False.

geändert#

changed registriert eine Funktion, die aufgerufen werden soll, sobald sich der Wert des Rotationssensors ändert.

Usage:
rotation_sensor.changed(callback, arg)

Parameter

Beschreibung

callback

Eine zuvor definierte Funktion, die ausgeführt wird, wenn sich der Wert des Rotationssensors ändert.

arg

Optional. Ein Tupel mit Argumenten, die an die Callback-Funktion übergeben werden sollen. Weitere Informationen finden Sie unter Verwendung von Funktionen mit Parametern.

def my_function():
  brain.screen.print("Rotated!")

# Call my_function whenever rotation_sensor's value changes
rotation_sensor.changed(my_function)

Konstruktor#

Konstruktoren werden verwendet, um manuell Rotation Objekte zu erstellen, beispielsweise bei der Konfiguration eines Rotationssensors außerhalb von VEXcode.

Rotation#

Rotation erzeugt ein Rotationssensorobjekt.

Usage:
Rotation(smartport)

Parameter

Beschreibung

smartport

Der Smart Port, an den der Rotationssensor angeschlossen ist, wird als Ports.PORTxgeschrieben, wobei x die Portnummer ist.

reverse

Optional. Gibt an, ob die Ausgabe des Rotationssensors umgekehrt werden soll: True = Falsch, False (Standard).

# Create an inverted Rotation Sensor in Port 10
rotation_sensor = Rotation(Ports.PORT10, True)