CTE-arm#

Invoering#

De klasse arm biedt besturing voor de 6-assige arm die in de CTE-werkcel wordt gebruikt. In VEX V5 C++ kan de 6-assige arm een ​​eindeffector naar posities in de driedimensionale ruimte bewegen, de eindeffector roteren, controleren of bewegingen mogelijk zijn en aangesloten gereedschappen zoals de magneetgrijper of de pennenhouder besturen.

De 6-assige arm is niet geconfigureerd als een apparaat in VEXcode V5. Om deze te gebruiken in een VEX V5 C+±project, moet u handmatig een arm object in de code aanmaken met de Smart Port waarop de 6-assige arm is aangesloten.

De voorbeelden op deze pagina maken gebruik van een handmatig geconstrueerde 6-assige arm met de naam Arm.

Constructeurs#

arm#

arm creëert een 6-assig armobject.

Beschikbare functie

arm(int32_t index);

Parameter

Type

Beschrijving

index

int32_t

De Smart Port waarop de 6-assige arm is aangesloten, wordt weergegeven als PORTx, waarbij x het poortnummer is. Bijvoorbeeld: PORT1.

Voorbeeld

// Create a 6-Axis Arm named Arm on Port 1
arm Arm = arm(PORT1);

Vernietiger#

~arm#

~arm vernietigt het arm object en geeft de bijbehorende resources vrij.

Beschikbare functie

~arm();

Lidfuncties#

De klasse arm omvat de volgende lidfuncties:

Acties — Beweeg de 6-assige arm naar de gewenste posities of oriëntaties.

  • moveTo — Verplaatst de eindeffector naar een opgegeven x-, y- en z-coördinaat.

  • moveInc — Verplaatst de eindeffector over een opgegeven afstand vanaf zijn huidige positie.

  • moveEndEffectorTo — Draait de eindeffector naar een gespecificeerde gier-, rol- en stamprichting.

  • moveEndEffectorInc — Draait de eindeffector met een gespecificeerde hoeveelheid gier-, rol- en stampbeweging.

Mutators — Configureer beweging, gereedschap en besturingsinstellingen.

  • setSpeed — Stelt de bewegingssnelheid in die door de 6-assige arm wordt gebruikt.

  • setEndEffectorType — Stelt het type eindeffector in dat aan de 6-assige arm is bevestigd.

  • setEndEffectorMagnet — Schakelt het magneetoppakgereedschap in of uit.

  • setPenOffset — Stelt de z-as-offset in die wordt gebruikt met het Pen Holder Tool.

  • setControlStop — Schakelt de controlestop voor de 6-assige arm in of uit.

  • setTimeout — Stelt de time-out in die wordt gebruikt door de bewegingsfuncties van de 6-assige arm.

Getters — Retourneren bewegingsstatus, positie, oriëntatie en verbindingswaarden.

  • isDone — Geeft aan of de 6-assige arm klaar is met bewegen.

  • isCrashed — Geeft aan of de 6-assige arm is gecrasht tijdens het bewegen.

  • getX — Retourneert de huidige x-positie van de eindeffector.

  • getY — Geeft de huidige y-positie van de eindeffector terug.

  • getZ — Retourneert de huidige z-positie van de eindeffector.

  • getYaw — Retourneert de huidige yaw van de eindeffector.

  • getRoll — Retourneert de huidige worp van de eindeffector.

  • getPitch — Geeft de huidige toonhoogte van de eindeffector terug.

  • canArmReachTo — Geeft aan of de 6-assige arm een ​​opgegeven positie kan bereiken.

  • canArmReachInc — Geeft aan of de 6-assige arm een ​​bepaalde afstand kan afleggen.

  • canEndEffectorReachTo — Geeft aan of de eindeffector een bepaalde oriëntatie kan bereiken.

  • canEndEffectorReachInc — Geeft aan of de eindeffector een bepaalde hoeveelheid kan roteren.

  • isConnected — Geeft aan of de 6-assige arm is verbonden met de V5-hersenen.

  • timestamp — Retourneert de tijdstempel van het laatst ontvangen statuspakket van de 6-assige arm.

  • installed — Geeft aan of de 6-assige arm is aangesloten.

Callbacks — Voer functies uit wanneer er gebeurtenissen plaatsvinden die het systeem activeren.

  • controlStopped — Registreert een functie die moet worden uitgevoerd wanneer de controlestop is ingeschakeld.

  • crashed — Registreert een functie die moet worden uitgevoerd wanneer een crash wordt gedetecteerd.

