Jump to content

Der deutsche DCS-BIOS-Thread: Für Simpit-Bastler und solche, die es werden wollen


FSFIan

Recommended Posts

Hey ;):thumbup:

 

Klasse, Danke !

 

 

Die 3 Displays laufen nun problemlos mit DCS- alles läuft sehr schnell und flüssig. Musste zwar viel ausprobieren etc (auch damit überhaupt 3 Displays angesteuert werden können, oft blieb eines einfach dunkel und/oder keines zeigte etwas an...).

 

Den normalen print-Befehl hatte Ich dummerweise noch gar nicht probiert...:doh:

 

Was Ich aber noch immer nicht hinbekommen habe ist die Ausgabe eines Integer-Werts aufs Display... Könntest du mir da Anhand des VHF AM Frequenzsteller 2 noch ein Beispiel geben?

 

if (address == 0x118e) {

unsigned int vhfamFreq2Value = (value & 0x00f0) >> 4;

/* your code here */

}

 

Trage Ich bei "your code here" einfach wie bei einem String Wert ein wo die Ausgabe stattfinden soll kommt eine Fehlermeldung beim kompilieren "DCS_Arduino_Mod.ino:19:1: error: expected unqualified-id before 'if'"

 

 

Gruß Arctic

Link to comment
Share on other sites

Die Code-Schnipsel, die in einem "if"-Statement verpackt sind, gehören in die onDcsBiosWrite()-Funktion rein.

 

Guck mal hier nach, Kelevra9987 hat mittlerweile die finale Version seines Fuel Flow-Display-Codes gepostet. In deinem Fall musst du nicht sprintf() verwenden, es sollte ausreichen, einfach lcd.print(vhfamFreq2Value) aufzurufen.

 

Als ich DCS-BIOS ins Leben rief, hatte ich als Zielgruppe erfahrene C++-Programmierer im Kopf. Dass man jetzt mit Copy&Paste schon sehr weit kommt, ist kein Resultat genialer Planung, sondern kommt einfach daher, dass Programmierer faul sind und sich wiederholende Arbeit (Kopieren von drei Werten -- address, mask, shift -- pro Control) wegautomatisieren, wo es nur geht.

Deshalb gibt es mehrere Stellen, wo Dinge inkonsistent sind (denn wenn man es bereits verstanden hat, ist der inkonsistente Weg nicht mehr Arbeit als ein konsistentes Design), und an anderen Stellen hapert es an der Dokumentation ("das ist doch offensichtlich, wo der Code-Schnipsel hingehört!").

Wie gesagt werde ich versuchen, das in der nächsten Version der Arduino-Library besser zu machen. Ich weiß jetzt mehr über meine Zielgruppe und durch das bisherige Feedback ist mir jetzt auch klar, wo die inkonsistenten und/oder schlecht dokumentierten Stellen sind.

Link to comment
Share on other sites

Verbindungsaufbau schlägt fehl

 

Ich wieder einmal. Ich bin nun fertig mit meiner Bastelei. Muss allerdings sagen, das ich alle Versuche mit einem Windows 7 System durchgeführt habe. Da lief es auch tadellos.

 

Nun soll mein Panel aber an einem Windows 10 System laufen. Und da kommt folgende Fehlermeldung beim starten der Batch:

 

 

24met0j.jpg

 

Ich hoffe Ihr könnt mir auch dabei helfen. cygwin habe ich schon das aktuelle installiert... auch keine Besserung...

 

Im Voraus schon mal vielen Dank.

Link to comment
Share on other sites

Wenn du cygwin installiert hast, editier mal die Batchdatei und passe den Pfad zu socat an. Die mitgelieferte Batchdatei ruft "socat\socat" auf, benutzt also immer die mitgelieferte Version.

 

Ansonsten kannst du den com-handler von ArturDCS benutzen, das ist eine C#-Anwendung, die den Job der Batchdatei übernimmt (und mehrere serielle Ports gleichzeitig ansteuern kann).

Link to comment
Share on other sites

