MODE 3 — DIST HOLD

Medium · 1h · Fast kostenlos

Ziel & Anwendung

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.

  • PD-Regelkreis für Distanzregelung implementieren
  • Differentialantrieb als geregelte Ausgabe nutzen
  • Notfall-Stopp-Logik mit höchster Priorität realisieren

Anschluss & Funktion

Motoren am Board

AnschlussMotorAufgabe
S1180°-ServoFahrgeschwindigkeits-Zeiger
S2180°-ServoSoll-Abstand-Markierung
S3180°-ServoIst-Abstand-Anzeige
S4360°-ServoAntrieb links
S5360°-ServoAntrieb rechts
S6180°-ServoNot-Stopp-Fähnchen
STEPPERSchrittmotorZielabstands-Skala
DCDC-MotorKurze Vibration beim Auslösen des Not-Stopps

Materialliste

  • Fahrzeug-Chassis aus vorherigen Projekten oder neuer Schuhkarton-Bau
  • Karton als Vorderstoßstange (Ultraschall-Halterung)
  • Strohhalme als Radachsen-Lager
  • Gummibänder für griffige Räder
  • Heißkleber

Step-by-Step Tutorial

  1. Fahrzeug-Chassis und Antrieb aufbauen

    Baue ein Schuhkarton-Chassis oder nutze ein vorhandenes. Montiere S4 (360°-Servo) links und S5 rechts. Plastik-Servo-Hörner aufschrauben, Kartonräder flächig aufkleben. Gummibänder für Grip. Test: beide auf gleichen Puls → fährt geradeaus ohne Drift.

    Check: Fahrzeug fährt geradeaus wenn beide 360°-Servos gleiche Geschwindigkeit haben

    Tipp: S4/S5-Servo-Hörner als Radnaben: Horn aufschrauben, Kartonrad flächig aufkleben

  2. Ultraschall-Sensor für Distanzmessung montieren

    Befestige den Ultraschall-Sensor vorne, ca. 5 cm über dem Boden. Zieldistanz per Dreh-Regler einstellbar zwischen 10 cm und 80 cm. S2 zeigt die Soll-Distanz als Markierung, S3 die aktuelle Ist-Distanz.

    Check: Sensor misst konsistent die Distanz zum Objekt vor dem Fahrzeug

    Tipp: Sensor leicht nach oben neigen (ca. 5°) damit kein Boden-Echo als Hindernis erkannt wird

  3. PD-Regler für Distanz implementieren

    Ist das Fahrzeug weiter als die Zieldistanz entfernt, fährt es vorwärts. Ist es zu nah, fährt es zurück — die Geschwindigkeit richtet sich nach der Größe des Abstandsfehlers und wie schnell er sich ändert. S1 zeigt die aktuelle Fahrgeschwindigkeit als Zeiger.

    Check: Fahrzeug nähert sich dem Zielabstand, ohne stark zu überschwingen

    Tipp: P-Gefühl zu groß = Fahrzeug pendelt vor und zurück, D-Gefühl reduziert dieses Pendeln

  4. Notfall-Stopp mit höchster Priorität einbauen

    Touch-Fläche antippen oder Steuerknüppel-Taste drücken → beide Antriebsservos stoppen sofort, das Not-Stopp-Fähnchen (S6) klappt aus und eine kurze Vibration am Rüttel-Motor bestätigt den Stopp. Erst Loslassen startet die Regelung neu.

    Check: Touch-Fläche oder Steuerknüppel-Taste → sofortiger Stopp beider Antriebsservos, Fähnchen S6 klappt aus

    Tipp: Der Not-Stopp wird vor allen anderen Berechnungen geprüft und überschreibt sie

  5. Leichtgängigkeitstest und Parameter-Tuning

    Fahrzeug vor ein Objekt stellen (ca. 30 cm). Alle Räder manuell drehen — kein Widerstand. Erst dann Strom einschalten. Objekt langsam wegbewegen: Fahrzeug folgt. Näher heranführen: Fahrzeug bremst. Dreh-Regler verstellen: Zieldistanz ändert sich, Fahrzeug passt sich an.

    Check: Fahrzeug folgt dem Zielobjekt gleichmäßig mit konstantem Abstand

    Tipp: Erst P-Gefühl erhöhen bis leichtes Schwingen, dann D-Gefühl erhöhen bis es stabil bleibt

Troubleshooting

  • Fahrzeug pendelt vor und zurück — Zieldistanz etwas größer wählen und Objekt gleichmäßiger bewegen — starkes Pendeln tritt vor allem bei ruckartigen Abstandsänderungen auf
  • Fahrzeug reagiert zu langsam auf Abstandsänderungen — Ultraschall-Sensor exakt nach vorne ausrichten — schräger Einbau verfälscht die Distanzmessung und verzögert die Reaktion
  • Notfall-Stopp reagiert nicht sofort — Touch-Fläche und Steuerknüppel-Taste sauber freilegen — Kartonreste oder Kleberreste können den Kontakt blockieren

Modifikationen & Sicherheit

  • Pro-Tipp: Zweiten Ultraschall-Sensor hinten montieren für bidirektionalen Abstandstempomat
  • Pro-Tipp: Encoder wählt zwischen Fahrmodi: folgen/halten/flüchten
  • Sicherheit: Nur auf ebenem Untergrund testen — Stufen und Steigungen führen zu unkontrollierten Fahrten

Wichtige Code-Teile

// Zieldistanz per Dreh-Regler (10–80 cm)
targetD = constrain(targetD + EncoderPos * 1.0f, 10.0f, 80.0f);
EncoderPos = 0;

// PD-Regler
float err2 = distanceCM - targetD; // positiv: zu weit weg -> vorwärts
float dErr2 = (err2 - lastErrD) / dt;
lastErrD = err2;
float ctrl2 = constrain(err2 * 4.0f + dErr2 * 0.8f, -300.0f, 300.0f);

// Not-Stopp: höchste Priorität
bool estop2 = touch1 || RemoteJoystickBtn;
if (estop2) ctrl2 = 0;

// Differentialantrieb
servocontroller.setServoPulse(4, constrain(1500 + (int)ctrl2, 1000, 2000));
servocontroller.setServoPulse(5, constrain(1500 - (int)ctrl2, 1000, 2000));

// Anzeigen
servocontroller.setServoPulse(1, constrain(1500 + (int)ctrl2 / 2, 1000, 2000));
servocontroller.setServoPulse(2, map(constrain((int)targetD, 10, 80), 10, 80, 1000, 2000));
servocontroller.setServoPulse(3, mapDistanceCMshort);

// Not-Stopp-Fähnchen + kurze Vibration
servocontroller.setServoPulse(6, estop2 ? 2000 : 1000);
setMotorspeed(estop2 ? 60 : 0);

Ähnliche Projekte

  • 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 4 — YAW HOLD — 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.