Jump to content

Trimmung (Höhenruder) mit hoher Auflösung


Othello

Recommended Posts

Ben wurde gefragt, ob man die Pitchtrimmung etwas feinfühliger gestalten könnte.
Das war für mich der Anlass, mir die Datarefs dazu etwas genauer anzusehen.

 

Das Ergebnis:  Ein Lua-Script

 

 

Datarefs
Man kann bei der Trimmung einstellen, wie groß die Ausschläge in beide Richtungen sein sollen.
Desweiteren kann man angeben, wie lange die elektrische Trimmverstellung von einem Anschlag zum anderen dauern soll.
Dadurch ergibt sich dann rechnerisch der Trimmweg pro Zeiteinheit und somit die Auflösung.

Wünscht man eine höhere Auflösung, dann bedeutet das einen langsameren Trimmvorgang.
Das war für mich nicht zufriedenstellend.

 


Lösung
Der komplette Trimmweg wird in einer Dataref als Gleitkommazahl von -1.0 bis 1.0 dargestellt,
wenn man möchte, kann man also die Trimmung in z.B. 0.001 Werten verstellen.
Das ist zwar eine sehr feine Auflösung, doch dauert damit eine Verstellung über einen größeren Bereich viel zu lange.

Meine Lösung verwendet die Möglichkeit, dass jeder Taste oder jedem Schalter 3 Funktionen zugeordnet werden können:

 

1) Wenn die Taste gedrückt wird
2) Wenn die Taste gehalten wird (repeat)
3) Wenn die Taste losgelassen wird

 

Beim Drücken der Taste verstelle ich die Trimmung einmalig um einen kleinen Wert (z.B. 0.001)
Innerhalb einer kurzen Zeitspanne (z.B. 0.15 Sekunden) wird selbst bei Gedrückthalten der Taste die Trimmung nur einaml verstellt.
Wird nach der Entprellzeit die Taste immer noch gehalten, wird die normale Trimmfunktion von X-Plane gerufen, d.h. die Trimmung wird wie gewohnt schnell verstellt.
Mit dieser Lösung kann durch (mehrmaliges) kurzes Betätigen der Trimmtaste sehr genau getrimmt werden.


Erweiterung
Mich hat ebenfalls gestört, dass man beim Trimmen nicht die Markierungen des Trimmrades sehen kann, man muss dazu die Sicht auf das Trimmrad einstellen und das ist je nach Flugsituation nicht besonders angenehm.
Da ich ebenfalls ein Lua Script für die Erweiterung der Anzahl der speicherbaren Sichteinstellungen habe, habe ich mit der Möglichkeit privater Datarefs die beiden Scripte "Sichten" und "Trimmung" verknüpft.

Wenn der Trimmknopf betätigt wird, wird automatisch die Sicht auf das Trimmrad eingestellt und eine Sekunde nach Loslassen des Trimmschalters die zuvor vorhandene Sicht wieder hergestellt.
Mit dem Trimmschalter am Steuerhorn ist so selbst bei einem Landeanflug die kurze Sicht zum Trimmrad nicht störend, da man die Hände nicht vom Yoke nehmen muss und sich nicht um das Umschalten der Sichten kümmern muss.
Das Zurückschalten auf die vorherige Sicht lässt sich bei Bedarf übersteuern, indem man den Trimmschalter betätigt und direkt danach die neue gewünschte Sicht abruft.


Besonderheiten
Das Script ruft beim Betätigen der Trimmtaste die unter Sicht_7 ("GKWI/views/load_view_7") gespeichter Sicht auf.
Man muss demnach das, was man während des Trimmens sehen möchte, als Sicht_7 abspeichern ("GKWI/views/save_view_7")
(Die Sicht_7 war bei mir eben noch frei)

 

Wer das Script überflüssig findet, darf es einfach links liegen lassen, wer damit experimentieren möchte, darf das ebenfalls gerne tun.

 

Gruß
Othello

 

EDIT: Beim Testen der elektrischen Trimmung nicht vergessen, die Trimmung braucht Strom!  :-)

 

 

B200_elev_trim.lua

B200_views.lua

Link to comment
Share on other sites

Hallo,

 

sehr schöne Idee, nur leider blockieren die Files meine anderen Scripte, so z.Bsp XPrealistic, TurbFix, Joystick Sensetivity usw., diese werden erst gar nicht mehr anzeigt und ausgeführt.

 

Gruß Olaf

Link to comment
Share on other sites