Danke für den Tipp. Den com-handler habe ich schon versucht. Doch der brachte keine Besserung. Der Com wird erkannt, eine Verbindung scheint auch zu stehen, es kommen auch Daten, aber nur Bruchteile. Mal mehr mal weniger. Und wenn ich an meinem Panel (Funktionen: Luftdruckeinstellung per RotaryEncoder, Fahrwerk per Schalter...etc.) irgendwelche Einstellungen durchführe, kommen die nicht im DCS an. Pfade sind angepasst, der Fehler immer noch der Gleiche.

Link to comment
Share on other sites

Hey Rocco.

 

Ohne die Sache wirklich zu verstehen, will ich Dir meinen Ansatz mitteilen:

In den letzten Tage hatte ich etliche Versuchsreihen zu meinem Centipede-Problem mit verschiedenen Arduinos (Leonardo, UNO, MEGA) laufen und bin mitunter auf das gleiche (oder ein ähnliches) Problem gestoßen.

Der UDP-"Strom" zeigte nichts oder nur Datenmüll an.

Ich konnte dies lösen indem ich die Baud-Rate erstmal auf 115200 senkte und (ganz wichtig) es muss überall das Gleiche eingestellt werden.

Also im Gerätemanager, in der Batch-Datei und in der *.ino.

 

Dann lief meine Kommunikation in beide Richtungen.

Mit dem COM-Handler bin ich auch nicht weiter gekommen. Geht bei mir nur in Richtung DCS-BIOS -> Arduino.

 

Den Centipeden habe ich allerdings trotzdem noch nicht am Laufen.

(aber das nur nebenbei :) Das Projekt ist erstmal zurückgestellt, da ich Steuerkram machen muss und aus reiner Profilierungssucht "mein" Magnetic-Hold-Switch-Projekt ganz oben auf die Liste meiner freiwilligen Aktionen gesetzt habe).

[THREAD=146392]look here, if you want[/THREAD]


Edited by Tekkx

Manual for my version of RS485-Hardware, contact: tekkx@dresi.de

Please do not PM me with DCS-BIOS-related questions. If the answer might also be useful to someone else, it belongs in a public thread where it can be discovered by everyone using the search function. Thank You.

Link to comment
Share on other sites

  • 1 month later...

Hi Jungs,

 

ich bräuchte Hilfe was das Verbinden vom export.lua und Arduino an geht. Bei den englischen Therds komm ich mit meine Englisch nicht mehr weiter. Könnte mir jemand Schritt für Schritt erklären was ich alles in den export.lue schreiben muss damit DCS und Arduino miteinander Komuizieren.

Den exprot.lua hab ich schon in (C:\Users\Name\Saved Games\DCS\Scripts\ )

 

Mfg Emrah

Aircrafts: F-16C | TF-51 | M2000C | F/A-18C | AV-8B | Viggen | KA-50 | A-10C | UH-1 | Mi-8 |

Maps: Caucasus | Persian Gulf | NTTR | Normandy | Syria

System: AMD Ryzen 3700X | 32GB Ram | AMD Radeon RX 5700 XT | Win10 64Bit | 1TB 970 EVO M.2 SSD

Equipment: TrackIR 5_Trackclip Pro |TM Warthog HOTAS | Oculus Rift S

Link to comment
Share on other sites

Wenn du noch keine Export.lua hast, kannst du die aus dem DCS-BIOS-Paket unverändert übernehmen, ansonsten einfach die eine Zeile die da drinsteht an deine bestehende Export.lua anhängen. Der eigentliche Code ist im Ordner "DCS-BIOS", den du auch nach C:\Users\Name\Saved Games\DCS\Scripts\ kopieren musst.

 

Jetzt kommuniziert DCS-BIOS über das Netzwerk. Um das ganze dann mit der seriellen Schnittstelle zu verbinden, musst du das Skript "connect-to-serial-port.cmd" editieren (Rechtsklick -> Bearbeiten) und da die Nummer der seriellen Schnittstelle eintragen (COMPORT=...). Dann kannst du das Skript starten, um die serielle Schnittstelle mit DCS-BIOS zu verbinden (vorher musst du natürlich eine geeignete Firmware auf den Arduino flashen, z.B. das mitgelieferte Beispiel für das Master Caution Light der A-10C).

 

