Forum: Mikrocontroller und Digitale Elektronik USB -Interface für Flusi selber bauen?


von Udo R. (blackbird)


Lesenswert?

Freundliches Hallo zusammen!

Habe wieder angefangen mit einem Flugsimulator
(X-Plane 11.31) zu spielen  :-)
Mir sind die Tasten auf meinem Joystick (Logitech Extreme 3D PRO) zu 
wenig.
Möchte auch andere Dinge ein- und ausschalten können, evt.
auch steuern über Poti.
Daher suche ich eine Möglichkeit, über USB einen weiteren (Eigenbau?) 
Controller anschließen zu können.
Habe auch schon etwas gewühlt und fand den Teensy 3.2. Der soll ja recht 
einfach zu programmieren sein.
Doch nun stellen sich mir einige Fragen:
- stört sich dann der/mein Controller mit meinem Joystick?
- ich kann für den Flusi (fast?) alle Fkt. auf Tasten meiner Tastatur 
legen.
  Geht das dann mit dem Controller auch?
- Kann ich den Controller (ganz normal) in
  C Programmieren? (über die Ard.-IDE)
- Muss ich da evt. etwas in der Scriptsprache "FlyWithLua" 
dazuschreiben?

Falls sich jemand von Euch damit auskennt bitte ich um Hinweise und 
Tipps.
Ein Verweis auf "schau ins Flusibrett" o.ä. erübrigt sich wohl bei o.a 
Thema.

Ich wünsche einen schönen Restabend!

        Udo

von Alex D. (daum)


Lesenswert?

Ich habe zwar noch nie mit dem Teensy board gearbeitet, aber habe nach 
kurzer Google suche gefunden, dass man den als Tastatur-emulator 
benutzen kann, mit Keyboard.print(). Hier eine Doku dazu 
https://www.pjrc.com/teensy/td_keyboard.html.

Man kann auch mit Keyboard.press und Keyboard.release 
Tastenkombinationen bauen, z.B. zuerst Strg drücken, dann etwas anderes, 
dann in der verkehrten Reihenfolge loslassen.

Dann müsstest du nur noch ein paar Taster anschließen und für jeden 
einen einzigartigen keycode schicken.

: Bearbeitet durch User
von pegel (Gast)


Lesenswert?

Ist das nicht ein gewöhnliches HID?

Mit diesem Tool hast du einen Monat Zeit den Code von deinem jetzigen 
Controller zu analysieren:

http://www.usblyzer.com/usb-human-interface-device-hid-class-decoder.htm

Dann musst du diesen mit deinem Eigenbau auch so senden und die 
zusätzlichen Codes irgendwie in Erfahrung bringen.

Als STM32 Fan würde ich den nehmen, da je nach Typ ausreichend IO, ADC 
usw. vorhanden sind.

von S. R. (svenska)


Lesenswert?

Udo R. schrieb:
> Mir sind die Tasten auf meinem Joystick (Logitech Extreme
> 3D PRO) zu wenig.

Du willst also "mehr Tasten für den Simulator". Kein Problem. :-)

> Möchte auch andere Dinge ein- und ausschalten können, evt.
> auch steuern über Poti.

Du willst also sowohl digitale als auch analoge Werte haben.

Am sinnvollsten ist es, deinen Controller als USB HID-Gerät zu 
programmieren, und zwar als Joystick. Wegen HID brauchst du keine 
Treiber, und Joysticks sind naturgemäß sowohl analog als auch digital 
und werden von Windows unterstützt. Optimal also.

> Daher suche ich eine Möglichkeit, über USB einen
> weiteren (Eigenbau?) Controller anschließen zu können.

Das ist mit einem Controller, der USB kann, nicht besonders schwer. Ein 
Atmega32U4 oder so kann das, passende Boards (Arduino Leonardo oder Pro 
Micro) gibt's für erstaunlich wenig Geld.

Der Teensy 3.2 geht vermutlich auch, ebenso wie die meisten anderen 
Boards mit USB. Es hängt hauptsächlich davon ab, welche Vorkenntnisse du 
hast und mit welchen Controllern, Umgebungen und Sprachen du dich 
auskennst.

Wenn du dich mit Arduino auskennst, dann nimm einen Arduino mit 
richtigem USB (wie z.B. den Pro Micro). Wenn nicht, such dir was aus. 
:-)

> Doch nun stellen sich mir einige Fragen:
> - stört sich dann der/mein Controller mit meinem Joystick?

Dein Controller ist einfach ein zusätzlicher Joystick.
Es hängt von deinem Flusi ab, ob der mehrere Joysticks unterstützt 
(geraten: ja) und auch unterscheiden kann (geraten: ja).

> - ich kann für den Flusi (fast?) alle Fkt.
>   auf Tasten meiner Tastatur legen.
>   Geht das dann mit dem Controller auch?

Die wesentlich wichtigere Frage ist:
Kannst du die Funktionen auch auf Tasten des Joysticks legen? Und kannst 
du verschiedene Funktionen auch auf Tasten von verschiedenen Joysticks 
legen?

Der MS Flugsimulator kann das, daher vermute ich mal, dass das geht.

> - Kann ich den Controller (ganz normal) in
>   C Programmieren? (über die Ard.-IDE)

Wenn du einen Arduino nimmst, dann hast du Zugriff auf die ganzen 
Arduino-Bibliotheken und sie sollten auch funktionieren. Auch die IDE 
kannst du benutzen.

Und wenn du die Arduino-IDE nicht magst und "richtiges" C schreiben 
möchtest, dann kannst du die Dinger auch ganz normal mit dem Editor 
deiner Wahl schreiben, dem avr-gcc compilieren und avrdude flashen. Das 
hab ich mit sowas mal gemacht.

> - Muss ich da evt. etwas in der Scriptsprache "FlyWithLua"
>   dazuschreiben?

Keine Ahnung, ich kenn mich damit nicht aus. Wenn du den Controller als 
Joystick mit z.B. "6 Achsen und 24 Knöpfen" definierst und die 
Funktionen im Flusi darauf mappen kannst, dann nicht.

von Udo R. (blackbird)


Lesenswert?

Hallo und vielen Dank für die recht hilfreichen Tipps und Hinweise!
Ich werde mir mal einen Tastatur-Emulator mit dem Leonardo basteln und 
ausprobieren.

Schönen Abend noch!

von Stefan F. (Gast)


Lesenswert?

Schau Dir mal die "Key Warrior" Produktreihe an: 
https://www.codemercs.com/de/tastatur/28-keywarrior

von Guido Körber (Gast)


Lesenswert?

Unsere Controller (www.codemercs.com) werden gerne von Leuten 
eingesetzt, die Flugsimulator-Cockpits bauen wollen. Hier ist ein 
praktisches Beispiel:

https://familienvater-cockpit.de/

von Cyblord -. (cyblord)


Lesenswert?

Joystick Module:

http://www.leobodnar.com/products/BU0836/

Da muss man nichts mehr in Richtung PC und Firmware basteln. Nur noch 
Tasten und Potis dran. Wird direkt als Joystick in Windows erkannt.

: Bearbeitet durch User
von Klaus (Gast)


Lesenswert?

Udo R. schrieb:
> Habe auch schon etwas gewühlt und fand den Teensy 3.2. Der soll ja recht
> einfach zu programmieren sein.

Wenn du nicht programmieren willst, schau mal hier

https://www.codemercs.com/de/produkte

MfG Klaus

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.