Arduino als Simulator Schnittstelle

Servus,

ich versuche für ein Projekt eine Schnittstelle zwischen ca. 100 versch. Knöpfen und Drehknöpfen und dem Computer eine Schnittstelle zu schaffen. Nun möchte ich möglichst vermeiden einfach nur ein paar Tastenklicks zu emulieren sondern dem Computer einen "Controller" vorgaukeln.

Ich hab im vorfeld bereits im Forum hier gesucht, aber leider nichts wirklich passendes auf mein Szenario gefunden. Welchen Arduino könntet ihr mir denn für die Menge an Eingabegeräten teils mit steuerbarer Hintergrundbeleuchtung empfehlen?

Grüße,

Da musst Du schon etwas genauer werden.

Wie soll denn die Kommunikation mit dem PC erfolgen? Als HID, seriell, per (W)LAN, ...?

Was für Eingabegeräte sollen es sein?

Gruß Tommy

Oh entschuldige, das hab ich total vergessen zu schreiben.

Da es ein permanentes Setup wird soll USB als Schnittstelle verwendet werden. (Wichtig wäre es, möglichst alles über ein emulierten Controller am PC zu verwenden) Als Eingabegerät soll möglichst ein Controller emuliert werden, damit es keine Probleme mit fälschlichen Tastatureingaben geben kann.

Mit Eingabegeräten meine ich die verschiedenen Schalter, Knöpfe und Drehknöpfe.

Du bauchst dann aber auf dem PC ein Programm, dass die Eingaben entgegen nimmt (beim Arduino in diesem Fall von einem virtuellen COM-Port), diese verarbeitet und etwas damit macht.

Ich hatte auch noch nach der Art der Eingabegeräte gefragt. Sind das nur Kontakte oder auch andere Sachen, z.B. welche, die schon Spannungen (wenn ja, wie hoch) ausgeben?

Wie hoch sind die realen Echtzeitforderungen bzw. was soll das werden?

Gruß Tommy

Bei den Eingabgeräten bin ich mir noch unsicher in wieweit man das alles über ein Arduino laufen lassen kann. Geplant sind letztendlich Armaturen mit Schaltern die noch keine Spannung haben. Die Hintergrundbeleuchtung der eingebauten Dioden soll schlussendlich über den Arduino gesteuert werden.

(Geplant ist eine Armaturentafel für einen Flugsimulator)

Was soll auf dem PC angesteuert werden?

So ein Flugsimulator hat ja auch analoge Ein-/Ausgaben.

Ansonsten würde ich an Deiner Stelle erst mal eine klare Aufstellung machen, was garantiert/möglicherweise an Eingabegeräten dran kommen soll, dann gibt es erst mal eine Hausnummer.

Ansonsten würde ich mit einem Arduino MEGA 2560 anfangen, die I2C-Anschlüsse nicht verplanen, die Grundlagen lernen und mit einigen Tastern anfangen. Damit kannst Du auch den Durchgriff auf den PC testen.
Wenn das dann geht, kannst Du es weiter ausbauen. Wenn ein MEGA nicht genügt, kannst Du Portexpander über I2C ergänzen bzw. einen/mehrere Weitere Arduinos verknüpfen.

Gruß Tommy

Ja, wenn das geheime zu steuernde Programm Tastatursteuerung hat, wäre HID das naheliegende Richtung PC.
Hier fehlen aber wieder mal Infos, deshalb kann man nur Allgemeinplätze liefern.

Gruß Tommy

@Tommy56 Danke für den Tipp, gerade für die verschiedenen Schalter muss ich wahrscheinlich sowieso noch ein wenig rumtüfteln, da ich bisher höchstens mit reinen Kippschaltern gearbeitet habe für kleinere Projekte.

In diesem Beispiel würde es um den FSX gehen.

Ich hatte von einem Freund mir mal ein Arcaze Board geliehen welches nur für 20 digitale und 20 analoge Signale gedacht ist, was für mein vorhaben leider etwas zu wenig ist. Deshalb hatte ich die überlegung die versch. Taster mit einem oder mehreren Boards zu verbinden und als ein Controller zu emulieren.

Wegen der Hintergrundbeleuchtung der Tasten war ich mir allerdings unsicher welches Arduiono empfehlenswert wäre ca. 22 Glühleuchten (24V) anzusteuern.

Direkt kann das kein Arduino ansteuern. Da brauchst Du für jede Lampe noch einen Transistor/MOSFET.
Warum nimmst Du keine LED?

Kannst Du mal noch die Fragen zum PC-Programm beantworten, besonders, ob das eine Tastaturschnittstelle hat (also auch mit der PÜC-Tastatur bedient werden kann). Das würde die Auswahl des Arduino stark beeinflussen.

Gruß Tommy

Da in den Schaltern und Kontrollleuchten bereits die original Glühleuchten verbaut sind und ich nur 2-3 austauschen müsste wollte ich diese gleich übernehmen. Alternativ müsste ich mich erst nach passenden LED's umschauen.

Die Simulation kann auch per Tastatur mit allen Funktionen bedient werden.