Was auch ganz hilfreich bei der Fehlersuche sein kann, ist die "interactive control reference documentation". Wie in

beschrieben ist, kannst du die Referenz als Google Chrome-Extension einrichten, dann kann die sich mit einem laufenden DCS verbinden und du kannst dir die Werte, die da rauskommen, ansehen. Wenn du ein Problem hast, was nicht in der control reference auftritt, liegt der Fehler wahrscheinlich irgendwo auf der Arduino-Seite. Wenn der Fehler auch in der control reference auftritt, dann ist das ein Bug in DCS-BIOS und du kannst dir die Fehlersuche in deinem eigenen Code sparen.
Edited by [FSF]Ian
Link to comment
Share on other sites

Danke Ian,

 

es funktioniert. Ich hab nicht gewusst das man die export.lua von DCS bios einfach übernehmen kann.

Aber alles in Ordnung.

 

Mfg Emrah

Aircrafts: F-16C | TF-51 | M2000C | F/A-18C | AV-8B | Viggen | KA-50 | A-10C | UH-1 | Mi-8 |

Maps: Caucasus | Persian Gulf | NTTR | Normandy | Syria

System: AMD Ryzen 3700X | 32GB Ram | AMD Radeon RX 5700 XT | Win10 64Bit | 1TB 970 EVO M.2 SSD

Equipment: TrackIR 5_Trackclip Pro |TM Warthog HOTAS | Oculus Rift S

Link to comment
Share on other sites

Ich hätte da noch eine Frage: Was ist wenn ich mehrere Arduino Board´s habe die am PC angeschlossen sind. Muss ich da im Connect-serial-port eine neue

"set COMPORT" dazu schreiben?

Aircrafts: F-16C | TF-51 | M2000C | F/A-18C | AV-8B | Viggen | KA-50 | A-10C | UH-1 | Mi-8 |

Maps: Caucasus | Persian Gulf | NTTR | Normandy | Syria

System: AMD Ryzen 3700X | 32GB Ram | AMD Radeon RX 5700 XT | Win10 64Bit | 1TB 970 EVO M.2 SSD

Equipment: TrackIR 5_Trackclip Pro |TM Warthog HOTAS | Oculus Rift S

Link to comment
Share on other sites

Im Moment musst du für jeden Port eine Kopie des connect-to-serial-port scripts anlegen und starten. Alternativ kannst du den com-handler von ArturDCS benutzen, das ist eine C#-Anwendung, die mehrere Ports gleichzeitig ansteuern kann ("Download ZIP", dann im "bin"-Ordner die .exe starten).

 

Langfristig will ich einen RS-485-Bus unterstützen, so dass man einen Arduino Mega hat, der mit dem PC und mit bis zu drei RS-485-Bussen spricht. Dann braucht man nur noch einen USB-Port am PC, einen Mega als "Hub" und einen $0.20 RS-485-Transceiver pro Board. Die Arbeit daran ist schon einigermaßen fortgeschritten, ich hoffe noch dieses Jahr eine erste Alpha davon zu veröffentlichen, kann aber nichts versprechen.

Link to comment
Share on other sites

Hallo Leute,

 

ich würde gerne mit DCS-BIOS und dem Arduino meine Technikverliebtheit ausleben. Grundlagen(Elektrotechnik,Techische Informatik,C/C++) habe ich mal gelernt, muss nur aufgefrischt werden.

Nun suche ich allerdings ein passendes Starter Kit(oder ne Empfehlung von Teilen) die gut auf meinen Vorhaben mit DCS passen(nen Pappdino ist ja lustig aber ich habe ja nen Thema). Also Schalter,LED,Poti?,Display und möglich alles was man noch so braucht.Wenn das Forum es erlaubt, auch passenden deutschen Händler(oder EU) würde die Suche erleichtern. Daher stelle ich die Frage direkt hier im deutschen Forum.

 

Dank&Gruß

Tekk

