MODE 6 — CRUISE

Medium · 1h 30 min · Fast kostenlos

Ziel & Anwendung

Encoder stellt eine konstante Ziel-Geschwindigkeit ein — das Auto hält diesen Kurs ohne Joystick-Halten. Joystick X lenkt weiterhin, EncoderButton setzt Speed zurück auf Null.

  • Encoder als permanenten Geschwindigkeits-Setpoint-Regler nutzen.
  • Konstante Sollwertvorgabe mit überlagerter Lenksteuerung kombinieren.
  • Cruise-Reset-Logik per Tastendruck implementieren.

Anschluss & Funktion

Motoren am Board

AnschlussMotorAufgabe
S1180°-ServoLenkung — Joystick X
S2180°-ServoHeckspoiler — Winkel steigt mit der Ziel-Geschwindigkeit
S3180°-Servo„On Target“-Fähnchen — schaltet um, sobald Zielgeschwindigkeit erreicht ist
S4360°-ServoAntrieb links — hält die Cruise-Geschwindigkeit
S5360°-ServoAntrieb rechts — hält die Cruise-Geschwindigkeit
S6180°-ServoBremsklappe — klappt beim Zurücksetzen kurz hoch
STEPPERSchrittmotorZeiger auf einer Skala — zeigt den Sollwert
DCDC-MotorFrontpropeller — dreht passend zur Ziel-Geschwindigkeit mit

Materialliste

  • Chassis wie MODE 1 (Karton, S4/S5 Antrieb, S1 Lenkung)
  • Ausreichend freie Fahrbahn für geradeaus-Tests

Step-by-Step Tutorial

  1. Chassis aufbauen (identisch MODE 1)

    Chassis identisch zu MODE 1 aufbauen. ProtoPeaks fest montieren. Räder leichtgängig testen.

    Check: Chassis stabil, S4/S5 Antrieb, S1 Lenkung montiert

    Tipp: Wenn MODE 1-Auto bereits existiert direkt weiterverwenden — nur Mode wechseln.

  2. Leichtgängigkeits-Test

    Auto auf Boden stellen und schieben. Müssen leicht rollen. Dann ProtoPeaks einschalten.

    Check: Auto rollt frei auf Boden, kein Widerstand

    Tipp: Cruise Control funktioniert nur gut wenn das Auto gleichmäßig läuft — kein Hakeln.

  3. MODE 6 aktivieren — Cruise Speed setzen

    Autos → MODE 6. Encoder langsam nach rechts drehen: cruiseSpd steigt, Auto fährt vorwärts. Weiter drehen: schneller. Encoder nach links: langsamer / rückwärts. Joystick X lenkt weiterhin unabhängig.

    Check: Encoder drehen erhöht/senkt cruiseSpd (−300 bis +300). Display zeigt Set-Wert.

    Tipp: Jede Encoder-Raste = ±5 µs Geschwindigkeits-Offset. 300 Schritte = ca. 60% Vollgas.

  4. Cruise-Reset testen

    Bei fahrendem Auto: EncoderButton drücken → cruiseSpd = 0 → Auto stoppt sofort. Encoder erneut drehen um Fahrt wieder aufzunehmen.

    Check: EncoderButton drücken setzt cruiseSpd sofort auf 0 — Auto stoppt

    Tipp: Ideal als Notbremse beim Cruise-Control-Test. Immer erreichbar halten.

  5. Zusatz-Anzeigen anbringen

    Baue einen Heckspoiler, dessen Winkel mit der Ziel-Geschwindigkeit steigt, ein Fähnchen, das umschaltet sobald die Zielgeschwindigkeit erreicht ist, eine Bremsklappe beim Zurücksetzen und einen Skalen-Zeiger für den Sollwert.

    Check: Heckspoiler, „On Target“-Fähnchen, Bremsklappe und Skalen-Zeiger bewegen sich frei

  6. Lenken während Cruise testen

    Cruise-Speed auf ca. 150 einstellen. Auto fährt geradeaus. Joystick X langsam nach rechts: Auto biegt ab ohne Geschwindigkeit zu ändern. Joystick zurück zur Mitte: Auto fährt wieder geradeaus.

    Check: Joystick X lenkt das Auto während Cruise-Speed gehalten wird

    Tipp: Lenkung ist additiv: cruiseSpd bleibt konstant, Steering-Wert wird dazu addiert/subtrahiert.

Troubleshooting

  • Auto fährt bei 0 cruiseSpd trotzdem langsam — 360°-Servo-Nullpunkt variiert. Deadzone auf 1500µs kalibrieren oder applyDeadzone für cruiseSpd einsetzen.
  • Encoder dreht aber cruiseSpd ändert sich nicht — EncoderPos-Variable wird in jedem Frame nach der Verwendung auf 0 zurückgesetzt. Sehr schnelles Drehen zwischen zwei Updates (250ms) kann Inkremente verlieren.

Modifikationen & Sicherheit

  • Pro-Tipp: Encoder-Schrittgröße von 5 auf 10 erhöhen für schnellere Speed-Einstellung.
  • Erweiterung: Ultraschall-Sensor als automatische Notbremse einbinden — bei Hindernis < 30 cm: cruiseSpd = 0.
  • Erweiterung: Minimale Cruise-Geschwindigkeit von 0 auf 50 setzen — verhindert unbeabsichtigtes Rückwärtsfahren.

Wichtige Code-Teile

// Encoder stellt konstante Ziel-Geschwindigkeit
static int cruiseSpd = 0;
cruiseSpd = constrain((int)(cruiseSpd + EncoderPos * 5), -300, 300);
EncoderPos = 0;
if(EncoderButton) cruiseSpd = 0; // Reset auf Null
// Cruise + Lenkung kombiniert
uint16_t cL = constrain(1500 + cruiseSpd + steering, 1000, 2000);
uint16_t cR = constrain(1500 - cruiseSpd + steering, 1000, 2000);
servocontroller.setServoPulse(1, map(constrain((int)JoystickX, 0, 4095), 0, 4095, 1100, 1900));
servocontroller.setServoPulse(4, cL);
servocontroller.setServoPulse(5, cR);

Ähnliche Projekte

  • MODE 1 — RC-CAR — Dein Karton-Flitzer mit allem Drumherum: Der Steuerknüppel gibt Gas und lenkt, während Heckspoiler, Kurvenlicht und Bremslicht wie bei einem echten Sportwagen ganz von allein mitspielen. Die Animation oben zeigt, wie die beiden Antriebsräder Gas und Lenkung mischen — genau dieses Auto rollt gleich durch dein Wohnzimmer.
  • MODE 7 — PRECISION — Der Stepper-Motor ermöglicht millimetergenaus Vor- und Rückwärtsfahren per Joystick — S1 lenkt, S4/S5 stehen still. EncoderButton setzt die Nullposition zurück.
  • MODE 2 — GYRO DRIVE — Steck den Steuerknüppel weg — hier lenkst du, indem du die ganze Fernsteuerung kippst: nach vorne lehnen gibt Gas, zur Seite neigen dreht das Auto auf der Stelle. Die Animation oben zeigt, wie aus deiner Handbewegung Fahrbewegung wird.