DIY Joystick Fundoino Mega

Hallo an alle,

mein erstes Projekt führte mich zu einem bau eines kleinen Joysticks mit diversen Pushbuttons welches ich gerne fürs Gamen benutzen möchte. Zu meinem Geständnis hatte ich keine Ahnung wie ich vorgehen sollte und bis zum jetzigen Stand hat mich eine KI begleitet und unterstützt. Doch jetzt drehen sich die Anweisung der KI im Kreis und ich komme nicht mehr weiter!


Ich verwende einen Fundoino Mega 2560 (KI Empfehlung). Daran habe ich die drei Joystickachsen auf die Analog Inputs A1-A3 gepinnt. Dessen Spannungsversorgung vom 5V Output ist auch gelegt. Sämtliche Pushbuttons habe ich auf auf die Digital Inputs 22-42 gepinnt. Masseanschlüsse sind auch angeschlossen.
Vereinzelt konnte ich die Buttons auch schon testen und auch der Joystick schickt Signale über die Analog Inputs.

Problem:
Ziel des Projekts ist, das Windows (ich verwende WIN11) meinen Joystick Marke Eigenbau als Gamecontroller erkennt auf dem die Achsen und Pushbuttons zu sehen sind. (siehe Bsp.:)

An der Verkabelung liegt es meiner Einschätzung nach nicht. Was mir jedoch nicht gelingt, ist die Software‑Konfiguration: Ich bekomme es nicht programmiert, dass Windows das Gerät als Gamecontroller erkennt. Dafür benötige ich bitte Unterstützung.

Beste Grüße
Markus

Man solte immer zeigen was man hat.

1 Like

Der Mega muss dafür als HID erscheinen!

Das ist (d)ein Problem!

Mögliche Lösungen:

  1. V-USB verwenden
  2. den 16U2 das machen lassen
  3. Einen Leonardo statt des Mega verwenden
1 Like

Der Arduino MEGA 2560 Nachbau ist ein USB Slave und nur eine Serial Emulation als COM Schnittstelle.
Damit Dein Projekt als Joystick erkannt wird muß die USB-Gerät vom PC als HDI erkannt werden. Der MEGA 2560 kann das nicht.

Grüße Uwe

1 Like

Danke für deine Antwort. Das mit dem HID hatte ich auch schon einmal gelesen.
Zu deinen Lösungen 1 und 2: Ich habe kurz recherchiert, was du damit meinst. Letztendlich müsste dabei irgendein Chip umprogrammiert werden – und das ist für mich als Laien ohne detaillierte Anleitung schlicht nicht machbar.
Lösung 3 wirkt für mich dagegen umsetzbar. Allerdings hat der Leonardo zu wenige Pin‑Eingänge für meine Pushbuttons. Könnte man den irgendwie erweitern?

besten Dank!
Markus

Ja, das geht.
Nimm einen I2C-Portexpander, z.B den MCP23017.
Da hast du weiter 16 Pins für deine Tasten.

1 Like

Du kannst den Mega als Porterweiterung des Leonardo nutzen.

1 Like

Das Vorgehen ist das selbe.

1 Like

Ja aber
Nach dem Umprogrammieren funktioniert der USB Upload nicht mehr. Aber zum Umprogrammieren braucht man einen ISP Programmierer ( oder einen anderen Arduino als ISP Programmierer mit dem entsprechenden Sketch) und mit dem kann man auch den Sketch danach hochladen.

Grüße Uwe

1 Like

Werden mehrere Deiner Pushbuttons gleichzeitig betätigt oder nur jeweils einer oder zwei zur Zeit?

Falls es maximal zwei sind, kann man die Buttons ohne Dioden als Matrix verschalten. Für 20 Buttons benötigt man z.B. eine 5x4er Matrix, also insgesamt 9 Pins.

.Die sicherste Verdrahtung ist im Zweifelsfall der Einsatz einer Diode pro Taste, um Ghosting (fehlerhafte Auswertung) zu vermeiden. Ob zusätzliche Dioden erforderlich sind, hängt von der realen Nutzung ab. Unter Umständen kann man parallel betätigte Tasten so verdrahten, dass kein Ghosting entsteht... ( wenn es z.B. nur Tasten betrifft, die man gezielt in der gleichen Spalte bzw. Reihe anordnen kann).

Siehe https://www.dribin.org/dave/keyboard/html/ghosting.html

und hier

https://forum.arduino.cc/t/codeproblem-arduino-leonardo-als-tastatur/1160391/13?u=ec2021

Letzterer Aufbau verwendet keine Dioden, so daß maximal zwei Tasten gleichzeitig betätigt werden dürfen.

Viel Erfolg!
ec2021

1 Like