Link to comment
Share on other sites

Welcome Tekk.

After reading your post twice, I want to tell you: You forgot to ask your question?

 

What you need depends on what you want to get out.

 

Hallo Tekk. Willkommen im Forum.

Ich glaube, Du hast vergessen, uns Deine Frage zu stellen.

Aber: Was Du brauchst, hängt am Ende allein davon ab, was Du als Ergebnis erwartest.

Ich empfehle Dir erstmal einige Threads hier im Forum (oder im Arduino-Forum) zu lesen. Dabei werden Dir die Ideen ganz von allein kommen. Und die Liste der benötigten Dinge entsteht dabei auch ganz nebenbei :)

Link to comment
Share on other sites

Hallo Tekk. Willkommen im Forum.

 

Danke.

 

Ich glaube, Du hast vergessen, uns Deine Frage zu stellen.

 

"Nun suche ich allerdings ein passendes Starter Kit"

 

"auch passenden deutschen Händler"

 

ja, es waren keinen direkten Fragen.

 

Wobei auch "Es gibt kein passendes Start Kit für DCS-Bios" als Antwort durch gehen kann und ich tatsächlich mir das Einzeln zusammen suchen muss.

 

 

 

Aber ich habe noch eine Frage: ist es noch Arduinio oder im DE eher Genuino wonach ich suchen muss? Ich lese da was wegen Namensrechte und überblicke das aber leider noch nicht so ganz.


Edited by tekk
Link to comment
Share on other sites

Nun suche ich allerdings ein passendes Starter Kit(oder ne Empfehlung von Teilen) die gut auf meinen Vorhaben mit DCS passen(nen Pappdino ist ja lustig aber ich habe ja nen Thema).

 

Ich hab hier mal was zusammengestellt.

 

Händler

 

Als deutsche Händler fallen mir spontan Reichelt, Conrad, Pollin und Farnell ein (Farnell verkauft nur an Geschäftskunden und Studenten, für Privatkunden gibt es den HBE-Shop).

 

Pollin ist hauptsächlich auf Restposten spezialisiert und hat oft, aber nicht immer, sehr gute Preise. Viele Artikel sind nur eine Zeit lang im Programm, bis der Restposten halt weg ist, aber gerade bei so Zeugs wie Platinen, Kabel und Widerständen haben sie ständig günstige Ware im Programm.

 

Reichelt und Conrad haben ein relativ gutes Sortiment. Und Farnell hat als einer der großen weltweiten Elektronik-Distributoren so ziemlich alles. Wenn du eine Conrad-Filiale in erreichbarer Nähe hast, ist das eine gute Quelle um mal eben ein paar Widerstände mit einem bestimmten Wert oder so nachzubesorgen.

 

Und dann gibt's da noch eBay. Das ist gerade für die Arduino-Boards oft die beste Option. Man muss keine 40 Euro für einen Arduino ausgeben, wenn man das exakt gleiche Produkt auch für 10 bekommt (da ist dann halt nur kein Logo aufgedruckt).

 

Am günstigsten sind immer die chinesischen Händler, da dauert's aber mehrere Wochen bis die Ware da ist. Lohnt sich aber auf jeden Fall, wenn man schon mit dem Basteln angefangen hat, da mal ein Pack Arduinos zu ordern, da der Preisunterschied schnell mal Faktor 2 bis 5 sein kann. Wenn man den Artikel schnell geliefert bekommen möchte, kann man "Artikelstandort: Deutschland" (nicht "eBay Deutschland") einstellen, auch dann sind die Preise meistens noch günstiger als in anderen Online-Shops.

 

Die Links unten gehen fast alle zu Pollin.

 

Grundausstattung

 

