Rotatiesensor#

Invoering#

De klasse rotation wordt gebruikt om gegevens van een EXP-rotatiesensor te beheren en te raadplegen.

De rotatiesensor meet de rotatie van een as. Hij kan overal op een robot worden gebruikt waar een as roteert, zelfs als die as niet direct met een motor is verbonden.

Een motor heeft een ingebouwde encoder die zijn eigen rotatie kan meten. De rotatiesensor werkt als een externe encoder die de rotatie van een aparte as kan meten.

De rotatiesensor kan de hoek, positie en snelheid van de as meten. De hoek is de absolute positie van de as tussen 0 en 359,99 graden. Deze waarde wordt niet gereset wanneer een project start of wanneer de robot wordt uitgeschakeld. De positie registreert hoeveel graden of omwentelingen de as tijdens een project voorwaarts of achterwaarts heeft gedraaid en kan indien nodig worden gereset.

De rotatiesensor is compatibel met standaard VEX-assen van 1/8 inch en 1/4 inch.

Klasseconstructors#

rotation(
    int32_t index,
    bool    reverse = false );

Klasse-destructor#

Vernietigt het object met rotatie rotation en geeft de bijbehorende resources vrij.

virtual ~rotation();

Parameters#

Parameter

Type

Beschrijving

index

int32_t

De slimme poort waarop de rotatiesensor is aangesloten, wordt weergegeven als PORTx, waarbij x het poortnummer is (bijvoorbeeld PORT1).

reverse

bool

Optioneel. Of de uitvoer van de rotatiesensor moet worden omgekeerd:

  • true — Keert de richting van de gerapporteerde hoek- en positiewaarden om.
  • false (standaard) — Rapporteert hoek- en positiewaarden in de standaardrichting.

Voorbeelden#

// Create a Rotation Sensor instance in Port 1
rotation Rotation1 = rotation(PORT1);

Lidfuncties#

De klasse rotation bevat de volgende lidfuncties:

  • setPosition — Stelt de huidige positie van de rotatiesensor in op een specifieke waarde.

  • angle — Geeft de huidige hoek van de as weer, van 0 tot 359,99 graden.

  • position — Geeft aan hoeveel de as is gedraaid in graden of omwentelingen.

  • velocity — Geeft aan hoe snel de as roteert.

Voordat er lidfuncties van rotation worden aangeroepen, moet er een instantie van rotation worden aangemaakt, zoals hieronder weergegeven:

/* 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#

Stelt de huidige positie van de rotatiesensor in op een specifieke waarde.

De positie geeft aan hoeveel de as tijdens een project is gedraaid. Door de positie in te stellen, wordt de huidige positiewaarde gewijzigd zonder de as te bewegen.

Available Functions
void setPosition(
    double        value,
    rotationUnits units );

Parameters

Parameter

Type

Beschrijving

value

double

De positiewaarde die aan de rotatiesensor moet worden toegewezen. Dit kan een geheel getal of een decimaal getal zijn.

units

rotationUnits

De positie-eenheid:

  • deg / degrees — graden
  • turns / rev — omwentelingen

Return Values

Deze functie retourneert geen waarde.

angle#

Geeft de huidige hoek van de as terug.

De hoekmeting geeft de absolute positie van de as weer binnen één rotatie, van 0 tot 359,99 graden. Deze meting wordt niet gereset bij het starten van een project of bij het uitschakelen van de robot.

Available Functions
double angle( rotationUnits units = degrees );

Parameters

Parameter

Type

Beschrijving

units

rotationUnits

Optioneel. De hoekeenheid:

  • deg / degrees (standaard) — graden
  • turns / rev — omwentelingen

Return Values

Retourneert een double die de huidige hoek van de as in de opgegeven eenheden weergeeft.

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

Geeft aan hoeveel de as is gedraaid.

In tegenstelling tot de hoek kan de positie groter worden dan 359,99 graden of kleiner dan 0 graden. De positie registreert hoe ver de as voorwaarts of achterwaarts draait tijdens een project en kan indien nodig worden gereset.

Available Functions
double position( rotationUnits units );

Parameters

Parameter

Type

Beschrijving

units

rotationUnits

De positie-eenheid:

  • deg / degrees — graden
  • turns / rev — omwentelingen

Return Values

Retourneert een double die aangeeft hoeveel de as is gedraaid in de opgegeven eenheden.

velocity#

Geeft aan hoe snel de as draait.

Available Functions
double velocity( velocityUnits units );

Parameters

Parameter

Type

Beschrijving

units

velocityUnits

De snelheidseenheid:

  • rpm — omwentelingen per minuut
  • dps — graden per seconde

Return Values

Retourneert een double die de rotatiesnelheid van de as in de opgegeven eenheden weergeeft.