Acties#

moveTo#

moveTo verplaatst de 6-assige arm naar een opgegeven x-, y- en z-coördinaat.

De x-, y- en z-coördinaten beschrijven de positie van de eindeffector in de driedimensionale ruimte. Gebruik canArmReachTo vóór deze functie als de doelpositie zich mogelijk buiten het bereikbare werkgebied van de 6-assige arm bevindt.

Beschikbare functie

bool moveTo(
  double x,
  double y,
  double z,
  bool   waitForCompletion = true
);

Parameter

Type

Beschrijving

x

double

De x-coördinaat van de doelpositie in millimeters.

y

double

De y-coördinaat van de doelpositie in millimeters.

z

double

De z-coördinaat van de doelpositie in millimeters.

waitForCompletion

bool

Optioneel. true (standaard) wacht tot de beweging is voltooid voordat verder wordt gegaan. false start de beweging en gaat direct verder naar de volgende regel code.

Retourwaarde

Retourneert een Booleaanse waarde.

  • true — De 6-assige arm heeft de doelpositie bereikt.

  • false — De 6-assige arm heeft de doelpositie niet bereikt, of waitForCompletion was ingesteld op false.

Voorbeelden

// Move the 6-Axis Arm to (200, 0, 100)
Arm.moveTo(200, 0, 100);

// Start moving, then print the y-position while the arm moves
Arm.moveTo(-100, 200, 100, false);

while (!Arm.isDone()) {
  Brain.Screen.print(Arm.getY());
  Brain.Screen.newLine();
  wait(0.25, seconds);
}

moveInc#

moveInc verplaatst de 6-assige arm over een opgegeven afstand vanaf de huidige positie langs de x-, y- en z-assen.

Gebruik deze functie om te bewegen ten opzichte van de huidige positie van de eindeffector. Gebruik canArmReachInc vóór deze functie als de beweging de 6-assige arm buiten zijn bereikbare werkruimte kan plaatsen.

Beschikbare functie

bool moveInc(
  double x,
  double y,
  double z,
  bool   waitForCompletion = true
);

Parameter

Type

Beschrijving

x

double

De afstand die langs de x-as moet worden afgelegd in millimeters.

y

double

De afstand die langs de y-as moet worden afgelegd, in millimeters.

z

double

De afstand die langs de z-as moet worden afgelegd, in millimeters.

waitForCompletion

bool

Optioneel. true (standaard) wacht tot de beweging is voltooid voordat verder wordt gegaan. false start de beweging en gaat direct verder naar de volgende regel code.

Retourwaarde

Retourneert een Booleaanse waarde.

  • true — De 6-assige arm heeft de gewenste positie bereikt.

  • false — De 6-assige arm heeft de gevraagde positie niet bereikt, of waitForCompletion was ingesteld op false.

Voorbeeld

// Move the 6-Axis Arm 100 millimeters along the y-axis
Arm.moveInc(0, 100, 0);

moveEndEffectorTo#

moveEndEffectorTo roteert de eindeffector van de 6-assige arm naar een gespecificeerde gier-, rol- en stamprichting.

De oriëntatie beschrijft hoe de eindeffector roteert. yaw , roteert om de z-as; roll , roteert om de x-as; en pitch roteert om de y-as.

Beschikbare functie

bool moveEndEffectorTo(
  double yaw,
  double roll = 0,
  double pitch = 0,
  bool   waitForCompletion = true
);

Parameter

Type

Beschrijving

yaw

double

De gewenste gierhoek in graden.

roll

double

Optioneel. De gewenste rolhoek in graden. De standaardwaarde is 0.

pitch

double

Optioneel. De gewenste hellingshoek in graden. De standaardwaarde is 0.

waitForCompletion

bool

Optioneel. true (standaard) wacht tot de beweging is voltooid voordat verder wordt gegaan. false start de beweging en gaat direct verder naar de volgende regel code.

Retourwaarde

Retourneert een Booleaanse waarde.

  • true — De eindeffector heeft de doeloriëntatie bereikt.

  • false — De eindeffector heeft de doeloriëntatie niet bereikt, of waitForCompletion was ingesteld op false.

Voorbeeld

// Rotate the end effector to 90 degrees of roll
Arm.moveEndEffectorTo(0, 90, 0);

