MODE 4 — YAW HOLD
Medium · 1h · Fast kostenlos
Ziel & Anwendung
Dein Fahrzeug hält automatisch seinen Kurs! Ein Fingertipp auf die Touch-Fläche speichert die aktuelle Ausrichtung als Soll-Kurs, der Kompass-Sensor erkennt jede Abweichung und der Antrieb lenkt sanft gegen. Drei Zeiger zeigen live Lenkausschlag, Soll-Kurs und Ist-Kurs.
- PI-Regelkreis für Heading-Hold (Kurs-Halten) mit dem Gyroskop implementieren
- ±180°-Winkel-Wrap-Around im Fehler korrekt behandeln
- Teach-In Funktion per Fingertipp für Soll-Kurs-Speicherung realisieren
Anschluss & Funktion
Motoren am Board
| Anschluss | Motor | Aufgabe |
|---|---|---|
| S1 | 180°-Servo | Lenkausschlag-Anzeige |
| S2 | 180°-Servo | Soll-Kurs-Markierung |
| S3 | 180°-Servo | Ist-Kurs-Anzeige |
| S4 | 360°-Servo | Antrieb links — Kurskorrektur |
| S5 | 360°-Servo | Antrieb rechts — Kurskorrektur |
| S6 | 180°-Servo | Kursabweichungs-Fähnchen |
| STEPPER | Schrittmotor | Kursabweichungs-Skala |
| DC | DC-Motor | Vibrationswarnung bei starker Abweichung |
Materialliste
- Fahrzeug-Chassis aus vorherigen Projekten (oder Schuhkarton-Neubau)
- Kartonpfeil als Richtungs-Markierung oben auf dem Chassis
- Kompass-Skala aus Papier (N/S/O/W) unter dem Pfeil
- Heißkleber
Step-by-Step Tutorial
Fahrzeug und Kompass-Anzeige aufbauen
Baue oder nutze ein vorhandenes Fahrzeug-Chassis mit S4/S5-Differentialantrieb. Klebe eine Kompass-Skala (Papier) oben auf das Chassis. Befestige einen Kartonpfeil mittig in Fahrtrichtung. S1 als Lenkwinkel-Anzeige neben der Skala.
Check: Kartonpfeil zeigt klar die Fahrtrichtung, Kompass-Skala ist lesbar
Tipp: Pfeil muss in Richtung des Ultraschall-Sensors zeigen — nicht qür dazu
Teach-In Funktion mit der Touch-Fläche
Richte das Fahrzeug in die gewünschte Fahrtrichtung aus und tippe die Touch-Fläche an: Die aktuelle Ausrichtung wird als Soll-Kurs übernommen. Ab dann hält der Regler genau diesen Kurs. S2 zeigt den Soll-Kurs als Markierung auf der Kompass-Skala.
Check: Antippen der Touch-Fläche speichert die aktuelle Ausrichtung als Zielwert
Tipp: Das Gyroskop liefert die aktuelle Ausrichtung direkt — kein Warten nötig, der Zielkurs steht sofort fest
±180°-Wrap-Around behandeln
Der Kurs-Fehler wird immer auf den kürzesten Drehweg umgerechnet, nie über den langen Umweg um den ganzen Kompass herum.
Check: Wenn das Fahrzeug von knapp unter zu knapp über der Kompass-Nullmarke dreht, wird kein Sprung-Fehler berechnet
Tipp: Ohne diese Korrektur würde das Fahrzeug genau an der Nordmarke des Kompasses kurz in die falsche Richtung gegensteuern
PI-Regler und Antrieb koppeln
Beide Antriebsservos erhalten denselben Korrekturwert, wodurch sich das Fahrzeug in die passende Richtung eindreht. S1 zeigt den aktuellen Korrekturausschlag.
Check: Fahrzeug korrigiert sanft, wenn es vom Kurs abweicht
Tipp: Weicht das Fahrzeug lange in eine Richtung ab, baut sich zusätzlich zur sofortigen Korrektur ein aufsummierter Nachdreh-Anteil auf
Leichtgängigkeitstest und Heading-Hold-Test
Alle Räder manuell drehen — kein Widerstand. Erst dann Strom einschalten und Touch-Fläche antippen (Kurs speichern). Fahrzeug manuell um ein Stück verdrehen: der Antrieb muss korrigierend gegensteuern. Loslassen: Fahrzeug kehrt auf Kurs zurück.
Check: Fahrzeug dreht sich von alleine zurück, wenn es manuell vom Kurs gebracht wird
Tipp: Gyro-Drift über lange Betriebszeit: Touch-Fläche einfach erneut antippen zum Neu-Einmessen
Troubleshooting
- Fahrzeug dreht immer weiter in eine Richtung — Touch-Fläche erneut antippen — der Zielkurs wird direkt aus der aktuellen Ausrichtung neu gesetzt
- Kurs driftet auch im Stillstand — Fahrzeug für ein paar Sekunden ruhig hinstellen und danach neu einmessen (Touch-Fläche antippen)
- Kurs-Korrektur beginnt erst bei großer Abweichung — Kleinere Abweichungen testen — die Korrektur setzt bereits ab wenigen Grad Unterschied sanft ein
Modifikationen & Sicherheit
- Pro-Tipp: Mehrere gespeicherte Kurse per Dreh-Regler durchschalten
- Pro-Tipp: Fahrgeschwindigkeit unabhängig überlagern — Heading-Hold läuft bei jedem Tempo
- Sicherheit: Gyro-Drift bei langen Fahrten — periodisches Neu-Einmessen per Touch-Fläche empfohlen
Wichtige Code-Teile
// Teach-In: Touch-Fläche übernimmt aktuelle Ausrichtung als Ziel
if (isButtonPressed(touch1, lastTouch1)) { targetYaw = GyroZ; integYaw = 0; }
float errYaw = targetYaw - GyroZ;
// Kürzesten Drehweg über die ±180°-Grenze wählen
while (errYaw > 180.0f) errYaw -= 360.0f;
while (errYaw < -180.0f) errYaw += 360.0f;
integYaw = constrain(integYaw + errYaw * dt, -30.0f, 30.0f);
float yawCtrl = constrain(errYaw * 6.0f + integYaw * 1.0f, -400.0f, 400.0f);
// Antrieb: beide Servos erhalten denselben Korrekturwert
servocontroller.setServoPulse(4, constrain(1500 + (int)yawCtrl, 1000, 2000));
servocontroller.setServoPulse(5, constrain(1500 + (int)yawCtrl, 1000, 2000));
// Anzeigen
servocontroller.setServoPulse(1, constrain(1500 + (int)yawCtrl / 2, 1000, 2000));
servocontroller.setServoPulse(2, map(constrain((int)targetYaw, -180, 180), -180, 180, 1000, 2000));
servocontroller.setServoPulse(3, mapGyroZ);
// Kursabweichungs-Fähnchen + Vibrationswarnung
servocontroller.setServoPulse(6, errYaw > 2 ? 2000 : (errYaw < -2 ? 1000 : 1500));
setMotorspeed(abs(errYaw) > 30 ? 40 : 0);Ähnliche Projekte
- MODE 3 — DIST HOLD — Dein Karton-Fahrzeug hält automatisch Abstand! Ein Ultraschall-Sensor misst die Entfernung zum vorausfahrenden Objekt, die beiden Antriebsräder bremsen oder beschleunigen automatisch dagegen. Eine Berührungsfläche oder die Steuerknüppel-Taste lösen jederzeit einen sofortigen Notfall-Stopp aus.
- MODE 8 — SEGWAY — Der heilige Gral der Robotik aus Karton! Ein Neigungsregler liest den Kippwinkel und steuert die beiden Antriebsräder genau entgegen — so bleibt der Roboter aufrecht, ganz wie ein echter Segway. Der Dreh-Knopf gleicht kleine Bauungenauigkeiten aus, bei zu starker Neigung schaltet der Roboter zum Schutz automatisch ab.
- MODE 7 — GIMBAL — Steuere einen Gimbal aus zwei verschiedenen Quellen — und wechsle live zwischen ihnen! Eine Berührungsfläche schaltet auf den Bewegungssensor (Kopfbewegung nachahmen), die andere auf den Steuerknüppel. Eine starke Glättung sorgt für butterweiche Übergänge, zwei Anzeige-Servos zeigen, welche Quelle gerade aktiv ist.