Sorry :frowning: FSX = Flight Simulator X
Der Simulator ist gerade für so eigenbauten sehr prädestiniert, da dieser für vieles eine Schnittstelle mitliefert oder die fehlenden durch Modifikationen nachgeliefert werden.

Wenn der per Tastatur bedienbar ist, dann würde ich den Vorschlag von noiasca unterstützen und die Eingaben richtung PC mit einem HID-Interface (Arduino spielt Tastatur) realisieren.

Das können aber nur bestimmte Arduinos, die ich gerade nicht im Kopf habe.

Gruß Tommy

Was ich soweit gefunden habe, verwenden einige eine Mischung aus diesem Arcaze Board und einem Arduino (welches genau schreiben leider die meisten nicht rein, aber sonst nennt die Mehrheit das Leonardo Board).

Da ich aktuell kein Arcaze Board kaufen kann (da die Bezahlfunktion bei mir nicht funktioniert) wollte ich mich nun auf ein oder zwei Arudinos festlegen.

Aber für das Verständniss um jetzt nichts falsch aufzufassen wäre es sinnvoll die Schalter über ein Leonardo Board zu steuern, wodurch ich jedoch mit den Inputs so wie ich das gelesen habe auf 20 Stück begrenzt bin.

Dann könnte ich doch über die I2C Schnittstelle mit einem Portexpander erstmal auf ca. 30 erweitern oder würde es auch funktionieren mehrere arduinos in reihe zu schalten?

Du kannst über I2C bis zu 8 Stück PCF8574 (8Bit-Portexpander) anschließen.
Ob der Speicher dann noch reicht, wirst Du merken.

Du kannst Arduinos nicht in Reihe schalten, aber zwischen ihnen z.B. per I2C kommunizieren.

Wichtig ist, dass Du die Grundlagen lernst, denn nur Du kannst das Ganze programmieren, da nur Du Deine Hardware hast. Wir können nur punktuell Hilfestellung leisten.

Gruß Tommy

Ich würde einen Arduino Leonardo nutzen und zum einlesen haufenweise Portexpander oder Schiebe Register.

z.B.
74HC595 Schieberegister mit 8 Ausgängen
74HC165 Schieberegister mit 8 Eingängen

Es können beliebig viele davon kaskadiert werden und per SPI sehr schnell "geupdated" werden.

Bei zu wenig Analogeingängen kannst du analoge Multiplexer benutzen z.B.
74HC 4051 8 Eingänge auf einen Analogeingang am Arduino.

Diese ICs sind recht günstig und überall zu haben. Toturials gibt es auch in der Arduino Referenz.

Wenn I2C, dann könnte man einen Holtek HK16K32 für bis zu 128 LEDs verwenden. Gibts auch auf einem Breakout-Board. ... wer das Ganze aber noch verkabeln will - steht auf einem anderen Blatt ^^

Tommy56:
Du kannst Arduinos nicht in Reihe schalten, aber zwischen ihnen z.B. per I2C kommunizieren.

Oh sry, mit in Reihe schalten meinte ich per I2C kommunizieren lassen und ggf. die Inputs / Signale an den "Haupt Arduino" der mit dem PC verbunden ist weiterzuleiten (Ich weiß nicht ob das realistisch ist)

Allerdings klingt es für mich einfach mehrere PCF8574 zu verwenden und ggf. dann später mit einem weiteren Arduino der die verbleibenden Inputs verwaltet zu ergänzen. (Alternativ die Schieberegister)

Gibt es einen großen Unterschied zwischen den zwei, außer dass man bei den Portexpandern maximal 8 Stück anschließen kann?

Für die Kontrollleuchten habe ich mir überlegt diese über einen zusätzlichen Arduino anzusteuern für die saubere Trennung. Das Holtek könnte dabei nützlich werden :slight_smile:

ich würde Zeit sparen und sowas probieren. Den Leonardo hast niemals in einer Stunde fertig programmiert ...

Das Problem ist nicht wie Arduino viele Tasten / Schalter einlesen kann bzw jede Menge LED / Glühlampen angesteuert werden können.
Das Problem ist wie das Programm (Simulator) die Daten entgegennehmen will / kann / soll.
Arduino Leonardo oder Arduino MICRO kann ohne Probleme als HDI (Tastatur / Mouse) programmiert werden. Da sind keine zusätzliche Treiber bzw Programme notwendig.
Grüße Uwe

USB hat den Vorteil, dass man über Hubs viele Geräte parallel betreiben kann. Hier hat einer ein altes 737 Cockpit über 35 Teensys mit dem PC verbunden
https://www.pjrc.com/737-300-flightsim/

Arduino Leonardo oder Micro wären da die Einstiegsmodelle. Der Betrieb von mehreren HID Geräten auf einem Controller, z.B. Tastatur, Maus und Joystick ist möglich. Man sollte aber beachten, dass das einiges an Resourcen des Controllers frisst. Dazu noch eine größere Zahl I2C Portexpander zeitgenau abzufragen, wird für einen 8 Bitter nicht ganz einfach.