moveEndEffectorInc#

moveEndEffectorInc roteert de eindeffector van de 6-assige arm met een gespecificeerde hoeveelheid gier-, rol- en stampbeweging ten opzichte van de huidige oriëntatie.

Gebruik deze functie om te roteren ten opzichte van de huidige gier-, rol- of stampbeweging van de eindeffector.

Beschikbare functie

bool moveEndEffectorInc(
  double yaw,
  double roll = 0,
  double pitch = 0,
  bool   waitForCompletion = true
);

Parameter

Type

Beschrijving

yaw

double

De verandering in gierhoek, in graden.

roll

double

Optioneel. De verandering in hellingshoek, in graden. De standaardwaarde is 0.

pitch

double

Optioneel. De toonhoogteverandering in graden. De standaardwaarde is 0.

waitForCompletion

bool

Optioneel. true (standaard) wacht tot de beweging is voltooid voordat verder wordt gegaan. false start de beweging en gaat direct verder naar de volgende regel code.

Retourwaarde

Retourneert een Booleaanse waarde.

  • true — De eindeffector heeft de gevraagde oriëntatie bereikt.

  • false — De eindeffector heeft de gevraagde oriëntatie niet bereikt, of waitForCompletion was ingesteld op false.

Voorbeeld

// Rotate the end effector -50 degrees in pitch
Arm.moveEndEffectorInc(0, 0, -50);

Mutators#

setSpeed#

setSpeed stelt de bewegingssnelheid in die door de 6-assige arm wordt gebruikt.

Beschikbare functie

void setSpeed(uint32_t speed);

Parameter

Type

Beschrijving

speed

uint32_t

De snelheid waarmee de 6-assige arm moet bewegen, in millimeters per seconde.

Retourwaarde

Deze functie retourneert geen waarde.

Voorbeeld

// Set the 6-Axis Arm movement speed
Arm.setSpeed(100);

setEndEffectorType#

setEndEffectorType stelt het type eindeffector in dat aan de 6-assige arm is bevestigd.

Wanneer het type eindeffector wordt gewijzigd, past de 6-assige arm automatisch de Z-offset aan aan het geselecteerde gereedschap.

Beschikbare functie

bool setEndEffectorType(
  endEffectorType type,
  bool            waitForCompletion = true
);

Parameter

Type

Beschrijving

type

endEffectorType

Het gereedschap dat aan de 6-assige arm is bevestigd: magnet (magneet-oppakgereedschap) of pen (penhoudergereedschap).

waitForCompletion

bool

Optioneel. true (standaard) wacht tot de wijziging is voltooid voordat verder wordt gegaan. false start de wijziging en gaat direct verder naar de volgende regel code.

Retourwaarde

Retourneert een Booleaanse waarde.

  • true — Het gevraagde type is ingesteld.

  • false — Het gevraagde type is niet ingesteld, of waitForCompletion is ingesteld op false.

Voorbeeld

// Set the end effector type to the Magnet Pickup Tool
Arm.setEndEffectorType(magnet);

setEndEffectorMagnet#

setEndEffectorMagnet schakelt het magneetoppakgereedschap in of uit.

Beschikbare functie

void setEndEffectorMagnet(bool enabled);

Parameter

Type

Beschrijving

enabled

bool

true : de magneet kan objecten oppakken en vasthouden. false de magneet wordt uitgeschakeld en het vastgehouden object wordt losgelaten.

Retourwaarde

Deze functie retourneert geen waarde.

Voorbeeld

// Pick up objects and then drop them
Arm.setEndEffectorType(magnet);
Arm.setEndEffectorMagnet(true);
wait(2, seconds);
Arm.setEndEffectorMagnet(false);

setPenOffset#

setPenOffset stelt de z-as-offset in die wordt gebruikt wanneer het penhoudergereedschap is bevestigd aan de 6-assige arm.

Stel het eindeffectortype in op pen voordat u deze functie gebruikt. Als het gereedschap Penhouder niet is geselecteerd, heeft deze functie geen effect.

De penoffset is de afstand van de bovenkant van de penhouder tot de punt van de whiteboardstift. Een positieve z-waarde verplaatst de offset omhoog vanaf het bevestigingspunt van het gereedschap.

Beschikbare functie

void setPenOffset(double zOffset);

Parameter

Type

Beschrijving

zOffset

double

De penoffsetwaarde in millimeters.

Retourwaarde