Du brauchst mindestens:

  • Einen Lötkolben. Wenn du mehr als ein, zwei Panel bauen willst, würde ich dir empfehlen, 50 bis 100 Euro in eine vernünftige Lötstation mit Temperatureinstellung zu investieren. Ansonsten tut's auch ein einfaches Modell -- das ist aber etwas nerviger zu benutzen (Aufwärmzeit, der Ständer fällt leichter um, etc.) und hat eventuell Probleme mit bleifreiem Lötzinn (das braucht eine höhere Temperatur).
     
    Ein Messing-"Schwamm" macht das Reinigen der Lötspitze deutlich einfacher und muss nicht ständig neu befeuchtet werden.
     
    Zu Hause hab ich so ein Billig-Teil und nutze ansonsten oft ein Wire Wrap-Tool oder ein Steckbrett. Auf der Arbeit hab ich vernünftige Lötstationen kennen gelernt.
     
  • Lötzinn
     
  • Ein Multimeter. Das muss nicht teuer sein, ich benutze ein Voltcraft VC130 was ich mal im Conrad für 5 Euro im Angebot bekommen hab. Die Genauigkeit ist relativ egal, auf ein paar Prozent kommt es hier nicht an. Ob bei Isolation und Überspannungsschutz gespart wurde, ist dir egal, denn du planst nicht, damit eine Steckdose zu messen.
     
    Die am meisten genutzte Funktion wird der Durchgangsprüfer sein, gelegentlich misst man mal eine Spannung oder einen Widerstand. Die Strommessung ist hilfreich, wenn man beurteilen will, ob eine Schaltung noch über USB versorgt werden kann oder ob man ein externes Netzteil braucht.
     
  • Einen Seitenschneider zum Zuschneiden und Abisolieren von Draht
     
  • Draht. Man kann fertige "jumper wires" benutzen, bei "male auf male" kann man sich auch einfach was passend zuschneiden
     
  • Ein Steckbrett ("Breadboard")
     

 

Arduino-Boards

Für den Einbau in Panels ist der Arduino Pro Mini am interessantesten, da er relativ klein ist. Er ist auch eines der günstigsten Boards (aus China unter 2 Euro, aus DE ca. 4 Euro), weil kein USB-zu-seriell-Konverter mitgeliefert wird. Ein USB-Adapter (einer mit DTR-Leitung, z.B. auf Basis des CP2102-Chips) schlägt nochmal mit ca. 1,50 Euro (China) oder 5 Euro (DE) zu Buche. Die Pro Minis kann man auch wunderbar auf ein Breadboard stecken.

 

Ansonsten ist der Mega 2560 interessant. Zum einen hat der relativ viele Anschlüsse, zum anderen hat der vier Hardware-UARTs und wird deshalb Grundlage des zentralen "Hubs" sein, wenn ich endlich mal mit der RS-485-Implementierung fertig werde.

 

eBay (DE): Pro Mini, CP2102 USB-Adapter, Mega 2560

 

Nützlicher Kleinkram

 

Bauteile, die man immer gebrauchen kann (da lohnt es sich gleich mehrere zu kaufen, also im Zehner-, Fünfziger- oder Hunderterpack):

  • Kondensator 100 nF (jedes IC sollte einen nahe an den Stromversorgungspins bekommen)
  • Widerstand 10 kOhm (wenn man mal nen externen pull-up oder pull-down braucht)
  • Passende Vorwiderstände für LEDs. So 80 bis 160 Ohm je nach Vorwärtsspannung der LED. Immer, wenn du LEDs kaufst, solltest du auch passende Widerstände mitbestellen. Typische rote LEDs mit V_f = 2.4 V und Betriebsstrom 20 mA brauchen bei 5V einen 130 Ohm Vorwiderstand.
  • Standard tactile push buttons (Link geht zu chinesischem Händler, die Dinger lassen sich so gut per Luftpost verschicken dass die Preisunterschiede enorm sind)
  • Um den ganzen Kram zu lagern, benutze ich Druckverschlussbeutel, die ich dann in einen Sortierkasten stecke.

 

Jumper Wires (female-female und eventuell female-male)

 

Streifenrasterplatinen mit Rastermaß 2,54 mm eignen sich gut, wenn die Schaltung etwas dauerhafter aufgebaut werden soll, man aber keine Platinen fertigen lassen oder selbst ätzen will. Die Leiterbahnen können mit einem Bastelmesser oder einer kleinen Trennscheibe (Dremel oder so) unterbrochen werden.

 

