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 |
|---|---|---|
|
|
De slimme poort waarop de rotatiesensor is aangesloten, wordt weergegeven als |
|
|
Optioneel. Of de uitvoer van de rotatiesensor moet worden omgekeerd:
|
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 Functionsvoid setPosition(
double value,
rotationUnits units );
Parameter |
Type |
Beschrijving |
|---|---|---|
|
|
De positiewaarde die aan de rotatiesensor moet worden toegewezen. Dit kan een geheel getal of een decimaal getal zijn. |
|
|
De positie-eenheid:
|
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 Functionsdouble angle( rotationUnits units = degrees );
Parameter |
Type |
Beschrijving |
|---|---|---|
|
|
Optioneel. De hoekeenheid:
|
Retourneert een double die de huidige hoek van de as in de opgegeven eenheden weergeeft.
// 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 Functionsdouble position( rotationUnits units );
Parameter |
Type |
Beschrijving |
|---|---|---|
|
|
De positie-eenheid:
|
Retourneert een double die aangeeft hoeveel de as is gedraaid in de opgegeven eenheden.
velocity#
Geeft aan hoe snel de as draait.
Available Functionsdouble velocity( velocityUnits units );
Parameter |
Type |
Beschrijving |
|---|---|---|
|
|
De snelheidseenheid:
|
Retourneert een double die de rotatiesnelheid van de as in de opgegeven eenheden weergeeft.