Deze functie retourneert geen waarde.

Voorbeeld

// Set the end effector type to the Pen Holder Tool and set the pen offset
Arm.setEndEffectorType(pen);
Arm.setPenOffset(25);

setControlStop#

setControlStop schakelt de besturingsstop voor de 6-assige arm in of uit.

Wanneer de stopfunctie is ingeschakeld, stopt de 6-assige arm onmiddellijk met bewegen en worden verdere lineaire of gewrichtsbewegingen voorkomen.

Beschikbare functie

void setControlStop(bool state = true);

Parameter

Type

Beschrijving

state

bool

Optioneel. true (standaard) activeert de stopfunctie en voorkomt verdere lineaire of gewrichtsbewegingen. false schakelt de stopfunctie uit.

Retourwaarde

Deze functie retourneert geen waarde.

Voorbeeld

// Stop the 6-Axis Arm and prevent further movement
Arm.setControlStop();

setTimeout#

setTimeout stelt de time-outwaarde in die wordt gebruikt bij het bewegen van de 6-assige arm.

Als een beweging niet is voltooid voordat de time-out is bereikt, gaat het project verder met de volgende regel code.

Beschikbare functie

void setTimeout(
  int32_t   timeout,
  timeUnits units
);

Parameter

Type

Beschrijving

timeout

int32_t

De nieuwe time-outwaarde.

units

timeUnits

De tijdseenheid: sec (seconden) of msec (milliseconden).

Retourwaarde

Deze functie retourneert geen waarde.

Voorbeeld

// Set the 6-Axis Arm timeout to 2 seconds
Arm.setTimeout(2, sec);

Getters#

isDone#

isDone geeft aan of de 6-assige arm klaar is met bewegen.

Deze functie is handig nadat een bewegingsfunctie is aangeroepen met waitForCompletion ingesteld op false.

Beschikbare functie

bool isDone();

Parameters

Deze functie heeft geen parameters.

Retourwaarde

Retourneert een Booleaanse waarde.

  • true — De 6-assige arm is klaar met bewegen.

  • false — De 6-assige arm beweegt nog steeds.

Voorbeeld

// Display the 6-Axis Arm's y-position while it moves
Arm.moveTo(-100, 200, 100, false);

while (!Arm.isDone()) {
  Brain.Screen.print(Arm.getY());
  Brain.Screen.newLine();
  wait(0.25, seconds);
}

isCrashed#

isCrashed geeft aan of de 6-assige arm is gecrasht tijdens het bewegen.

Wanneer een botsing wordt gedetecteerd, stopt de 6-assige arm met de motorbeweging en kan deze slap lijken te hangen. Dit vermindert de belasting en helpt de motoren te beschermen tegen onbedoelde schade.

Beschikbare functie

bool isCrashed();

Parameters

Deze functie heeft geen parameters.

Retourwaarde

Retourneert een Booleaanse waarde.

  • true — De 6-assige arm is vastgelopen.

  • false — De 6-assige arm is niet vastgelopen.

Voorbeeld

// Quickly move to a new location
Arm.setSpeed(100);
Arm.moveTo(-40, 250, 40, false);

// While moving, check for a crash
while (true) {
  if (Arm.isCrashed()) {
    // Indicate a crash with the Brain screen
    Brain.Screen.print("Crash Detected");
    break;
  }

  wait(5, msec);
}

getX#

getX retourneert de huidige x-positie van de eindeffector in millimeters.

Gebruik deze functie om de huidige positie van de eindeffector langs de x-as af te lezen.

Beschikbare functie

float getX();

Parameters

Deze functie heeft geen parameters.

Retourwaarde

Retourneert een float die de x-positie van de eindeffector in millimeters weergeeft.

Voorbeeld

// Print the current x position of the 6-Axis Arm
Brain.Screen.print(Arm.getX());

getY#

getY geeft de huidige y-positie van de eindeffector in millimeters terug.

Gebruik deze functie om de huidige positie van de eindeffector langs de y-as af te lezen.

Beschikbare functie

float getY();

Parameters

Deze functie heeft geen parameters.

Retourwaarde

Retourneert een float die de y-positie van de eindeffector in millimeters weergeeft.

Voorbeeld

// Print the current y position of the 6-Axis Arm
Brain.Screen.print(Arm.getY());

getZ#

getZ retourneert de huidige z-positie van de eindeffector in millimeters.

