Hallo Volker,
gerne – ich bin ein ziemlicher „Schlumpf“ in Sachen Dokumentation … . Hatte gestern auch extrem wenig Zeit und wollte unbedingt die „direkte Motorsteuerung“ noch schnell ausprobieren.
Die Regelung ist ganz einfach – und soll es nach Möglichkeit auch bleiben. Es steht halt noch viel Programm-Code drin, der mit der eigentlichen Regelung nichts zu tun hat. Aus meiner Sicht wichtig sind folgende Punkte:
1. Ermittlung der Minimal- (…Bahn…) und Maximal- (…Feld…) Werte der Sensoren (Kalibrierung) – und zwar getrennt für jeden
Sensor (…_r_... und …_l_...) da diese – zumindest bei mir – unterschiedliche Werte liefern.
2. Ermittlung eines Schwellwertes pro Sensor für die Bahn-Erkennung. Der ist für die Regelung nicht von Bedeutung – aber für
die LED’s, welche die Abweichung von der Bahn anzeigen sollen. Habe in der letzten Version 110% des Minimal- (…Bahn…) Wertes
angesetzt. Scheint ein ganz vernünftiger Wert zu sein.
3. Definition eines „Brems-Reglers“. Wie geschrieben soll der Nibo2, bei Abweichung von der Fahrbahn, auf dem jeweils
gegenüberliegenden Rad (zur Abweichungs-Seite) abgebremst werden. Das kann man „binär“ (Versuch 1 mit einem festen Wert)
oder variabel (alle Folge-Versuche) machen. Aktuell habe ich (das resultiert noch aus der „Aufschaukelei“ durch den PID-
Regler) versucht die Bremskraft „überproportional“ zur Abweichung zu berechnen. Heisst, je größer die Abweichung, desto
vielfach größer die Bremskraft.
Dazu multilpiziere ich die Abweichung (gemessener Sensorwert ./. kalibrierter Sensorwert auf der Bahn) mit sich selbst.
Damit ich eine Bezugsgröße habe (= 100% Bremskraft) errechne ich die maximale Abweichung zwischen den kalibrierten Werten,
mulitpliziere diese mit sich selbst (teile noch durch 50 da sonst der Wert zu groß wird und das Feld „sprengt“) und nehme
den Wert als 100% an. (Versuche ich im Laufe der Woche noch im Programm deutlich zu machen. Werde auch allen „Ballast“
entfernen und in Funktionen auslagern)
4. Einsetzen des errechneten Brems-Wertes. Dieser wird einfach von der Start-Geschwindigkeit abgezogen. Negative Werte habe ich
erstmal ausgeschlossen.
Das ist alles recht primitiv und sicher verbesserungsfähig. Aber – funktioniert erstmal. Die bei Dir noch relativ starken Schlenker konnte ich so nicht beobachten (ist bei mir ganz moderat). Ich gehe daher davon aus, dass die Fahrbahnbreite dafür verantwortlich ist (bei mir 5 cm).
Werde als nächste Näherung die Fahrbahnbreite auf 3,5 oder 4 cm verringern (malen …).
Parallel reizt mich die „Isolierband-Lösung“ doch erheblich – ich gehe davon aus, dass mit der aktuellen primitiven Regelung auch das zu schaffen ist.
Leider hat sich mein Eigenbau-Funkmodul entschlossen, einen mir unbekannten Verschlüsselungs-Algorithmus einzusetzen
. Ich bekomme nur noch Nullen geliefert, was eine Auswertung doch arg erschwert.
Hat jemand ein Funkmodul und eine Tapeten-Arena und kann die Werte für eine Runde mal zur Verfügung stellen (Sensor links, Sensor rechts, Geschwindigkeit links, Geschwindigkeit rechts) ? Würde mich heftig interessieren…]
@Achim: Ich will da eher gar nichts vorgeben. War nur ein Vorschlag, die unterschiedlichen Reflektionswerte mal zu untersuchen und auf diese Weise vielleicht optimale Materialien für eine spätere Bahn-Version zu finden. Vielleicht hast Du auch Lust, die Ergebnisse mal zusammenzufassen und aufzuarbeiten (Du schreibst doch gerne Tutorials ?) oder an einer LCD-Ausgabe zu arbeiten (Volker hat da schon angefangen) oder …
Ich habe auch noch einen weiteren Vorschlag für jemanden, der nicht 2 linke Hände hat wie ich (ich bin eher Grob-Motoriker – was ich bastle funktioniert zwar oft, sieht aber nicht gerade Profi-mässig aus). Ich habe in einer Schüler-Arbeit einen super-Hinweis gefunden, wie die Genauigkeit der Sensoren deutlich erhöht und der Fremdlicht-Einfluss stark verringert werden kann. Wer meinen „Frust_Thread“ kennt weiß, dass ich mich über den zu großen Abstand vom Boden schon mockiert habe. Die Lösung: Einfach kleine Röhren (rund oder eckig) über die Sensoren stülpen (innen möglichst hell – z.B. Alu) und bis ca. 0,5 cm (?) über Boden gehen lassen. Die Schüler haben das einfach mit Papier-Streifen gemacht. Kann das mal jemand probieren und die Erfahrungen berichten?
Genug geschrieben – muss auch noch arbeiten …
Gruß
Dieter