Drehsensor#
Einführung#
Die Klasse rotation dient zur Steuerung und zum Zugriff auf Daten eines EXP-Rotationssensors.
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.
Klassenkonstruktoren#
rotation(
int32_t index,
bool reverse = false );
Klassendestruktor#
Zerstört das Objekt mit der Rotation rotation und gibt die zugehörigen Ressourcen frei.
virtual ~rotation();
Parameter#
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Der Smart Port, an den der Rotationssensor angeschlossen ist, wird als |
|
|
Optional. Gibt an, ob die Ausgabe des Rotationssensors umgekehrt werden soll:
|
Beispiele#
// Create a Rotation Sensor instance in Port 1
rotation Rotation1 = rotation(PORT1);
Mitgliedsfunktionen#
Die Klasse rotation umfasst die folgenden Memberfunktionen:
setPosition— 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.
Bevor rotation Memberfunktionen aufgerufen werden können, muss eine rotation Instanz erstellt werden, wie unten gezeigt:
/* This constructor is required when using VS Code.
Rotation Sensor configuration is generated automatically
in VEXcode using the Device Menu. Replace the values
as needed. */
// Create a Rotation Sensor instance in Port 1
rotation Rotation1 = rotation(PORT1);
setPosition#
Setzt die aktuelle Position des Rotationssensors auf einen bestimmten 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.
Available Functionsvoid setPosition(
double value,
rotationUnits units );
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Der Positionswert, der dem Rotationssensor zugewiesen werden soll. Dies kann eine ganze Zahl oder eine Dezimalzahl sein. |
|
|
Positionseinheit:
|
Diese Funktion gibt keinen Wert zurück.
angle#
Gibt den aktuellen Winkel der Welle 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.
Available Functionsdouble angle( rotationUnits units = degrees );
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Optional. The angle unit:
|
Gibt einen Wert vom Typ double zurück, der den aktuellen Winkel der Welle in den angegebenen Einheiten darstellt.
// Get the current angle of the shaft
double angle = Rotation1.angle(degrees);
// Print the current angle of the shaft to the
// Brain's screen.
Brain.Screen.print(angle);
position#
Gibt zurück, 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.
Available Functionsdouble position( rotationUnits units );
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Positionseinheit:
|
Gibt einen Wert vom double zurück, der angibt, wie weit sich die Welle in den angegebenen Einheiten gedreht hat.
velocity#
Gibt an, wie schnell sich die Welle dreht.
Available Functionsdouble velocity( velocityUnits units );
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Die Geschwindigkeitseinheit:
|
Gibt einen Wert vom double zurück, der angibt, wie schnell sich die Welle in den angegebenen Einheiten dreht.