Gebruik deze functie om de huidige positie van de eindeffector langs de z-as af te lezen.

Beschikbare functie

float getZ();

Parameters

Deze functie heeft geen parameters.

Retourwaarde

Retourneert een float die de z-positie van de eindeffector in millimeters weergeeft.

Voorbeeld

// Print the current z position of the 6-Axis Arm
Brain.Screen.print(Arm.getZ());

getYaw#

getYaw retourneert de huidige yaw van de eindeffector in graden.

Beschikbare functie

float getYaw();

Parameters

Deze functie heeft geen parameters.

Retourwaarde

Retourneert een float die de huidige gierhoek van de eindeffector in graden weergeeft.

Voorbeeld

// Print the current yaw of the end effector
Brain.Screen.print(Arm.getYaw());

getRoll#

getRoll retourneert de huidige worp van de eindeffector in graden.

Beschikbare functie

float getRoll();

Parameters

Deze functie heeft geen parameters.

Retourwaarde

Retourneert een float die de huidige rolhoek van de eindeffector in graden weergeeft.

Voorbeeld

// Print the current roll of the end effector
Brain.Screen.print(Arm.getRoll());

getPitch#

getPitch retourneert de huidige pitch van de eindeffector in graden.

Beschikbare functie

float getPitch();

Parameters

Deze functie heeft geen parameters.

Retourwaarde

Retourneert een float die de huidige hellingshoek van de eindeffector in graden weergeeft.

Voorbeeld

// Print the current pitch of the end effector
Brain.Screen.print(Arm.getPitch());

canArmReachTo#

canArmReachTo geeft aan of de 6-assige arm de eindeffector naar een opgegeven x-, y- en z-coördinaat kan verplaatsen.

Gebruik deze functie om een ​​doelpositie te controleren voordat je moveTo gebruikt.

Beschikbare functie

bool canArmReachTo(
  double x,
  double y,
  double z
);

Parameter

Type

Beschrijving

x

double

De x-coördinaat van de doelpositie in millimeters.

y

double

De y-coördinaat van de doelpositie in millimeters.

z

double

De z-coördinaat van de doelpositie in millimeters.

Retourwaarde

Retourneert een Booleaanse waarde.

  • true — De 6-assige arm kan de gewenste positie bereiken.

  • false — De 6-assige arm kan de gevraagde positie niet bereiken.

Voorbeeld

// Move the 6-Axis Arm to (100, -20, 50) if it can reach
if (Arm.canArmReachTo(100, -20, 50)) {
  Arm.moveTo(100, -20, 50);
}

canArmReachInc#

canArmReachInc geeft aan of de 6-assige arm de eindeffector over een opgegeven x-, y- en z-afstand vanaf zijn huidige positie kan verplaatsen.

Gebruik deze functie om een ​​relatieve beweging te controleren voordat je moveInc gebruikt.

Beschikbare functie

bool canArmReachInc(
  double x,
  double y,
  double z
);

Parameter

Type

Beschrijving

x

double

De afstand die langs de x-as moet worden afgelegd in millimeters.

y

double

De afstand die langs de y-as moet worden afgelegd, in millimeters.

z

double

De afstand die langs de z-as moet worden afgelegd, in millimeters.

Retourwaarde

Retourneert een Booleaanse waarde.

  • true — De 6-assige arm kan de gevraagde beweging uitvoeren.

  • false — De 6-assige arm kan de gevraagde beweging niet uitvoeren.

Voorbeeld

// Increment the 6-Axis Arm 100 mm along the x-axis if possible
if (Arm.canArmReachInc(100, 0, 0)) {
  Arm.moveInc(100, 0, 0);
}

canEndEffectorReachTo#

canEndEffectorReachTo geeft aan of de eindeffector kan roteren naar een gespecificeerde gier-, rol- en stamprichting.

Gebruik deze functie om de oriëntatie van een doel te controleren voordat u moveEndEffectorTo gebruikt.

Beschikbare functie

bool canEndEffectorReachTo(
  double yaw,
  double roll = 0,
  double pitch = 0
);

Parameter

Type

Beschrijving

yaw

double

De gewenste gierhoek in graden.

roll

double

Optioneel. De gewenste rolhoek in graden. De standaardwaarde is 0.

pitch

double

Optioneel. De gewenste hellingshoek in graden. De standaardwaarde is 0.

Retourwaarde