Stiftleisten und dazu passende Buchsenleisten, wenn man mal schnell einen Steckverbinder braucht.

 

Diese einzeiligen IC-Sockel sind auch super praktisch -- man kann die aufeinander stecken um relativ fest haltende Steckverbinder zu basteln und man kann damit eben auch beliebige ICs sockeln.

 

Bedienelemente

Dann brauchst du natürlich noch alles, was du in deine Panels einbauen willst, also LEDs, Servo- oder Schrittmotoren, Kippschalter, etc. Gerade Schalter und Potis kann man ggf. auch aus altem Elektronikschrott ausbauen (gerade für die ersten Bastelversuche, wenn einem das genaue Aussehen egal ist).

 

 

Mit den oben genannten Dingen lässt sich glaub ich schon einiges machen. Was dann noch fehlt, merkst du, wenn du die nächsten Projekte planst. Eine separate Stromversorgung brauchst du erst mal nicht (außer ggf. für Motoren), ansonsten kann man da auch alte Handy-Ladegeräte oder PC-Netzteile benutzen.

 

PS: Du kannst dir schonmal ein paar MAX487 Transceiver bestellen. Wenn ich den ersten funktionierenden RS-485-Code veröffentliche, sind die dann auch längst aus China hier angekommen. Bei der Suche nach China-Händlern empfiehlt es sich übrigens, auf ebay.com zu suchen, auf ebay.de findest du auch mit "Artikelstandort: Weltweit" nicht alle Angebote.


Edited by [FSF]Ian
Link to comment
Share on other sites

Hallo Ian,

 

danke für die ausführliche Antwort, extrem hilfreich.

 

1-2 Fragen hätte ich direkt:

 

Wofür ist der Kondensator an den IC gut?(Kondensator ansich ist mir bekannt)

Und für was ist der MAX487 Transeiver?

 

Ich habe mir als ersten Projekt übrigens erstmal was "schlichtes" geplant und auch nicht auf ein Muster beschränkt. Ein Motormanament-Panel(das soll dann mein "Saitek-Würfel" ergänzen bzw ersetzen. Dafür hätte gern Kippschalter, wie im TM Warthhog verbaut. Die ich bisher gefunden habe sind mir ehrlich gesagt "zu fein". Was ich für Achse nehme weiß ich noch nicht.

Allerdings ist mir aufgefallen, das hierfür aber eigentlich besser wäre, wenn ich auf DCS-Bios verzichte und der Arduino sich als Joystick ausgibt.

Dann kann schnell in vielen Simulation einsetzen. Da bin erst am googlen, ob und wie das geht(falls da jemand schon nen Link hättte... :))

 

Aber danach möchte ich dann was mit 7-Segment/LCD machen, spätestens dann brauche ich DCS-Bios :). Und am Ende würde ich dann mich mit analogen Anzeigen beschäftigen, aber ich fürchte die sind richtig teuer.

 

Gruß und nochmals ein Dank

Tekk

Link to comment
Share on other sites

Wofür ist der Kondensator an den IC gut?

 

Wenn man eine saubere, geregelte Spannungsversorgung hat, braucht man den Kondensator nicht. In der Praxis sind zwischen der geregelte Spannungsquelle (Netzteil oder USB-Port) und deiner Schaltung allerdings mehrere Zentimeter Kabel. Das hat zwei Effekte: zum Einen wirken die Kabel wie Antennen und können Störsignale einfangen. Zum anderen kann dein Netzteil nur die Spannung an seinem eigenen Ausgang regeln. Wenn deine Schaltung jetzt mehr oder weniger Strom braucht, dauert es einen Moment, bis die Störung das Netzteil erreicht hat, und dann muss das nachgeregelte Signal wieder die Schaltung erreichen. Ich glaube, das liegt an der Induktivität des Kabels, die sich der Änderung des Stromflusses widersetzt. Das heißt wenn sich der Strombedarf ändert, kann sich der gelieferte Strom nur "langsam" anpassen, so dass es kurz Unter- oder Überspannung gibt (wenige Nanosekunden).

 

