- Official Post
Hallo Roboteer-Gemeinde,
nach monatelanger Entwicklungszeit ist heute mal ein Stand erreicht, wo ich euch mein derzeitiges Prunkstück zeigen möchte.
Im Prinzip war es von Uwe (Team Hellfire) ein Entwicklungsauftrag. Wunschvorgabe:
1)
Die H-Brücke für den Waffenkanal muss nicht nur schalten, sondern auch mit einer Pulsweitenmodulation versehen werden können (also wie ein normaler Antriebsmotor stufenlos regelbar sein)
2)
Zwei zusätzliche Schaltkanäle, um ein paar Sachen schalten zu können.
Zu1)
Da war der bisher verwendete Mikrocontroller am Ende, mir fehlte ein PWM-Ausgang. Als Folge mußte eine neue Generation von Mikrocontrollern verwendet werden. Hatte zur Folge, dass ich mit dem, was das Ding alles kann, zunächst ganz schön gefordert war. Die Dokumentation umfasste einen prall gefüllten A4-Ordner.
Trotzdem wollte ich die bisherige Funktionalität des Waffenausgangs nicht aufgeben, sollte also für Schlagwaffen weiterhin mit einer Schaltfunktion benutzbar sein.
Dann kamen ja die neuen Wünsche von euch dazu, dass z.B. der Antrieb nur in einer Richtung funktioniert (wegen der Ansteuerung bei der Funke über den Schalter und nicht über den Kreuzknüppel). Oder dass eine zuverlässige Zeitsteuerung eingebaut ist, die dann nach dem Abschalten nicht die Bremse einschaltet, sondern die Schlagwaffe ungebremst dem Gegner drüberbrät.
Zu 2)
Solche Schaltausgänge gab's bei den Vorgänger-Fahrtreglern schon einmal. (Fahrtregler3_1 war derjenige, der das schon konnte und wo eigentlich alle ganz zufrieden damit waren).
Vor ein paar Wochen hatten wir im Tsunami-Thread ein bißchen diskutiert, wie denn die Pneumatik-Ansteuerung in Zukunft am Besten funktionieren könnte. Diese Vorschläge und Erkenntnisse sind nicht ganz ohne Einfluss auf die aktuellen Version der Software geblieben. Im Prinzip ist das, was in die zukünftige Waffensteuerung für Tsunami hineinmuss, im Fahrtregler4_3 schon verwirklicht.
Aber jetzt mal konkret:
Die Hardware ist soweit zusammengebaut, dass ich damit mal die Software entwickeln konnte. Bei MMMV14 hatte ich sie schon mal zur Ansicht dabei. Ok, viele haben aufgeschrieen "viel zu groß!", aber nachdem es der erste Wurf ist und ich die Baugruppe in Absprache mit Uwe so groß bauen durfte, lasse ich das erst mal.
(Größe ist übrigens 128 x 58mm)
Hier die Baugruppe ohne die ganzen Elkos und ohne Kühlkörper:
Es gibt also die beiden Ausgänge für die Fahrmotoren, eine H-Brücke Out1 als Waffenausgang (Schlagwaffe oder Spinner) und zwei Schaltausgänge Out2 Out3 für Pneumatikwaffen.
Zunächst mal die Parametrierungsmöglichkeiten für die beiden Antriebsmotoren:
Hier hat sich im Vergleich zu den beiden anderen 4er-Varianten nicht viel getan. Die beiden Empfängereingänge steuern entweder in der Panzersteuerung direkt die beiden Motoren oder es erfolgt die Umrechnung über einen Kreuzmischer, wobei die Anteile der Lenkung individuell eingestellt werden können. (Ein Vierrad-Antrieb braucht einen höheren Anteil als ein etwas nervöser reagierender Zweirad-Antrieb).
Es gibt eine einstellbare Stotterbremse. Hier kann je nach Motorgröße optimiert werden, ob der Motor "etwas sportlicher" anhält oder ein bißchen mehr Zeit bis zum Stillstand zur Verfügung stehen darf. Die optimale Einstellung muss jeder für seinen Antrieb herausfinden. Ich habe hier in der Default-Einstellung zwei Parameter gewählt, wo normale Akkuschraubermotoren mit Planetengetriebe sehr zügig anhalten und trotzdem nicht allzuviel Funken am Kollektor des Motors entstehen.
Eine Änderung gibt es hier aber: Nachdem der neue Mikrocontroller einen zusätzlichen Timer zur Verfügung stellt, werden die Bremszeiten jetzt sehr reproduzierbar eingehalten. Jeder Bremspuls dauert exakt 2ms. Danach ist Pause. Die Länge der Pause kann jeder selbst einstellen und beträgt ein Vielfaches von 2ms.
In der Defaulteinstellung werden also 5 Bremspulse mit je 2ms Länge erteilt, die jeweils 10ms auseinanderliegen.
Wenn bei der Anzahl der Bremspulse eine "0" eingegeben wird, dann wird keine Stotterbremse ausgeführt. Die Motoren werden dann sofort beim Abschalten sehr brutal kurzgeschlossen. Also Vollbremsung.
Dann kommen wir zu der H-Brücke für die Waffe:
Hier hat sich jetzt einiges Neues getan.
Zunächst gibt es die Standardfunktion, die schon immer enthalten war. Angesteuert von einem Kreuzknüppel der Fernsteuerung schaltet der Kanal vorwärts oder rückwärts, je nach ausgelöster Knüppelstellung.
Neu ist eine zweifach unterscheidbare Zeitbegrenzung. Als Basiszeit kann entweder 2ms oder 130ms gewählt werden. Einstellbar ist der zugehörige Faktor zwischen 1 und 255.
Wer also eine Schlagwaffe ohne Endlagenschalter auslösen will, der sollte z.B. die Basis 2ms und den Faktor 200 wählen. Der Waffenmotor wird dann in beiden Richtungen für 400ms angesteuert.
Wer eine Schlagwaffe mit Endlagenschalter verwendet, der braucht die Zeitbegrenzung normalerweise nicht. Wie aber unsere Theaterbot Thor einmal bewiesen hat, kann das Getriebe des Waffenmotors kaputt gehen. Der Motor wurde damals kontinuierlich angesteuert und blockierte aber. Somit wurde ständig der Waffenkanal im Kurzschlussbetrieb gehalten. Sehr schädlich für die Leiterbahnen, wo dann das Lötzinn schmolz und abtropfte.
In diesem Fall kann man einen Sicherung einbauen. Nämlich als Basis die 130ms wählen und dann Faktor 20 einstellen. Der Waffenmotor wird dann zusätzliche (falls der Endlagenschalter nicht ausgelöst werden kann) nach 2.5 Sekunden mit abgeschaltet. Sicherheitsabschaltung...
Ihr seht den Hinweis, dass diese beiden Eingaben für die Zeitbegrenzung durch den Parameterkanal überschrieben werden können. Dazu später.
Dann sind neu drei verschiedene PWM-Modi eingebaut worden.
PWM1: Hier befindet sich der Kreuzknüppel von der Fernsteuerung in der Mittelstellung, damit der Waffenkanal abgeschaltet ist. Wahlweise kann jetzt der Waffenmotor stufenlos vorwärts oder rückwärts eingestellt werden.
Eine Bremsfunktion, wie bei der schaltenden Auslösung, gibt es nicht.
PWM2: Hier muss sich der Kreuzknüppel in der unteren Lage befinden, damit der Antrieb abgeschaltet ist. Stufenlos bis zum oberen Punkt des Kreuzknüppels wird jetzt in einer Fahrtrichtung die Geschwindigkeit eingestellt.
PWM3: Hier muss sich der Kreuzknüppel in der oberen Lage befinden, damit der Antrieb ausgeschaltet ist.
Jetzt werdet ihr sagen "PWM3 braucht doch keine S....eele". Stimmt normalerweise. Aber ich habe ja einmal herausgemessen und dies im Forum auch beschrieben, dass es bei den Funkfernsteuerungen Unterschiede gibt. Die Futaba und die Spektrum machen es nämlich genau umgekehrt! Wenn also bei PWM2 der Kreuzknüppel unten ist, dann ist der Motor gestoppt. Bei der Futaba läuft hier aber der Motor auf Vollgas. Darum kann mit der Unterscheidung PWM2 und PWM3 der funktionsfähige Modus für die passende Funke eingestellt werden.
Wird der Waffenkanal im Schaltmodus betrieben, kann er ab sofort mit einem definiert festgelegtem Startpunkt langsam beschleunigt werden.
In o.g. Fall wird also beim Einschalten des Waffenmotors nicht ganz brutal die Spannung angelegt, sondern der Motor mit einer kleinen PWM "vorgeglüht", bis er dann komplett einschaltet. Den Startpunkt habe ich hier im Defaultzustand mit 128 festgelegt, was bei einem maximal möglichem Wert von 255 somit 50% entspricht.
Dann kann festgelegt werden, wie schnell der Motor jetzt von diesen 50% auf seine 100% hochgedreht wird. Dazu wird alle 2ms um einen Schritt erhöht. Wie oft diese 2ms pro Schritterhöhung absolviert werden müssen, kann nun auch festgelegt werden.
Beispiel für den Hochlauf:
Startwert ist 50%, also 128.
Somit müssen weitere 127 Schritte nach oben durchgeführt werden, bis das Maximum (100% = 255) erreicht sind. Bei der Zeiteinstellung von "1" sind das also 2ms mal 127 = 256ms. Nach rund einer viertelten Sekunde ist der Motor also auf Vollgas.
Wer dieses langsame Anfahren (Fachbegriff: "Softstart") nicht haben will, der setzt seinen Startpunkt einfach auf 255, also Vollgas. Alles kein Problem....
Bei der Stotterbremse habe ich jetzt die Pulszeit nicht auf 2ms, sondern auf 4ms festgelegt. Grund: Normalerweise werden bei der Waffe etwas kräftigere Motoren verwendet, die halten einen höheren Bremsstrom dann schon aus.
Auch hier kann wieder festgelegt werden, wieviel von den Bremspulsen durchgeführt werden und wie lange die Zeit zwischen diesen Bremspulsen sein muss.
Dann gibt es die Möglichkeit, im Schaltbetrieb die Bremse zu unterbinden. Wenn das Häckchen gesetzt ist, wird nach dem Abschalten des Waffenmotors kein Kurzschluss am Motor durchgeführt, er läuft also durch seinen Schwung selbst weiter.
Ausnahme: Auch wenn dieses Häckchen gesetzt ist, so wird beim Auslösen eines Endlagenschalters die Bremse trotzdem aktiviert.
Anwendung ist also, dass bei einer Schlagwaffe nur ein kurzer Puls zum Auslösen des Motors vorhanden ist, dann läuft die Waffe selbst weiter.
Wer ohne einen Zeitbegrenzung seine Schlagwaffe auslöst, der hat einen Endlagenschalter. Sobald dieser Endlagenschalter anspricht, ist es allerhöchste Zeit, den Motor zum Stillstand zu bringen, bevor er den eigenen Bot zerstört.
Dann gibt es die Option, dass bei der H-Brücke nur eine einzige Fahrtrichtung ausgelöst wird. Das hat folgenden Grund bzw. folgende Anwendung:
Wenn statt einer Schlagwaffe ein Spinner angetrieben wird, dann braucht man nur eine Bewegungsrichtung. Bei der Funke muss also nicht ein Kreuzknüppel verwendet werden, sondern man kann auch z.B. bei der Spektrum 5e den Schalter von Kanal 5 verwenden. Aber: Der Schalter hat keine Mittelposition. Somit läuft der Spinner entweder vorwärts oder rückwärts. Aber er lässt sich nicht anhalten. In diesem Fall also hier bei der Unterbindung der einen Fahrtrichtung das Häckchen setzen. Statt dass der Spinnermotor rückwärts dreht, wird er jetzt angehalten.
Dann kommen wir zu den beiden Schaltkanälen:
Im Standardbetrieb wirkt der Empfängereingang 4 auf die beiden Schaltausgänge. In Neutralstellung ist kein Schalter betätigt, vorwärts Kanal Out2, rückwärts Kanal Out3. Also nichts neues im Vergleich zu den Funktionen, die ich bereits im Fahrtregler3_1 integriert hatte.
Neu sind jetzt einige Features, die für die Ansteuerung von Pneumatik interessant sein werden. Nämlich Zeitfunktionen.
Es gibt für jeden Schaltkanal eine eigene Zeitfunktion . Die Basiszeit ist hier wieder 2ms. Über den hier vorzugebenden Faktor kann eingestellt werden, wie lange der Schaltausgang bzw. das Ventil betätigt sein soll.
Die maximale Auslösezeit beträgt also ca. eine halbe Sekunde. Das sollte genügen, um ein Pneumatikventil langsam mal geöffnet zu bekommen.
Wie ihr gelesen habt, können wahlweise entweder Out2, Out3 oder auch beide mit der Zeitbegrenzung angesprochen werden.
Bei Standard-Flip-Up-Anwendungen wird wahrscheinlich Out2 mit dem Ventil für die Gaszufuhr verbunden sein. Also ein kurzes Auslösen, um den Zylinder mit Gas zu fluten. Das genügt und spart Gas/Druck. Dann den Kreuzknüppel wieder in Neutralstellung bringen. Der Zylinder ist immer noch oben. Wenn der Kreuzknüppel dann nach unten gezogen wird, wird Out3 aktiviert. Der ist ohne Zeitlimit und mit dem Entlüftungsventil verbunden. Somt geht der Zylinder nach unten.
Jetzt kommt der große Gag in dieser Konfigurierungsmöglicheit:
Man kann das Ventil an Out2 sowohl in der Vorwärts- als auch Rückwärtsbewegung des Kreuzknüppels der Funke auslösen. Dazu einfach das Häckcken bei "RX4 schaltet nur Out2" setzen. Wird der Kreuzknüppel nach vorne bewegt, schaltet das Ventil zum Fluten von dem Zylinder. Und zwar mit der Zeit, die für Zeitbegrenzung von Out2 vorgegeben wurde. Wird jetzt aber der Kreuzknüppel nach unten gezogen, so wird Out2 ständig ausgelöst. Also ständig Gas in den Zylinder. Und dann gibt's noch eines obendrauf. Wenn nun sowohl Out2 als auch Out3 mit einer Zeitbegrenzung parametriert sind, dann hat Out2 beim Ziehen des Kreuzknüppels nach unten die Zeit von Out3 zum Auslösen. Ich kann also hier zwei verschiedene Zeiten für das Ventil vorgeben, die hier ausgelöst werden soll.
Das hört sich super an, hat aber ein Problem: Wie kriegt man das Gas wieder aus dem Zylinder. Die Lösung hatte Flatliner mal gepostet. Nämlich dass in der Neutralstellung des Kreuzknüppels das Entlüftungsventil ständig betätigt ist.
Hier also einfach das Häckchen setzen und schon wird Out3 immer dann betätigt, wenn der Kreuzknüppel in Mittelstellung verweilt.
Für den Heavyweight-Bot Tsunami werde ich demnächst eine neue Waffensteuerung entwickeln. Die hier o.g. Features bezüglich der Zeitsteuerung möchte ich dabei übernehmen. Wem noch etwas dazu einfällt: immer her damit.
Wem es noch nicht aufgefallen sein sollte: Es gibt vier Leistungsteile (2 x Motor, 1 xWaffe, 1xDual-Schaltausgänge), aber fünf Eingangskanäle. Wozu diesen fünften Kanal? Ich habe ihn als "Parameterkanal" bezeichnet, weil hier diverse Parameter im Zusammenspiel der eintreffenden Signale oder wirklich während des Kampfes durch die Funke verändert werden können.
Zunächst kann man einstellen, dass der fünfte Kanal ohne Funktion ist. Macht ja auch stellenweise Sinn.
Dann gibt es den Betrieb des Kanals, wenn er nicht an einem Empfängerkanal angeschlossen wird, sondern mit einem "Schalter" im Bot verbunden ist. Ich habe hier mal das Wort "DC" verwendet, weil das Signal kontinuierlich anliegt und nicht gepulst vom Empfänger stammt.
Die Anwendung (Michael hat mich darauf gebracht) wäre, dass ein Neigungssensor im Bot verbaut ist. Wenn der Bot auf dem Rücken liegt, dann spricht der Sensor an. In diesem Fall werden dann die Fahrtrichtungen der Motoren umgedreht und die Wirkungsweisen der Motoren gespiegelt. Als Fahrer kann man den Bot dann ganz normal steuern. Also keini mühsames Umdenken mit "links"/"rechts"/"vorwärts"/"rückwärts".
Wer einem Neigungssensor nicht traut, für den gibt es die nächste beiden Einstellung: Hier wird über den fünften Empfängerkanal (z.B. Schalter an der Funke) bestimmt, ob die Fahrtrichtung gewechselt wird, weil der Bot auf dem Rücken liegt.
Zugegebenerweise habe ich diesen Modus für mich integriert, weil ich mit dem Fahren auf dem Bot-Rücken absolut nicht zurechtkomme.
Die nächsten drei Parametereinstellungen sind ein Spezial für Tsunami. Und zwar wirkt der RX5-Eingang dann wie ein Schiebepoti. Er stellt Werte zwischen 1 und 255 zur Verfügung. Je nach Einstellung in diesem Parametersatz kann dieser Wert jetzt auf die Zeitbegrenzung von Out1, Out2 oder Out3 übertragen werden.
Das ist das, was Flatliner-Dirk für das Zeitverhalten beim Ansteuern des Zylinders braucht. Wenn im Laufe des Kampfes das Gas weniger wird oder durch Vereisungen weniger Gas beim Auslösen eines Pulses durchkommt, dann wird der Puls verlängert. Und das erfolgt nun über diesen fünften Kanal. Nachdem ich bei der Entwicklung der Software nicht weis, welcher von den Kanälen für das zeitbegrenzte Auslösen des Zylinders verwendet wird, kann man sich einen der drei möglichen Zeitbegrenzungen von Out1, Out2 oder Out3 selbst aussuchen.
Dieses Übertragen des Zeitwertes auf den Ausgang ist aber nur dann möglich, wenn dieser Ausgangskanal auch tatsächlich so eingestellt ist, dass er eine Zeitbegrenzung hat.
Das war's erstmal mit der groben Umschreibung von den Möglchkeiten des neuen Fahrtreglers. Wenn ihr was nicht versteht oder genauer erläutert haben wollt, dann bitte posten! Ich freue mich über jede Rückmeldung, auch wenn sie negativ sein sollte.
Um der wahrscheinlich naheliegensten Frage gleich auszuweichen: Nein, ich habe noch keine Ahnung, was dieser Fahrtregler genau kosten wird. Für Nicht-GRA-Mitglieder wahrscheinlich irgendwo in der 190Euro-Gegend. Ich muss erst eine genau Materialaufstellung machen, um was genaueres sagen zu können. Das Teuerste ist die Platine (je größer die Fläche, desto teurer) und die MOSFET-Halbbrücken.