Vor 1 Stunde, Olaf B. sagte:

Hallo,

 

sehr schöne Idee, nur leider blockieren die Files meine anderen Scripte, so z.Bsp XPrealistic, TurbFix, Joystick Sensetivity usw., diese werden erst gar nicht mehr anzeigt und ausgeführt.

 

Gruß Olaf

 

Hallo Olaf,

 

Kann eigentlich nicht sein ...

 

Das ist mein erster Gedanke, aber natürlich ist es so, sonst würdest du das nicht schreiben.

Bleibt zu klären, warum das so ist.

Deshalb möchte ich dich bitten, ein wenig deiner Zeit zu opfern, und bei der Suche zu helfen.

 

Das Script B200_views.lua kann ohne das Trimm-Script eingesetzt werden, anders herum geht es nicht.

Kannst du bitte nur das view Script einsetzen?

 

Dieses hat auch eine Besonderheit:

 

-- Konfiguration (kann je nach Bedarf geaendert werden) -------------------------------------------------------------

planeref = planeref or "global"  -- ist planeref nicht bekannt, wird als Wert "global" genommen.

 

Dies nur als Hinweis.

 

Wenn dieses Script alleine die Blockade nicht bewirkt, dann könnte es an der Reihenfolge des Aufrufes liegen.

Ich habe durch einen Schreibfehler festgestellt, dass, wenn ein LUA Script eine nicht vorhandene Funktion ruft, sich FlyWithLua ohne Fehlermeldung "verklemmen" kann.

 

Deshalb sollte das view script zuerst gestartet werden, danach das Trimm Script.

Auf meinem System ist dies der Fall, da ich die Lua Scripte in Abhängigkeit des geladenen Flugzeuges aufrufe.

 

Um die richtige Reihenfolge einzuhalten, könntest du folgendes testen:

 

1) Im Lua Scriptfolder einen Ordner mit dem Namen GKWI erstellen

2) meine beiden Scripte in diesen Ordner verschieben

3) Im normalen Scriptordner folgendes kleines Script anlegen:  GKWI.lua

 

GKWI.lua

--------------

local dirname = SCRIPT_DIRECTORY .. "GKWI\\"

dofile(dirname .. "B200_views.lua")
dofile(dirname .. "B200_elev_trim.lua")

 

Da ich lokale Variablen verwende, kommen meine Scripte normalerweise nicht in Konflikt mit anderen Scripten.

 

Jetzt bin ich gespannt, ob es mit der richten Reihenfolge klappt.

Falls ja, dann werde ich die etwas verbesserte Variante posten, die macht per Taste die Sichteinschaltung wählbar (manchmal nervt es doch) und bezieht auch die Ailerontrimmung mit ein.

 

Gruß

Othello

 

 

EDIT: Offene Baustellen

 

1) Beim Drücken der Trimmtaste erfolgt der erste kurze Trimmimpuls auch ohne vorhandene Spannung

2) Der erste Trimmimpuls schaltet den Autopilot nicht aus, dies geschieht erst bei Erreichen des Repeat-Modus.

 

 

Link to comment
Share on other sites

Also ich habe noch einmal kurz vor der Arbeit Zeitz genommen die beiden Sachen aus zu probieren.

 

1. das View Script alleine erzeugt keine Fehler anderer Scripte aber funktioniert auch nicht (getestet mit Standard C172), also keinerlei Umschaltung der Sicht.

2. die Variante mit dem Unterordner erzeugt Compiler Fehler anderer Scripte (Datarev - nil-Fehler) und hat auch keine Funktionalität.

 

Gruß Olaf

Link to comment
Share on other sites

Irgendetwas machst du anders, als ich mir das denke :-)

Warum sollten andere Scripte Fehler melden, wenn meine beiden Scripte in einem Unterordner liegen?

 

Konzentrieren wir uns zuerst nur auf das view script.

Hast du den verschiedenen Sichten (view und standard_view) Tasten zugeordnet?

Hast du dann mit Hilfe dieser Tasten Sichten gespeichert?

 

Wenn ja, dann sollte das view script schon laufen.

Wenn du magst, können wir die Probleme am Telefon lösen, die Lösung kann dann gern wieder im Forum angezeigt werden.

Ich schicke dir eine private Nachricht mit meiner Tel.Nr.

Du kannst dann gerne (musst aber nicht) anrufen.

 

Gruß

Othello

 

 

 

 

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy & Terms of Use