Die Energiereserve im Kondensator, der direkt neben dem IC sitzt, kann solche Störungen viel schneller ausgleichen als das "weit entfernte" Netzteil.

 

"Aber durch meine Schaltung fließt doch immer gleich viel Strom!" Das trifft auf den Durchschnittsverbrauch zu, den dir ein Multimeter anzeigt. Ein CMOS-IC verbraucht aber (bis auf Leckströme) nur dann Strom, wenn sich irgendwo ein Signal von 0 auf 1 oder andersherum ändert. Wenn du also einen Mikroprozessor mit 16 MHz betreibst, braucht der nicht gleichmäßig viel Strom, sondern 16 Millionen mal pro Sekunde gibt es einen Peak im Strombedarf, wenn ein paar Tausend Transistoren gleichzeitig schalten.

 

Meistens funktioniert die Schaltung auch ohne Kondensator. Das Problem ist nur, dass man ohne ein Oszilloskop nicht erkennen kann, wie sauber die Spannungsversorgung ist, und dass die Fehler, die durch unsaubere Spannungsversorgung verursacht werden können, im schlimmsten Fall zu undefiniertem Verhalten führen und nur selten auftreten.

 

Als Faustregel: Für den Testaufbau braucht man die Kondensatoren nicht unbedingt (und auf den Arduino-Boards selbst sitzen sie natürlich schon drauf), aber bevor man sich von seiner Schaltung mit irgendeinem externen IC (MAX7219, Schieberegister, etc) in den Wahnsinn treiben lässt, sollte man sicherstellen, dass alle Kondensatoren, die im Datasheet gefordert werden, auch da sind. Motoren sollte man immer mit (auch etwas größeren) Kondensatoren versehen, damit sich der stark schwankende Strombedarf des Motors sich nicht störend auf den Rest der Schaltung auswirkt.

 

 

Und für was ist der MAX487 Transeiver?

Der MAX487 ist ein Transceiver, mit dem man einen Mikrocontroller an einen RS-485-Bus anschließen kann. RS-485 ist ein Kommunikationsstandard, der in der Industrie oft in Produktionsanlagen zum Einsatz kommt, um eine Steuereinheit mit Sensoren und Aktoren zu verbinden. Die Transceiver sind günstig und wenn man langsam genug kommuniziert, gehen Kabellängen bis 1000 Meter; bei den Geschwindigkeiten, die DCS-BIOS benutzt, sind immer noch ca. 40 Meter drin, das sind mehr als man in jedem Home-Cockpit brauchen wird.

 

Der Plan ist, dass mehrere Arduinos untereinander über RS-485 kommunizieren und nur einer davon (ein Mega 2560) mit dem PC, damit die Leute, die sich ein komplettes Cockpit bauen wollen, nicht mehrere Dutzend USB-Anschlüsse brauchen. Die RS-485-Geräte hängen einfach alle am gleichen Kabel, eins nach dem anderen. Bei USB müsste man eine Sternverkabelung mit Hubs bauen und würde irgendwann wohl auch merken, dass es ab 20 Geräten oder so zu Problemen kommt (obwohl laut Standard bis zu 127 Geräte funktionieren müssten).

 

 

Zum Thema Arduinos als USB-Joystick:

Der Leonardo kann sowas, es gibt auch Projekte, die den ATMega16U2, der auf dem Uno und Mega als USB-auf-seriell-Wandler arbeitet, entsprechend umprogrammieren (hier zum Beispiel). Und dann gibt es noch V-USB, mit dem man auf fast jedem AVR ein Low-Speed-USB Device bauen kann (man braucht nur zwei Dioden, drei Widerstände und eine USB-Buchse), da weiß ich aber nicht, ob das irgendwer schonmal mit der Arduino-IDE zum Laufen gebracht hat.


Edited by [FSF]Ian
Link to comment
Share on other sites

