LS-Cockpit, jetzt aber richtig

  • Ich habe einen neuen Anlauf genommen ein Schlepper-Cockpit zu bauen. Nachdem das letzte Projekt irgendwann zum Raumschiffcockpit wurde, wird das hier nun wirklich ein Landmaschinenbedienpult. Das Ding fuer den LS von Saitek ist ja wohl bekannt, auch haben einige von Euch selber was zusammengebaut, was aber bei allen fehlt ist eine Anzeige was gerade passiert. - Anzeige ? .. hab doch nen Monitor !


    Ich will aber Displays in meinem Cockpit, einen schoenen Tachometer und zum Beispiel eine Drehzahl/Drehmomentsanzeige, analog und digital. GIANTS laesst den LS bewusst modbar auf uns los und ermoeglicht viele Dinge die bei anderen Spielen nicht moeglich sind. Eingabegeraete lassen sich schoen einbinden, Ausgabegeraete aber ueberhaupt nicht, vermutlich weil es diese halt nicht 'von der Stange' gibt. Leider haben sie in ihrer Engine einige lua-Funktionen geblockt die eine Ausgabe von Daten erleichtern wuerde, ich mache deshalb einen kleinen Umweg.


    Jetzt wird es technisch und nerdig : Ich schreibe die Daten die ich brauche in ein ascii-file, lese diese mit einem externen Script aus und schicke sie an die Hardware mit den Anzeigen. Da ich bei meinem letzten Versuch eine SSD geschrottet habe, liegt das Datenfile nun auf einer RAM-Disk, die vielen Schreib/Loeschzyklen haben die Speicherzellen der SSD 'weggefressen'. Wer schonmal sowas gemacht hat wird sicher auch mal das Problem gehabt haben dass ein Script das File offen hatte waehrend das 2te Script auch auf das File zugreifen wollte. Das gibt dann natuerlich einen Fehlerfall, die meisten hoeheren Programmiersprachen kennen um einem Absturz entgegen wirken zu koennen sogenannte Error-Handler.


    Mein externes Script habe ich mit Python geschrieben, eine sehr komfortable Interpreter-Sprache, welche natuerlich auch einen Error-Handler anbietet. Auch lua, also die Scriptsprache mit der wir den LS 'beeinflussen' koennen kennt einen Error-Handler. Leider aber hat GIANTS diese Funktion in der LS-Engine ausgeklammert, oder sie ist schlicht nicht verfuegbar weil der lua-Interpreter in der LS-Engine im Sandbox-Mode laeuft. Was bleibt waere den Dateizugriff ueber striktes timing der beiden Scripte abzustimmen, oder irgendwie zu synchronisieren. Mit dem timing habe ich ein wenig experimentiert, ueber laengere Zeit laeuft das aber dank des OS das im Hintergrund der Daddelkiste laeuft, nicht stabil. Also irgendwie synchronisieren ...


    Da ja sowieso eine externe Hardware zum Einsatz kommt und man im LS die Moeglichkeit hat eigene 'Bilder' einzublenden, kann der Dateizugriff 'ueber den Monitor' abgestimmt werden. Am einfachsten zu programmieren und vor allem um den Hardware-Aufwand moeglichst einfach zu halten, bietet sich da einfach schwarz/weiss an. Im nachfolgenden Video seht ihr wie das konkret aussieht :


    Das funktioniert zu 99.9% , aber ab und zu meckert das Python-Script dass die Datei noch geoeffnet ist obwohl sie schon geschlossen sein sollte, ist vermutlich auch irgendein Overhead vom OS. Hauptsache aber ist dass das Script im LS keinen Error sieht und stabil laeuft. - Das Zusammenspiel HW/SW sieht also so aus : Der LS schreibt etwa 3mal pro Sekunde Daten in das Daten-File. Mit einer Vor- und Nachlaufzeit wird waehrenddessen das Icon auf dem Monitor schwarz, danach weiss. Der am Monitor befestigte Lichtsensor loest dann auf dem Microcontroller, der die Displays ansteuert, eine Routine aus welche ueber eine serielle Schnittstelle Daten vom externen Script abfragt. Das sieht in etwa so aus :


    Auf dem Bild zuvor ist auch ein Navi eingezeichnet das ich im Text zuvor noch nicht erwaehnt habe, das wird dann das i-Tuepfelchen der ganzen Geschichte. Ich werde bald mehr Bilder und Videos nachliefern, gut moeglich dass die meisten im Moment nur noch Bahnhof verstehen ... das macht aber nix. Wer selber auch gerne mal sowas bauen und den Loetkolben schwingen will ist natuerlich eingeladen mit zu machen, Schemas und Scripte werde ich im Lauf der Zeit hier noch nachliefern.

  • Für mich (ebenfalls Laie) klingt das nicht nur wirr.....sondern total crazy.

    Wenn man sowas baut, muss man einen totalen aber sehr positiven Sockenschuss haben...

    Grüße aus Dabringhausen

    Martin


  • Ich will nicht löten, ich will eins bestellen :D ich finde das echt krass und abgefahren und bin gespannt auf die weitere Dokumentation, ach und den Preis natürlich ;)

  • Ich will nicht löten, ich will eins bestellen :D ich finde das echt krass und abgefahren und bin gespannt auf die weitere Dokumentation, ach und den Preis natürlich ;)

    Unbezahlbar natürlich so ein Unikat! ;)^^ Außer unser Geni macht dir einen Sonder,Sonder Preis. 8o

  • waschtl , ich mach dann einmal so :vain: und dann so :*, dann kommt die Konsole und dann so :love:

  • Unbezahlbar natürlich so ein Unikat! ;)^^ Außer unser Geni macht dir einen Sonder,Sonder Preis. 8o

    :D [nichtjugendfrei]:uglyglubscher:[/nichtjugendfrei] ... Njaein, weil es Hobby ist fallen schonmal die Stunden weg, die Materialkosten sind variabel, je nachdem was fuer Displays und wieviele verwendet werden ;)


    Ich will nicht löten, ich will eins bestellen :D ich finde das echt krass und abgefahren und bin gespannt auf die weitere Dokumentation, ach und den Preis natürlich ;)

    Dokumentation kommt wenn alles funzt ... je nach Interesse koennte ich sicher sowas wie einen Bausatz anbieten, mal schauen wenn es soweit ist ;)


    waschtl , ich mach dann einmal so :vain: und dann so :*, dann kommt die Konsole und dann so :love:

    Ich mach mal so :licht: und so :senior: .... :lol2:




    *****************



    UPDATE:


    Im Eroeffnungspost ist das in meiner Euphorie voellig untergegangen, ohne die entscheidende Hilfe von da-hoffi in meinem lua-Gewurstel, waere das Projekt gar nicht zustandegekommen ... :hail: nochmals ergebensten Dank :hail: !!!


    Es laeuft ! - Ganz gut ist im folgenden Video zu sehen dass digitale Anzeigen zwar schoen leuchten, aber nicht unbedingt eine 'Idee des Systemverhaltens' geben ... bei analogen Anzeigen, also die die nen 'Zeiger' haben, kann das dynamische Verhalten eines Systems in der Regel viel besser 'abgelesen' werden. Deshalb wird es spaeter noch 'analoge Anzeigen' dazu geben :


    Als naechstes designe ich mal ein paar 3D-Teile fuer den 3D-Drucker damit ich die ganze Geschichte nicht so frei auf dem Tisch herumfliegen habe. Demnaechst gibt es mehr dazu ...

  • das ist wirklich krass. Gemini du bist echt verrückt :D aber... das gefällt mir ;)

  • Bausatz....??:/??.....ich hoffe doch das Ding geht in Serie :D

    Grüße aus Dabringhausen

    Martin


  • Bausatz....??:/??.....ich hoffe doch das Ding geht in Serie :D

    Hmmm, ja, das ist so eine Sache ... damit sich eine Serie rentiert und auch fuer den SimTraktorFahrer erschwinglich bleibt muesste ich geschaetzt min. 1000Stk herstellen lassen. Ich wuerde dann pro Einheit (Bestueckte Platine, ohne Gehaeuse) etwa 50$ bezahlen, bei 10 Stk. aber 500$, Made in Europe ... Made in China waere sicher guenstiger, aber 1000Stk. verkaufen tue ich mir nicht an :ugly:


    Ein Teile-Kit zum Selbstkostenpreis waere moeglich. Da koennte ich auch eine Anleitung fuer totale Anfaenger liefern, loeten muesste man aber schon selber ;) .... mal schauen wie sich das Projekt weiter entwickelt, moeglich dass es vllt doch etwas halbfertiges zu kaufen geben koennte ;)




    ***********



    Kurzes Update : Konstruktion des zentralen Cockpitteils macht kleine Fortschritte ...

    Die Zeiger werden von ModellbauServos angetrieben, in die halbtransparente Frontscheibe werden einzelne 7SegLED-Displays eingebaut (variable Skala fuer versch. Parameter) und eine Hintergrundbeleuchtung laesst die Frontscheibe je nach Betriebszustand in entsprechender Farbe leuchten (gruen=gut, gelb=nichtsogut, rot=SchlepperEvakuieren xD).

  • Hmmm, ja, das ist so eine Sache ... damit sich eine Serie rentiert und auch fuer den SimTraktorFahrer erschwinglich bleibt muesste ich geschaetzt min. 1000Stk herstellen lassen. Ich wuerde dann pro Einheit (Bestueckte Platine, ohne Gehaeuse) etwa 50$ bezahlen, bei 10 Stk. aber 500$, Made in Europe ... Made in China waere sicher guenstiger, aber 1000Stk. verkaufen tue ich mir nicht an :ugly:


    Ein Teile-Kit zum Selbstkostenpreis waere moeglich. Da koennte ich auch eine Anleitung fuer totale Anfaenger liefern, loeten muesste man aber schon selber ;) .... mal schauen wie sich das Projekt weiter entwickelt, moeglich dass es vllt doch etwas halbfertiges zu kaufen geben koennte ;)

    Keine Sorge, aber das war nicht ernst gemeint....und ein Eigenbau aus meiner Hand ist ausgeschlossen. Sooo einfach kann die Anleitung nicht werden.

    Grüße aus Dabringhausen

    Martin


  • Keine Sorge, aber das war nicht ernst gemeint....und ein Eigenbau aus meiner Hand ist ausgeschlossen. Sooo einfach kann die Anleitung nicht werden.

    Wir können uns ja beim Zusammenbauen zusammentun. Das wird ein ganz neues Modell :D

  • Ich glaube meine Gebäudehaftpflicht lehnt das ab.....:D

    Grüße aus Dabringhausen

    Martin


  • Keine Sorge, aber das war nicht ernst gemeint....und ein Eigenbau aus meiner Hand ist ausgeschlossen. Sooo einfach kann die Anleitung nicht werden.

    So einfach wie eine Tischstaubsaugeranleitung ? Zu schwierig ? :ugly: ,)



    Wir können uns ja beim Zusammenbauen zusammentun. Das wird ein ganz neues Modell :D

    Ich glaube meine Gebäudehaftpflicht lehnt das ab.....:D

    Falls doch, filmen und hier in den Fred hinein spæmen bitte :uglyspitze:

  • Alter das ist ziemliche krass allein die ganze Hardware das zu realisieren?!? Also wenn ich richtig verstanden habe greifst du mit einem Lichtsensor zusätzliche Daten ab um die Cockpitfunktion zu machen/vervollständigen?.


    Gibt es denn nicht normalerweise Software die bei SimSpielen diesbezügliche solche Daten abgreift??? Es gibt ja diese ultra realistischen DrivingSeats für Rennspiele die mit Hydraulik ausgestattet sind um die Zentrifugalkraft zu simulieren die müssen ihre Daten auch irgendwie vom Spiel abgreifen, Da gab es sogar von "Fanatec" sogar so ein ProTool für so etwas.

    Nicht zu arbeiten von Früh bis Spät sei keinem geraten, Neid erfüllt das Blumenbeet aber nicht den Spaten.

  • Alter das ist ziemliche krass allein die ganze Hardware das zu realisieren?!? Also wenn ich richtig verstanden habe greifst du mit einem Lichtsensor zusätzliche Daten ab um die Cockpitfunktion zu machen/vervollständigen?.


    Gibt es denn nicht normalerweise Software die bei SimSpielen diesbezügliche solche Daten abgreift??? Es gibt ja diese ultra realistischen DrivingSeats für Rennspiele die mit Hydraulik ausgestattet sind um die Zentrifugalkraft zu simulieren die müssen ihre Daten auch irgendwie vom Spiel abgreifen, Da gab es sogar von "Fanatec" sogar so ein ProTool für so etwas.

    Den Sensor verwende ich um den Zugriff auf ein gemeinsames Datenfile zu synchronisieren, wenn zwei Programme gleichzeitig auf dasselbe File zugreifen wollen gibt es ein Problem/Error. Normalerweise kann man solche Fehler abfangen ohne dass der Rechner einfriert/abstuerzt. Leider ist die entsprechende Funktion im lua-Code fuer den LS nicht implementiert ...


    ... Du hast Recht, in vielen Spielen stellen die Programmierer in ihrer API solche Funktionen zur Verfuegung. - Weil im lua-Interpreter in der GIANTS-Engine die unseren LS "antreibt" einige Funtionen deaktiviert sind, war der Umweg ueber ein "gemeinsames" Datenfile der einzige Weg den ich gefunden habe um Daten aus dem LS zu extrahieren. Andere Spiele lassen es zu zB Daten ueber selber definierte TCP/IP-Verbindungen oder UDP-Broadcasts oder die serielle Schnittstelle an externe Hardware zu schicken, der LS halt eben nicht ;)

  • Den Sensor verwende ich um den Zugriff auf ein gemeinsames Datenfile zu synchronisieren, wenn zwei Programme gleichzeitig auf dasselbe File zugreifen wollen gibt es ein Problem/Error. Normalerweise kann man solche Fehler abfangen ohne dass der Rechner einfriert/abstuerzt. Leider ist die entsprechende Funktion im lua-Code fuer den LS nicht implementiert ...


    ... Du hast Recht, in vielen Spielen stellen die Programmierer in ihrer API solche Funktionen zur Verfuegung. - Weil im lua-Interpreter in der GIANTS-Engine die unseren LS "antreibt" einige Funtionen deaktiviert sind, war der Umweg ueber ein "gemeinsames" Datenfile der einzige Weg den ich gefunden habe um Daten aus dem LS zu extrahieren. Andere Spiele lassen es zu zB Daten ueber selber definierte TCP/IP-Verbindungen oder UDP-Broadcasts oder die serielle Schnittstelle an externe Hardware zu schicken, der LS halt eben nicht ;)

    Also Gemini , ich verstehe Dein Problem nicht... Du hättest doch einfach bei Giants fragen können... die hätten Dir bestimmt SOFORT geholfen :D

  • Also Gemini , ich verstehe Dein Problem nicht... Du hättest doch einfach bei Giants fragen können... die hätten Dir bestimmt SOFORT geholfen :D

    MUHAHAHA ... Du hast meinen Tag gerettet ^^ ... ich habe da schon mehr wie einmal darum gebeten ... einmal hiess es "Wir ueberlegen uns das...", das 2te Mal kam gar keine Antwort mehr :ugly: ... leider sind die beiden Studenten die den LS damals eher "aus Zufall" programmiert haben schon zu abgehoben um wirklich fuer uns da zu sein :uglyglubscher: ... immerhin gewaehren sie uns ja doch noch "Ihren" LS mit Mods und Maps nach unserem Gusto zu benutzen, ich kenne eine Unzahl Spiele die zu Gunsten dickerer Geldboersen irgendwelcher Idioten nicht mehr modbar sind :Zombie:....


    .... aber ja, genug gelaestert ... Danke fuer das kleine Lachflash das Du mir geschenkt hast :easypeasy: