CTE-Arm#
Einführung#
Die Klasse arm steuert den 6-Achs-Arm der CTE-Arbeitszelle. In VEX EXP C++ kann dieser Arm einen Endeffektor im dreidimensionalen Raum positionieren, ihn drehen, die Bewegungsmöglichkeit prüfen und angebrachte Werkzeuge wie den Magnet-Aufnahme- oder den Stifthalter steuern.
Die Beispiele auf dieser Seite verwenden einen konfigurierten 6-Achsen-Arm mit der Bezeichnung Arm.
Konstruktoren#
arm#
arm erzeugt ein 6-Achsen-Armobjekt.
Verfügbare Funktionen
arm(int32_t index);
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Der Smart Port, an den der 6-Achsen-Arm angeschlossen ist, wird als |
Beispiel
// Create a 6-Axis Arm named Arm on Port 1
arm Arm = arm(PORT1);
Zerstörer#
~arm#
~arm zerstört das Objekt arm und gibt zugehörige Ressourcen frei.
Verfügbare Funktionen
~arm();
Mitgliedsfunktionen#
Die Klasse arm umfasst die folgenden Memberfunktionen:
Aktionen – Den 6-Achsen-Arm in Positionen oder Ausrichtungen bewegen.
moveTo— Bewegt den Endeffektor zu einer angegebenen x-, y- und z-Koordinate.moveInc— Bewegt den Endeffektor um eine angegebene Distanz von seiner aktuellen Position.moveEndEffectorTo— Dreht den Endeffektor in eine bestimmte Gier-, Roll- und Nickausrichtung.moveEndEffectorInc— Dreht den Endeffektor um einen festgelegten Gier-, Roll- und Nickwinkel.
Mutatoren – Bewegungs-, Werkzeug- und Steuerungseinstellungen konfigurieren.
setSpeed— Legt die Bewegungsgeschwindigkeit des 6-Achsen-Arms fest.setEndEffectorType— Legt den Typ des Endeffektors fest, der am 6-Achsen-Arm angebracht ist.setEndEffectorMagnet— Aktiviert oder deaktiviert das Magnetaufnahmewerkzeug.setPenOffset— Legt den Z-Achsen-Offset fest, der mit dem Stifthalter-Werkzeug verwendet wird.setControlStop— Aktiviert oder deaktiviert den Kontrollstopp für den 6-Achsen-Arm.setTimeout— Legt das Timeout fest, das von den Bewegungsfunktionen des 6-Achsen-Arms verwendet wird.
Getter – Geben Bewegungsstatus, Position, Ausrichtung und Verbindungswerte zurück.
isDone— Gibt zurück, ob der 6-Achsen-Arm seine Bewegung beendet hat.isCrashed— Gibt zurück, ob der 6-Achsen-Arm während der Bewegung abgestürzt ist.getX— Gibt die aktuelle x-Position des Endeffektors zurück.getY— Gibt die aktuelle y-Position des Endeffektors zurück.getZ— Gibt die aktuelle z-Position des Endeffektors zurück.getYaw— Gibt den aktuellen Gierwinkel des Endeffektors zurück.getRoll— Gibt den aktuellen Wurf des Endeffektors zurück.getPitch— Gibt die aktuelle Tonhöhe des Endeffektors zurück.canArmReachTo— Gibt zurück, ob der 6-Achsen-Arm eine bestimmte Position erreichen kann.canArmReachInc— Gibt zurück, ob sich der 6-Achsen-Arm um eine bestimmte Distanz bewegen kann.canEndEffectorReachTo— Gibt zurück, ob der Endeffektor eine bestimmte Ausrichtung erreichen kann.canEndEffectorReachInc— Gibt zurück, ob sich der Endeffektor um einen bestimmten Betrag drehen kann.isConnected— Gibt zurück, ob der 6-Achsen-Arm mit dem EXP Brain verbunden ist.timestamp— Gibt den Zeitstempel des zuletzt vom 6-Achsen-Arm empfangenen Statuspakets zurück.installed— Gibt zurück, ob der 6-Achsen-Arm angeschlossen ist.
Callbacks – Funktionen werden ausgeführt, wenn Arm-Ereignisse auftreten.
controlStopped— Registriert eine Funktion, die ausgeführt werden soll, wenn die Kontrollstopp-Funktion aktiviert ist.crashed— Registriert eine Funktion, die ausgeführt wird, wenn ein Absturz erkannt wird.
Aktionen#
moveTo#
moveTo bewegt den 6-Achsen-Arm zu einer bestimmten x-, y- und z-Koordinate.
Die x-, y- und z-Koordinaten beschreiben die Position des Endeffektors im dreidimensionalen Raum. Verwenden Sie canArmReachTo vor dieser Funktion, falls die Zielposition außerhalb des erreichbaren Arbeitsbereichs des 6-Achs-Arms liegen könnte.
Verfügbare Funktionen
bool moveTo(
double x,
double y,
double z,
bool waitForCompletion = true
);
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Die x-Koordinate der Zielposition in Millimetern. |
|
|
Die y-Koordinate der Zielposition in Millimetern. |
|
|
Die z-Koordinate der Zielposition in Millimetern. |
|
|
Optional. |
Rückgabewert
Gibt einen booleschen Wert zurück.
true— Der 6-Achsen-Arm hat die Zielposition erreicht.false— Der 6-Achsen-Arm hat die Zielposition nicht erreicht, oderwaitForCompletionwurde auffalsegesetzt.
Beispiele
// 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 bewegt den 6-Achsen-Arm um eine festgelegte Distanz von seiner aktuellen Position entlang der x-, y- und z-Achse.
Verwenden Sie diese Funktion, um sich relativ zur aktuellen Position des Endeffektors zu bewegen. Verwenden Sie canArmReachInc vor dieser Funktion, falls die Bewegung den 6-Achsen-Arm außerhalb seines erreichbaren Arbeitsbereichs positionieren könnte.
Verfügbare Funktionen
bool moveInc(
double x,
double y,
double z,
bool waitForCompletion = true
);
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Die Strecke, die entlang der x-Achse zurückgelegt werden muss, in Millimetern. |
|
|
Die Strecke, die entlang der y-Achse zurückgelegt werden muss, in Millimetern. |
|
|
Die Strecke, die entlang der z-Achse zurückgelegt werden soll, in Millimetern. |
|
|
Optional. |
Rückgabewert
Gibt einen booleschen Wert zurück.
true— Der 6-Achsen-Arm hat die gewünschte Position erreicht.false— Der 6-Achsen-Arm hat die angeforderte Position nicht erreicht, oderwaitForCompletionwurde auffalsegesetzt.
Beispiel
// Move the 6-Axis Arm 100 millimeters along the y-axis
Arm.moveInc(0, 100, 0);
moveEndEffectorTo#
moveEndEffectorTo dreht den Endeffektor des 6-Achsen-Arms in eine bestimmte Gier-, Roll- und Nickausrichtung.
Die Orientierung beschreibt die Rotation des Endeffektors. yaw Rotation um die z-Achse, roll Rotation um die x-Achse und pitch Rotation um die y-Achse.
Verfügbare Funktionen
bool moveEndEffectorTo(
double yaw,
double roll = 0,
double pitch = 0,
bool waitForCompletion = true
);
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Der Ziel-Gierwinkel in Grad. |
|
|
Optional. Der Zielrollwinkel in Grad. Standardwert: |
|
|
Optional. Der Ziel-Nickwinkel in Grad. Standardwert: |
|
|
Optional. |
Rückgabewert
Gibt einen booleschen Wert zurück.
true— Der Endeffektor hat die Zielausrichtung erreicht.false— Der Endeffektor hat die Zielorientierung nicht erreicht, oderwaitForCompletionwurde auffalsegesetzt.
Beispiel
// Rotate the end effector to 90 degrees of roll
Arm.moveEndEffectorTo(0, 90, 0);
moveEndEffectorInc#
moveEndEffectorInc dreht den Endeffektor des 6-Achsen-Arms um einen festgelegten Gier-, Roll- und Nickwinkel aus seiner aktuellen Ausrichtung.
Mit dieser Funktion können Sie relativ zur aktuellen Gier-, Roll- oder Nickbewegung des Endeffektors rotieren.
Verfügbare Funktionen
bool moveEndEffectorInc(
double yaw,
double roll = 0,
double pitch = 0,
bool waitForCompletion = true
);
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Die Änderung des Gierwinkels in Grad. |
|
|
Optional. Die Rolländerung in Grad. Der Standardwert ist |
|
|
Optional. Die Tonhöhenänderung in Grad. Der Standardwert ist |
|
|
Optional. |
Rückgabewert
Gibt einen booleschen Wert zurück.
true— Der Endeffektor hat die gewünschte Ausrichtung erreicht.false— Der Endeffektor hat die angeforderte Orientierung nicht erreicht, oderwaitForCompletionwurde auffalsegesetzt.
Beispiel
// Rotate the end effector -50 degrees in pitch
Arm.moveEndEffectorInc(0, 0, -50);
Mutatoren#
setSpeed#
setSpeed legt die Bewegungsgeschwindigkeit des 6-Achsen-Arms fest.
Verfügbare Funktionen
void setSpeed(uint32_t speed);
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Die Geschwindigkeit, mit der sich der 6-Achsen-Arm bewegen soll, in Millimetern pro Sekunde. |
Rückgabewert
Diese Funktion gibt keinen Wert zurück.
Beispiel
// Set the 6-Axis Arm movement speed
Arm.setSpeed(100);
setEndEffectorType#
setEndEffectorType legt den Typ des Endeffektors fest, der am 6-Achsen-Arm angebracht ist.
Beim Wechsel des Endeffektortyps passt der 6-Achs-Arm seinen Z-Offset automatisch an das ausgewählte Werkzeug an.
Verfügbare Funktionen
bool setEndEffectorType(
endEffectorType type,
bool waitForCompletion = true
);
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Das am 6-Achsen-Arm befestigte Werkzeug: |
|
|
Optional. |
Rückgabewert
Gibt einen booleschen Wert zurück.
true— Der angeforderte Typ wurde festgelegt.false— Der angeforderte Typ wurde nicht festgelegt, oderwaitForCompletionwurde auffalsegesetzt.
Beispiel
// Set the end effector type to the Magnet Pickup Tool
Arm.setEndEffectorType(magnet);
setEndEffectorMagnet#
setEndEffectorMagnet aktiviert oder deaktiviert das Magnetaufnahmewerkzeug.
Verfügbare Funktionen
void setEndEffectorMagnet(bool enabled);
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
|
Rückgabewert
Diese Funktion gibt keinen Wert zurück.
Beispiel
// Pick up objects and then drop them
Arm.setEndEffectorType(magnet);
Arm.setEndEffectorMagnet(true);
wait(2, seconds);
Arm.setEndEffectorMagnet(false);
setPenOffset#
setPenOffset legt den Z-Achsen-Offset fest, der verwendet wird, wenn das Stifthalterwerkzeug am 6-Achsen-Arm befestigt ist.
Stellen Sie den Endeffektortyp auf pen ein, bevor Sie diese Funktion verwenden. Wenn das Stifthalter-Werkzeug nicht ausgewählt ist, hat diese Funktion keine Auswirkung.
Der Stiftversatz ist der Abstand von der Oberkante des Stifthalters bis zur Spitze des Whiteboardmarkers. Ein positiver z-Wert verschiebt den Versatz vom Befestigungspunkt des Werkzeugs nach oben.
Verfügbare Funktionen
void setPenOffset(double zOffset);
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Der Stiftversatzwert in Millimetern. |
Rückgabewert
Diese Funktion gibt keinen Wert zurück.
Beispiel
// Set the end effector type to the Pen Holder Tool and set the pen offset
Arm.setEndEffectorType(pen);
Arm.setPenOffset(25);
setControlStop#
setControlStop aktiviert oder deaktiviert den Kontrollstopp für den 6-Achsen-Arm.
Wenn die Kontrollstopp-Funktion aktiviert ist, stoppt der 6-Achs-Arm sofort seine Bewegung und verhindert weitere lineare oder Gelenkbewegungen.
Verfügbare Funktionen
void setControlStop(bool state = true);
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Optional. |
Rückgabewert
Diese Funktion gibt keinen Wert zurück.
Beispiel
// Stop the 6-Axis Arm and prevent further movement
Arm.setControlStop();
setTimeout#
setTimeout legt den Timeout-Wert fest, der beim Bewegen des 6-Achsen-Arms verwendet wird.
Wenn eine Bewegung nicht vor Ablauf des Zeitlimits abgeschlossen ist, wird das Projekt mit der nächsten Codezeile fortgesetzt.
Verfügbare Funktionen
void setTimeout(
int32_t timeout,
timeUnits units
);
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Der neue Timeout-Wert. |
|
|
Die Zeiteinheit: |
Rückgabewert
Diese Funktion gibt keinen Wert zurück.
Beispiel
// Set the 6-Axis Arm timeout to 2 seconds
Arm.setTimeout(2, sec);
Getter#
isDone#
isDone gibt an, ob der 6-Achsen-Arm seine Bewegung beendet hat.
Diese Funktion ist nützlich, nachdem eine Bewegungsfunktion mit waitForCompletion auf false aufgerufen wurde.
Verfügbare Funktionen
bool isDone();
Parameter
Diese Funktion hat keine Parameter.
Rückgabewert
Gibt einen booleschen Wert zurück.
true— Der 6-Achsen-Arm hat seine Bewegung abgeschlossen.false— Der 6-Achsen-Arm bewegt sich noch.
Beispiel
// 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 gibt an, ob der 6-Achsen-Arm während der Bewegung abgestürzt ist.
Wird ein Aufprall erkannt, stoppt der 6-Achs-Arm die Motorbewegung und kann schlaff wirken. Dies reduziert die Belastung und schützt die Motoren vor versehentlichen Beschädigungen.
Verfügbare Funktionen
bool isCrashed();
Parameter
Diese Funktion hat keine Parameter.
Rückgabewert
Gibt einen booleschen Wert zurück.
true— Der 6-Achsen-Arm ist abgestürzt.false— Der 6-Achsen-Arm ist nicht abgestürzt.
Beispiel
// 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 Signal Tower and Brain screen
Brain.Screen.print("Crash Detected");
SignalTower6.setColor(signaltower::green, signaltower::off);
SignalTower6.setColor(signaltower::red, signaltower::on);
break;
}
wait(5, msec);
}
getX#
getX gibt die aktuelle x-Position des Endeffektors in Millimetern zurück.
Mit dieser Funktion können Sie ablesen, wo sich der Endeffektor aktuell entlang der x-Achse befindet.
Verfügbare Funktionen
float getX();
Parameter
Diese Funktion hat keine Parameter.
Rückgabewert
Gibt einen Wert vom float zurück, der die x-Position des Endeffektors in Millimetern darstellt.
Beispiel
// Print the current x position of the 6-Axis Arm
Brain.Screen.print(Arm.getX());
getY#
getY gibt die aktuelle y-Position des Endeffektors in Millimetern zurück.
Mit dieser Funktion können Sie ablesen, wo sich der Endeffektor aktuell entlang der y-Achse befindet.
Verfügbare Funktionen
float getY();
Parameter
Diese Funktion hat keine Parameter.
Rückgabewert
Gibt einen Wert vom float zurück, der die y-Position des Endeffektors in Millimetern darstellt.
Beispiel
// Print the current y position of the 6-Axis Arm
Brain.Screen.print(Arm.getY());
getZ#
getZ gibt die aktuelle z-Position des Endeffektors in Millimetern zurück.
Mit dieser Funktion können Sie die aktuelle Position des Endeffektors entlang der z-Achse ablesen.
Verfügbare Funktionen
float getZ();
Parameter
Diese Funktion hat keine Parameter.
Rückgabewert
Gibt einen Wert vom float zurück, der die z-Position des Endeffektors in Millimetern darstellt.
Beispiel
// Print the current z position of the 6-Axis Arm
Brain.Screen.print(Arm.getZ());
getYaw#
getYaw gibt den aktuellen Gierwinkel des Endeffektors in Grad zurück.
Verfügbare Funktionen
float getYaw();
Parameter
Diese Funktion hat keine Parameter.
Rückgabewert
Gibt einen Wert vom float zurück, der den aktuellen Gierwinkel des Endeffektors in Grad angibt.
Beispiel
// Print the current yaw of the end effector
Brain.Screen.print(Arm.getYaw());
getRoll#
getRoll gibt die aktuelle Rollbewegung des Endeffektors in Grad zurück.
Verfügbare Funktionen
float getRoll();
Parameter
Diese Funktion hat keine Parameter.
Rückgabewert
Gibt einen Wert vom float zurück, der die aktuelle Rollbewegung des Endeffektors in Grad darstellt.
Beispiel
// Print the current roll of the end effector
Brain.Screen.print(Arm.getRoll());
getPitch#
getPitch gibt die aktuelle Neigung des Endeffektors in Grad zurück.
Verfügbare Funktionen
float getPitch();
Parameter
Diese Funktion hat keine Parameter.
Rückgabewert
Gibt einen Wert vom float zurück, der die aktuelle Neigung des Endeffektors in Grad angibt.
Beispiel
// Print the current pitch of the end effector
Brain.Screen.print(Arm.getPitch());
canArmReachTo#
canArmReachTo gibt an, ob der 6-Achsen-Arm den Endeffektor zu einer bestimmten x-, y- und z-Koordinate bewegen kann.
Verwenden Sie diese Funktion, um eine Zielposition zu überprüfen, bevor Sie moveTo verwenden.
Verfügbare Funktionen
bool canArmReachTo(
double x,
double y,
double z
);
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Die x-Koordinate der Zielposition in Millimetern. |
|
|
Die y-Koordinate der Zielposition in Millimetern. |
|
|
Die z-Koordinate der Zielposition in Millimetern. |
Rückgabewert
Gibt einen booleschen Wert zurück.
true— Der 6-Achsen-Arm kann die gewünschte Position erreichen.false— Der 6-Achsen-Arm kann die angeforderte Position nicht erreichen.
Beispiel
// 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 gibt zurück, ob der 6-Achsen-Arm den Endeffektor um eine bestimmte x-, y- und z-Distanz von seiner aktuellen Position aus bewegen kann.
Verwenden Sie diese Funktion, um eine relative Bewegung zu überprüfen, bevor Sie moveInc verwenden.
Verfügbare Funktionen
bool canArmReachInc(
double x,
double y,
double z
);
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Die Strecke, die entlang der x-Achse zurückgelegt werden muss, in Millimetern. |
|
|
Die Strecke, die entlang der y-Achse zurückgelegt werden muss, in Millimetern. |
|
|
Die Strecke, die entlang der z-Achse zurückgelegt werden soll, in Millimetern. |
Rückgabewert
Gibt einen booleschen Wert zurück.
true— Der 6-Achsen-Arm kann die gewünschte Bewegung ausführen.false— Der 6-Achsen-Arm kann die angeforderte Bewegung nicht ausführen.
Beispiel
// 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 gibt an, ob der Endeffektor in eine bestimmte Gier-, Roll- und Nickrichtung gedreht werden kann.
Verwenden Sie diese Funktion, um die Zielausrichtung zu überprüfen, bevor Sie moveEndEffectorTo verwenden.
Verfügbare Funktionen
bool canEndEffectorReachTo(
double yaw,
double roll = 0,
double pitch = 0
);
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Der Ziel-Gierwinkel in Grad. |
|
|
Optional. Der Zielrollwinkel in Grad. Standardwert: |
|
|
Optional. Der Ziel-Nickwinkel in Grad. Standardwert: |
Rückgabewert
Gibt einen booleschen Wert zurück.
true— Der Endeffektor kann die gewünschte Ausrichtung erreichen.false— Der Endeffektor kann die angeforderte Ausrichtung nicht erreichen.
Beispiel
// Rotate the end effector to 90 degrees of roll if possible
if (Arm.canEndEffectorReachTo(0, 90, 0)) {
Arm.moveEndEffectorTo(0, 90, 0);
}
canEndEffectorReachInc#
canEndEffectorReachInc gibt zurück, ob der Endeffektor um einen bestimmten Gier-, Roll- und Nickwinkel von seiner aktuellen Ausrichtung aus gedreht werden kann.
Verwenden Sie diese Funktion, um eine relative Orientierungsbewegung zu überprüfen, bevor Sie moveEndEffectorInc verwenden.
Verfügbare Funktionen
bool canEndEffectorReachInc(
double yaw,
double roll = 0,
double pitch = 0
);
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Die Änderung des Gierwinkels in Grad. |
|
|
Optional. Die Rolländerung in Grad. Der Standardwert ist |
|
|
Optional. Die Tonhöhenänderung in Grad. Der Standardwert ist |
Rückgabewert
Gibt einen booleschen Wert zurück.
true— Der Endeffektor kann die angeforderte Drehung ausführen.false— Der Endeffektor kann die angeforderte Drehung nicht ausführen.
Beispiel
// Increment the end effector by 10 degrees of pitch if possible
if (Arm.canEndEffectorReachInc(0, 0, 10)) {
Arm.moveEndEffectorInc(0, 0, 10);
}
isConnected#
isConnected gibt zurück, ob der 6-Achsen-Arm mit dem EXP Brain verbunden ist.
Dies ist eine Kompatibilitätsfunktion, die denselben Wert zurückgibt wie installed.
Verfügbare Funktionen
bool isConnected();
Parameter
Diese Funktion hat keine Parameter.
Rückgabewert
Gibt einen booleschen Wert zurück.
true— Der 6-Achsen-Arm ist mit dem EXP-Gehirn verbunden.false— Der 6-Achsen-Arm ist nicht mit dem EXP Brain verbunden.
Beispiel
// Print whether the 6-Axis Arm is connected
Brain.Screen.print(Arm.isConnected());
timestamp#
timestamp gibt den Zeitstempel des zuletzt vom 6-Achsen-Arm empfangenen Statuspakets zurück.
Verfügbare Funktionen
uint32_t timestamp();
Parameter
Diese Funktion hat keine Parameter.
Rückgabewert
Gibt den Zeitstempel des letzten Statuspakets als uint32_t in Millisekunden zurück.
installed#
installed gibt zurück, ob der 6-Achsen-Arm angeschlossen ist.
Verfügbare Funktionen
bool installed();
Parameter
Diese Funktion hat keine Parameter.
Rückgabewert
Gibt einen booleschen Wert zurück.
true— Der 6-Achsen-Arm ist angeschlossen.false— Der 6-Achsen-Arm ist nicht angeschlossen.
Rückrufe#
controlStopped#
controlStopped registriert eine Funktion, die ausgeführt wird, wenn die Kontrollstopp-Funktion aktiviert ist.
Verfügbare Funktionen
void controlStopped(void (* callback)(void));
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Eine Funktion, die ausgeführt wird, wenn die Kontrollstopp-Funktion aktiviert ist. |
Rückgabewert
Diese Funktion gibt keinen Wert zurück.
Beispiel
// Called when the 6-Axis Arm is control stopped
void onControlStopped() {
Brain.Screen.print("Arm control stopped");
}
int main() {
vexcodeInit();
Arm.controlStopped(onControlStopped);
}
crashed#
crashed registriert eine Funktion, die ausgeführt wird, wenn der 6-Achsen-Arm während der Bewegung abstürzt.
Wird ein Aufprall erkannt, stoppt der 6-Achs-Arm die Motorbewegung und kann schlaff wirken. Dies reduziert die Belastung und schützt die Motoren vor versehentlichen Beschädigungen.
Verfügbare Funktionen
void crashed(void (* callback)(void));
Parameter |
Typ |
Beschreibung |
|---|---|---|
|
|
Eine Funktion, die ausgeführt wird, wenn der 6-Achsen-Arm während der Bewegung abstürzt. |
Rückgabewert
Diese Funktion gibt keinen Wert zurück.
Beispiel
// Called when the 6-Axis Arm crashes while moving
void onArmCrashed() {
Brain.Screen.print("Crash detected");
SignalTower6.setColor(signaltower::green, signaltower::off);
SignalTower6.setColor(signaltower::red, signaltower::on);
}
int main() {
vexcodeInit();
Arm.crashed(onArmCrashed);
}