MODE 9 — SERVO DEMO
Easy · 30 min · Fast kostenlos
Ziel & Anwendung
Steuere alle 6 Servo-Ausgänge einzeln per Joystick — EncoderButton wechselt zwischen S1 bis S6, JoystickX setzt den Pulswert, JoystickButton fährt den gewählten Servo sanft zur Mitte zurück.
- Servo-Pulsbreite (1000–2000 µs) direkt manuell einstellen und verstehen.
- Unterschied zwischen sofortigem setServoPulse und weichem startMove erkennen.
- Alle 6 Servo-Kanäle von ProtoPeaks individuell testen und kalibrieren.
Anschluss & Funktion
Motoren am Board
| Anschluss | Motor | Aufgabe |
|---|---|---|
| S1 | 180°-Servo | Testkanal, per EncoderButton auswählbar |
| S2 | 180°-Servo | Testkanal, per EncoderButton auswählbar |
| S3 | 180°-Servo | Testkanal, per EncoderButton auswählbar |
| S4 | 360°-Servo | Testkanal, per EncoderButton auswählbar |
| S5 | 360°-Servo | Testkanal, per EncoderButton auswählbar |
| S6 | 180°-Servo | Testkanal, per EncoderButton auswählbar |
| STEPPER | Schrittmotor | Testmodus per Langdruck der EncoderButton |
| DC | DC-Motor | Testmodus — Joystick Y steuert die Drehzahl |
Materialliste
- Optional: 1–2 kleine Kartonzeiger für sichtbare Servo-Ausschläge
- Optional: Marker für Pulswert-Skala auf der Basis
Step-by-Step Tutorial
Optional: Zeiger auf aktiven Servos montieren
Schneide einen Kartonpfeil (6 × 1 cm). Schraube Servo-Horn auf S1, klebe Zeiger auf Horn. Optional: weitere Zeiger auf S2–S6 für vollständige Visualisierung.
Check: Mindestens S1 hat einen Zeiger für visülle Kontrolle
Tipp: Für diesen Mode reicht ein Zeiger auf S1 — die anderen lassen sich trotzdem steuern, nur ohne sichtbaren Ausschlag.
MODE 9 aktivieren
EasySensors → MODE 9. Display zeigt: Servo-Nummer (1–6), aktuellen Pulswert und 'EncBtn=next'. Joystick links/rechts bewegen: Pulswert ändert sich von 1000 bis 2000µs.
Check: Display zeigt 'SERVO DEMO', aktuell gewählter Servo (1–6) und Pulswert (1000–2000)
Tipp: Beim Start ist S1 ausgewählt. EncoderButton wechselt zu S2, S3, ... S6, dann wieder S1.
Servo auswählen und steuern
EncoderButton einmal drücken: Display zeigt 'Servo: 2'. JoystickX bewegen: S2 fährt. EncoderButton nochmal: 'Servo: 3' usw. So kann jeder der 6 Ausgänge einzeln getestet werden.
Check: EncoderButton drücken wechselt Servo-Nummer von 1 nach 2 nach ... 6 nach 1
Tipp: Jeder Servo behält seinen letzten Pulswert wenn zu einem anderen Servo gewechselt wird.
Sanfte Rückfahrt zur Mitte testen
Einen Servo auf Endstellung fahren (1000µs oder 2000µs). Dann JoystickButton drücken: der Servo fährt in 500ms sanft auf 1500µs zurück. Das ist ideal zum Kalibrieren der Nullstellung.
Check: JoystickButton drücken → aktiver Servo fährt weich in 500ms auf 1500µs
Tipp: startMove(servoNum, 1500, 500) ist eine sanfte Fahrt — der Servo bremst nicht abrupt, sondern gleitet zur Mitte.
Alle 6 Kanäle durchfirmen
Alle 6 Servos nacheinander auswählen und mit Joystick in beide Endstellungen fahren. Verhalten notieren: 180°-Servos haben mechanische Endanschläge, 360°-Servos drehen endlos. Nicht zu lange gegen Endanschlag drücken.
Check: Alle 6 Servo-Ausgänge reagieren auf Joystick-Eingabe
Tipp: S4 und S5 sind 360°-Servos — bei 1500µs stehen sie still, bei 1000 und 2000 drehen sie sich in verschiedene Richtungen.
Troubleshooting
- Servo dreht sich nicht obwohl Joystick bewegt wird — Prüfen ob der richtige Servo-Kanal ausgewählt ist (Display zeigt Nummer 1–6). Servo an dem ausgewählten Kanal angeschlossen?
- 360°-Servo dreht dauerhaft ohne Joystick-Eingabe — 360°-Servos (S4/S5) sind bei 1500µs im Idealfall still. Aber der Nullpunkt variiert ±30µs — JoystickButton drücken für Mittelstellung, dann prüfen ob der Servo wirklich stoppt.
- startMove (JoystickButton) funktioniert nicht sichtbar — startMove ist eine interne Animation — sie überschreibt nur wenn `!ismoving[servoNum]`. Wenn der Servo gerade ein laufendes startMove hat, wartet die neue Anfrage. Kurz warten dann erneut drücken.
Modifikationen & Sicherheit
- Pro-Tipp: Dieser Mode eignet sich perfekt zum Kalibrieren von Servo-Nullstellungen vor einem neun Bauprojekt.
- Erweiterung: Encoder (statt Joystick) für feinfühligere Pulswert-Einstellung nutzen — im Code `mapEncoder` für den Pulswert verwenden.
- Erweiterung: Pulswert auf dem Display ablesen und in den eigenen Code als feste Konstante übernehmen.
Wichtige Code-Teile
// EncoderButton wählt nächsten Servo (1→2→...→6→1)
static int selServo = 1;
static bool lastEncBtn2 = false;
if(isButtonPressed(EncoderButton, lastEncBtn2)) selServo = (selServo % 6) + 1;
// JoystickX setzt Pulswert des gewählten Servos
servocontroller.setServoPulse(selServo, mapJoystickX);
// JoystickButton → sanfte Rückfahrt zur Mitte in 500ms
if(JoystickButton) servocontroller.startMove(selServo, 1500, 500);
// Display: Servo-Nummer, Pulswert, Hinweis
updateDisplay("SERVO DEMO", 8, selServo, "Servo:", 1, 6, mapJoystickX, "Pulse:", 1000, 2000, 0, "EncBtn=next", 0, 0);Ähnliche Projekte
- MODE 1 — GYRO TRACK — Drei Servos spiegeln die Lage von ProtoPeaks in Echtzeit auf allen Achsen — kippe das Board, die Zeiger folgen sofort. Bei Neigung über 45° warnt der Buzzer.
- MODE 4 — JOYSTICK — Steuere zwei Servos direkt mit dem Joystick — mit eingebautem Deadzone-Filter für ruhige Nullstellung — und ein dritter Servo folgt automatisch dem Lichtsensor.
- MODE 3 — Der Nachahmer-Arm — Bewege den Arm von Hand in zwei oder drei Positionen und drücke jeweils eine Taste zum Merken — danach fährt er diese Positionen ganz von selbst im Kreis ab, immer wieder. Genau so lernen echte Industrieroboter ihre Handgriffe.