Um Euch mal wieder ein klein wenig auf den Geist zu gehen... :-)...ich möchte meinen Arduino über einen zweiten Rechner betreiben. Sprich DCS auf dem Hauptrechner und den Arduino an einem Notebook. Ich komme nicht ganz klar mit den ganzen Einstellungen bezüglich der IP Adressen...Ziel soll es sein das mein Arduino an einem zweiten Rechner betrieben wird. Ich denke mal ich muss die connect-serial-port.cmd anpassen und auch die BIOSConfig.lua....

 

das sich Werte im Cockpit ändern, wenn ich an meinem selbstgebauten Panel drehe, das funzt schon mal. Aber er empfängt noch keine Werte...

 

BiosConfig.lua (auf dem DCS-PC)

BIOS.protocol_io.connections = {
   BIOS.protocol_io.DefaultMulticastSender:create(),
   BIOS.protocol_io.TCPServer:create(),
   BIOS.protocol_io.UDPSender:create({ port = 7777, host = "192.168.55.51" }),
   BIOS.protocol_io.UDPListener:create({ port = 7778 })

connect-serial-port.cmd (auf dem Notebook)

REM Specify the number of the COM port your Arduino is connected to:

set COMPORT=4



set /A TTYNUM=%COMPORT%-1
mode COM%COMPORT% BAUD=500000 PARITY=N DATA=8 STOP=1 TO=off DTR=on
C:\Users\rocco\DCS_Place\dcs-bios\socat\socat -v UDP4-RECV:5010,ip-add-membership=239.255.50.10:127.0.0.1,reuseaddr!!udp-sendto:192.168.50.44:7778 /dev/ttyS%TTYNUM%

pause

Irgendwo fehlt mir da noch was...

Link to comment
Share on other sites

DCS-BIOS sendet die Werte an 192.168.55.51:7777, aber socat lauscht immer noch auf der Multicast-IP.

 

Ersetze die socat-Zeile durch folgende, dann sollte es gehen:

C:\Users\rocco\DCS_Place\dcs-bios\socat\socat -v UDP4-RECV:7777,reuseaddr!!udp-sendto:192.168.50.44:7778 /dev/ttyS%TTYNUM%

Link to comment
Share on other sites

  • 3 weeks later...

Unterstützt DCS BIOS schon 1.5? Bei mir gehts nicht:huh:

Aircrafts: F-16C | TF-51 | M2000C | F/A-18C | AV-8B | Viggen | KA-50 | A-10C | UH-1 | Mi-8 |

Maps: Caucasus | Persian Gulf | NTTR | Normandy | Syria

System: AMD Ryzen 3700X | 32GB Ram | AMD Radeon RX 5700 XT | Win10 64Bit | 1TB 970 EVO M.2 SSD

Equipment: TrackIR 5_Trackclip Pro |TM Warthog HOTAS | Oculus Rift S

Link to comment
Share on other sites

Der DCS Datenstrom beim connect-serial-port funktioniert 1.5 nicht aber im 1.2 schon.

Aircrafts: F-16C | TF-51 | M2000C | F/A-18C | AV-8B | Viggen | KA-50 | A-10C | UH-1 | Mi-8 |

Maps: Caucasus | Persian Gulf | NTTR | Normandy | Syria

System: AMD Ryzen 3700X | 32GB Ram | AMD Radeon RX 5700 XT | Win10 64Bit | 1TB 970 EVO M.2 SSD

Equipment: TrackIR 5_Trackclip Pro |TM Warthog HOTAS | Oculus Rift S

Link to comment
Share on other sites

Oh man,

ich könnt mein Kopf gegen die Wand hauen. Daran hab ich über haupt nicht gedacht.

Ich danke dir.:thumbup:

Aircrafts: F-16C | TF-51 | M2000C | F/A-18C | AV-8B | Viggen | KA-50 | A-10C | UH-1 | Mi-8 |

Maps: Caucasus | Persian Gulf | NTTR | Normandy | Syria

System: AMD Ryzen 3700X | 32GB Ram | AMD Radeon RX 5700 XT | Win10 64Bit | 1TB 970 EVO M.2 SSD

Equipment: TrackIR 5_Trackclip Pro |TM Warthog HOTAS | Oculus Rift S

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...