- Offizieller Beitrag
In den letzten Wochen hatte ich mich im Forum mit neuen Beiträgen etwas rar gemacht. Auch andere "Erwartungen" von euch bzgl. des Schriftführers im Verein mußte ich etwas zurückstecken. Der Grund ist, dass ich an einem neuen Konzept für die Kreuzmischerfunktion im Fahrtregler gearbeitet habe.
Der Thread von Alex mit seinem Eigenbau-Ant-Fahrtregler hat gezeigt, dass eine Parametrierung des Kreuzmischerverhaltens notwendig ist. Denn nur mit einer starren Zuordnung wird man beim Fahren nicht glücklich.
Entweder der Bot dreht auf der Stelle zu schnell oder schleicht dann bei der Kurvenfahrt nur einen ganz leichten Bogen, obwohl sich der Kreuzknüppel an der Funke schon durchbiegt, weil man auf Anschlag ist.
Ausschlaggebend für die neue Kreuzmischerfunktion war die Idee von Marien, dass bei einer Vollgas-Linkskurve der kurveninnere Motor 0% hat, gleichzeitig aber der kurvenäussere Motor von 100% auf 75% gedrosselt wird.
Alex hatte das über eine dreidimensionale Gleichung gelöst (... zumindest hatte ich das so in Erinnerung, hab's jetzt nicht mehr nachgelesen.
Die Mathematikvorlesungen sind bei mir ein Vierteljahrhundert mehr, ich komme mit den 3D-Gleichungen nicht mehr zurecht. Darum also auf die "Hausfrauenmethode" gelöst:
In Vorwärts- oder Rückwärtsrichtung gibt es immer eine bestimmte Geschwindigkeitsstufe. Die wird im ersten Ansatz für "fix" betrachtet. Wenn ich dann den Kreuzknüppel rechts oder links bewege, dann müssen sich die Motoren verändern. Dabei gibt es Begrenzungen. Also den Kreuzknüppel ganz links oder ganz rechts auf Anschlag. Diese Werte kann ich festlegen oder indirekt über eine lineare Gleichung ausrechnen.
Von diesem berechneten Wert bis zu dem fixen Wert (=Geradeausfahrt) besteht ein linearer Zusammenhang.
"Linear" bedeutet, dass es eine einfache Geradengleichung ist:
y = m*x +t
Netterweise ist "t" ja der Achsenabschnitt und den habe ich als "Vorwärtsfahrt-Punkt" schon gegeben. Geht es also um die Steigung "m".
Die berechne ich im PC-Programm und gebe sie an den Fahrtregler runter.
Für jeden Punkt der Vorwärtsrichtung muss ich jetzt eine eigene Steigung berechnen. Das ergibt also ein Kennlinienfeld. Nachdem das kurvenäussere und das kurveninnere Rad unterschiedlich reagieren sollen, muss ich also für beide Räder unterschiedliche Geradengleichungen berechnen und im Fahrtregler zwischenspeichern.
Langer Rede, schwacher Sinn: So sieht das im PC-Programm also mal aus:
Wenn das PC-Programm den Fahrtregler abfragt, weis ich anhand des Firmwaredatums, ob der Fahrtregler die neue Funktionalität schon kann. Dann wird die Kreuzmischerfunktion über lineare Gleichungen eingeblendet. Ansonsten nicht.
Im Mittelteil können die Parameter vorgegeben werden. Die drei Pfeile sollten dabei die Bewegungsrichtung von der Funke bzw. dem Kreuzmischer stilisieren.
Fangen wir oben an: Das linke Feld gibt an, wieviel der Prozentwert des kurveninneren Motors sein soll, wenn der Kreuzknüppel nach links-oben gedrückt ist.
Im zweiten Fenster wird angegeben, wie groß der Prozentwert des kurvenäusseren Motors ist, wenn der Kreuzknüppel nach links oben gedrückt ist.
Links unten gibt es auch zwei Felder, wobei hier nur das linke Feld für die Eingabe vorgesehen ist. Und zwar wird hier der Prozentwert des kurveninneren Motors angegeben, wenn auf der Stelle gedreht wird. In dem Beispiel also "-50%". (Selbstverständlich ist hier eine Korrektur des Vorzeichens eingebaut, denn bei einer Linksdrehung MUSS der linke Motor nach rückwärts drehen, sonst macht die Drehung auf der Stelle keinen Sinn.)
Das rechte Feld zeigt den Wert für das kurvenäussere Rad an. Allerdings ist der Wert identlisch zum kurveninneren Wert. Ich habe daher die Eingabe blockiert, der Wert wird automatisch vom kurveninneren Wert übernommen.
Bleicht noch rechts unten in der Grafik die einsame einstellige Zahl. Das ist der Startindex für die Lenkung. Wenn der Kreuzknüppel nicht exakt 1.50ms in seiner Nullposition liefern würde, dann würden die Motoren immer ein kleines bißchen versuchen wegzulaufen bzw. den Bot zu drehen. Das Geräusch nervt, ausserdem kostet es unnötig Strom. Also ist hier der Index vorgegeben, wann die Lenkung aktiv werden darf. In diesem Fall ab dem Index 2.
Der Bereich von "Standgas" auf "Vollgas" umfasst bekanntermasen ±0.5ms. Die 0.5ms unterteilt der Fahrtregler in 30 Schritte für die Ansteuerung der Motoren. Bei dem Index 2 werden also Toleranzen von ca. 35µSek korrigiert. Für die Eingabe ist ein maximaler Index von 9 möglich.
Es gibt noch den Checkbutton "Default". Wenn der aktiviert ist, dann wird auf die übergebenen Parameter, die man vorher definiert hat, gepfiffen. Im Fahrtregler gibt es einen Auslieferzustand (Drehung 50%; Vollgas links/rechts = 0%/75%). Der wird dann angewendet.
Bleibt noch der untere Block:
Der hat mit der Kreuzmischerfunktion eigentlich nichts zu tun. Er dient einzig und alleine dazu, den aktuellen Status von den beiden Eingangskanälen abzufragen. Dazu dann die aktuelle Ansteuerung der beiden Fahrmotoren.
Die Größen hatte ich gebraucht, um den Kreuzmischer entwickeln bzw. überwachen zu können. Ich lass das jetzt mal drin, damit man auch jetzt noch z.B. die Funke optimal auf die Nullstellung einstellen kann.
Jedesmal, wenn der Button "Aktualisieren" gedrückt wird, erfolgt eine Abfrage der aktuellen Werte des Fahrtreglers.
Die neue Software habe ich jetzt endlich nach wochenlanger Arbeit (bzw. Fehlersuche mit der Datenübergabe, das hat mich eineinhalb Wochen gekostet) soweit fertig, dass Licht am Ende des Tunnels zu sehen ist. Ein paar Kinderkrankheiten sind noch drin (z.B. dass meine Eingabebegrenzung von maximal 100% irgendwie dafür sorgt, dass bei der Berechnung dann 100& nicht möglich sind. 98% dagegeben schon, usw...). ABer egal. Ich poste das jetzt mal, um auf die Neuerung aufmerksam machen zu wollen.
Aktuell ist diese lineare Kreuzmischerfunktion im Fahrtregler4_1 einthalten. Bekannterweise hat auch der Fahrtregler4_2 (nur Fahrmotoren, keine Endstufe für die Waffenansteuerung) die gleiche Firmware enthalten.
Wer von euch also einen Fahrtregler4_1 oder Fahrtregler4_2 hat, der kann ihn mir zuschicken und ich programmiere den Update mit rein.
@Bot-fan/Replikator: Ihr habt einen PIC-Programmer. Ich schick' euch die Firmware zu, dann könnt ihr eure Fahrtregler selber updaten.
@Mario/Leo: Ich habe euch einen Fahrtregler4_2 zum Testen geliehen. Wenn ich den Fahrtregler in den nächsten zwei Wochen bei mir vorliegen habe, dann kann ich auch hier die neue Firmware einprogrammieren und ich schicke den Regler zu euch zurück. Limit ist aber der 24.08.2013. Ab da ist dann Urlaub und ich bin mit Tina unterwegs. Wir kommen auch erst kurz vor MMMV16 zurück, ein Firmwareupdate geht nicht mehr.
@Carlijn/Marien: Ist Euer Fahrtregler schon im Einsatz? Wenn nicht, bringst Du ihn zu MMMV16 mit, ich aktualisiere den Fahrtregler und schicke ihn dann wieder zu Euch. (Carlijn, ich habe ohnehin noch einen Akku von Dir )
Ich habe hier von Bat_Boy und Flatliner noch ein paar Fahrtregler3_1 liegen. Auch hier möchte ich die neuen Funktionalitäten integrieren, das dauert jetzt halt noch ein paar Tage. Aber die Neuerung ist der Grund dafür, dass ich eure Fahrtregler noch nicht zurückgeschickt habe.
Soweit mal zur Info. ;