Retourneert een Booleaanse waarde.

  • true — De eindeffector kan de gevraagde oriëntatie bereiken.

  • false — De eindeffector kan de gevraagde oriëntatie niet bereiken.

Voorbeeld

// Rotate the end effector to 90 degrees of roll if possible
if (Arm.canEndEffectorReachTo(0, 90, 0)) {
  Arm.moveEndEffectorTo(0, 90, 0);
}

canEndEffectorReachInc#

canEndEffectorReachInc geeft aan of de eindeffector kan roteren met een gespecificeerde hoeveelheid gier-, rol- en stampbeweging vanuit zijn huidige oriëntatie.

Gebruik deze functie om een ​​relatieve oriëntatiebeweging te controleren voordat u moveEndEffectorInc gebruikt.

Beschikbare functie

bool canEndEffectorReachInc(
  double yaw,
  double roll = 0,
  double pitch = 0
);

Parameter

Type

Beschrijving

yaw

double

De verandering in gierhoek, in graden.

roll

double

Optioneel. De verandering in hellingshoek, in graden. De standaardwaarde is 0.

pitch

double

Optioneel. De toonhoogteverandering in graden. De standaardwaarde is 0.

Retourwaarde

Retourneert een Booleaanse waarde.

  • true — De eindeffector kan de gevraagde rotatie uitvoeren.

  • false — De eindeffector kan de gevraagde rotatie niet uitvoeren.

Voorbeeld

// Increment the end effector by 10 degrees of pitch if possible
if (Arm.canEndEffectorReachInc(0, 0, 10)) {
  Arm.moveEndEffectorInc(0, 0, 10);
}

isConnected#

isConnected geeft aan of de 6-assige arm is verbonden met de V5-hersenen.

Dit is een compatibiliteitsfunctie die dezelfde waarde retourneert als installed.

Beschikbare functie

bool isConnected();

Parameters

Deze functie heeft geen parameters.

Retourwaarde

Retourneert een Booleaanse waarde.

  • true — De 6-assige arm is verbonden met de V5-hersenen.

  • false — De 6-assige arm is niet verbonden met de V5-hersenen.

Voorbeeld

// Print whether the 6-Axis Arm is connected
Brain.Screen.print(Arm.isConnected());

timestamp#

timestamp retourneert de tijdstempel van het laatst ontvangen statuspakket van de 6-assige arm.

Beschikbare functie

uint32_t timestamp();

Parameters

Deze functie heeft geen parameters.

Retourwaarde

Retourneert de tijdstempel van het laatste statuspakket als een uint32_t in milliseconden.

installed#

installed geeft aan of de 6-assige arm is aangesloten.

Beschikbare functie

bool installed();

Parameters

Deze functie heeft geen parameters.

Retourwaarde

Retourneert een Booleaanse waarde.

  • true — De 6-assige arm is aangesloten.

  • false — De 6-assige arm is niet aangesloten.

Terugbelverzoeken#

controlStopped#

controlStopped registreert een functie die wordt uitgevoerd wanneer control stop is ingeschakeld.

Beschikbare functie

void controlStopped(void (* callback)(void));

Parameter

Type

Beschrijving

callback

void (*)(void)

Een functie die wordt uitgevoerd wanneer de stopfunctie van de besturing is ingeschakeld.

Retourwaarde

Deze functie retourneert geen waarde.

Voorbeeld

// Called when the 6-Axis Arm is control stopped
void onControlStopped() {
  Brain.Screen.print("Arm control stopped");
}

int main() {
  Arm.controlStopped(onControlStopped);
}

crashed#

crashed registreert een functie die wordt uitgevoerd wanneer de 6-assige arm tijdens het bewegen is vastgelopen.

Wanneer een botsing wordt gedetecteerd, stopt de 6-assige arm met de motorbeweging en kan deze slap lijken te hangen. Dit vermindert de belasting en helpt de motoren te beschermen tegen onbedoelde schade.

Beschikbare functie

void crashed(void (* callback)(void));

Parameter

Type

Beschrijving

callback

void (*)(void)

Een functie die wordt uitgevoerd wanneer de 6-assige arm tijdens het bewegen vastloopt.

Retourwaarde

Deze functie retourneert geen waarde.

Voorbeeld

// Called when the 6-Axis Arm crashes while moving
void onArmCrashed() {
  Brain.Screen.print("Crash detected");
}

int main() {
  Arm.crashed(onArmCrashed);
}