Pc controller selber bauen [Nano]

ich hatte neulich die geniale idee mir einen eigenen pc controller zu bauen, also habe ich mir für 17 euro irgendwas nen arduino nano, 20 knöpf und zwei joysticks besorgt. meine original idee war jetzt das ganze mit variablen und hid/tastatur/maus emulation zu machen. die teile sind bald da und da ich im internet nicht wirklich was dazu gefunden habe wollte ich malfragen ob irgendwer verbesserungs vorschläge hätte die über "kauf dir einfach nen xbox 360 controller mit usb" hinausgehen. mir et es hauptsächlich um tips für den code da ich schon ziemlich genau weis wie ich das ganze bauen möchte

lg karibu

Da der Nano nicht als HID arbeiten kann, wird findest du im Internet dazu nichts. Das funktioniert einfach nicht.

Du hättest dir einen Leonardo oder ProMicro kaufen müssen, da sie auf dem Atmega32u4 basieren, der ohne große Mühen ein HID emulieren kann.

V-USB, wäre eine Möglichkeit.

Würde es denn mit einem micro klappen?

3X0karibu:
Würde es denn mit einem micro klappen?

Wenn es er einen 32u4 als Mikrocontroller hat, dann ja.

Der Micro kann mit den Standard-Arduino Libs als Maus und Tastatur arbeiten.

Wir hatten hier vor einigen Monaten einen Thread zur Joystick Library für den Micro. Hatte ich mir damals im Verlauf der Diskussion auch angesehen, hat problemlos funktioniert. Ich bin mir nur nicht sicher, ob sich das beides ohne Handarbeit parallel betreiben lässt.

Im Vergleich dazu bringt der Teensy allerdings einiges mehr an Libraries standardmäßig mit, hat auch bessere Beispiele für komplexe Joysticks mit vielen Schaltern und kann auch die meisten USB-Geräte parallel darstellen.
https://www.pjrc.com/teensy/td_keyboard.html
https://www.pjrc.com/teensy/td_mouse.html
https://www.pjrc.com/teensy/td_joystick.html
https://www.pjrc.com/teensy/td_midi.html
https://www.pjrc.com/teensy/td_flightsim.html

@ArduFE danke für die nützlichen , habe mir grade mal den teensy kosmos angesehen und wollte fragen welcher denn für mein projekt das beste ist

3X0karibu:
@ArduFE danke für die nützlichen , habe mir grade mal den teensy kosmos angesehen und wollte fragen welcher denn für mein projekt das beste ist

Hallo,

also mit den 8-Bittern (Teensy 2, Teensy 2++) würde ich nicht mehr anfangen. Paul Stoffregen (so heißt er auch auch als Benutzer oben im englischen Forum) hat kürzlich mal geschrieben, die baut er noch weil es einige Projekte gibt, deren Baupläne diese verlangen. Solange da noch Nachfrage ist, die die Produktion finanziert, geht es weiter.

Die normale Teensy Famile besteht aus LC, 3.2, 3.5 und 3.6, alle mit Prozessoren der Firma Qualcomm (früher NXP, noch früher Freescale, ehemals Motorola).

Alles sind 32 Bit Prozessoren mit 3.3 V Logikpegel. Der 3.2 und 3.5 tolerieren 5V Signale an den reinen Digitalpins, die anderen würden davon kaputt gehen.

LC steht für "Low Cost" und liegt leistungsmäßig auf dem Level eines Arduino Zero.

Der 3.2 ist eigentlich das Standardmodell, würde ich jetzt erstmal empfehlen. Es gibt ihn auch bei den deutschen Händlern wie Watterott oder EXP-Tech mit oder ohne angelötete Pins. Der 3.2 ist etwa so schnell wie der Arduino Due.

3.5 und 3.6 sind ziemlich leistungsfähig. Neben dem großen Speicher haben die Prozessoren eine FPU, sie können Berechnungen mit dem Typ float (aber nicht double) in Hardware machen, das ist deutlich schneller als per Software. Außerdem haben sie einen Mikro-SD Steckplatz mit echtem SDHC-Interface, das ist auch mehrfach schneller als ein Shield mit SPI-Schnittstelle. Dann ist auch noch eine RTC (= Uhr verbaut), man muss nur noch eine Knopfzelle anschliessen, dann behält der Teensy die Uhrzeit auch im ausgeschalteten Zustand.

Ich würde also mal den 3.2 empfehlen, bei schmalem Budget den LC. Wenn man sehr viele IOs braucht, könnte sich der 3.5 gegenüber Erweiterungs-ICs am 3.2 rechnen.

@ArduFE also, wenn ich das richtig verstanden habe:

ArduFE:
Die normale Teensy Famile besteht aus LC, 3.2, 3.5 und 3.6, alle mit Prozessoren der Firma Qualcomm (früher NXP, noch früher Freescale, ehemals Motorola).

Alles sind 32 Bit Prozessoren mit 3.3 V Logikpegel. Der 3.2 und 3.5 tolerieren 5V Signale an den reinen Digitalpins, die anderen würden davon kaputt gehen

Brauche ich einen 3.2 oder 3.5 da meine joystick folgende pins haben:

GND
+5V
VRX
VRY
SW

richtig?
ich frage das weil mein budget ein bisschen begrenz ist und da ein 2.0 (++) schon an die 11€ kostet....

Dann nimm doch den Micro. Als Clone sehr günstig, arbeitet mit 5V und die 8bit Controller sind gegenüber Schaltungsfehler robuster. Als Game-Controller sollte der auch ausreichen.

Du solltest genau dein Projekt planen und vorstellen, damit wir noch auf weitere Fallstricke hinweisen können. Z.B. 20Tasten übersteigen die Zahl der Eingangspins und deshalb müsste man überlegen, wie man die sinnvoll anschließt (Portexpander oder Matrix).

Bei so kleinem Budget würde ich auch zu etwas günstigem tendieren, also einem Klon mit 32u4.

Mit ein paar kleinen Anmerkungen:

Die Hardware im 32u4 unterstützt maximal 4 USB-Geräte gleichzeitig als "USB-Verbundgerät".
Die Kombination Serial + Maus + Tastatur + Joystick würde im Prinzip gehen.
Aber jedes USB-Gerät belegt RAM, wahrscheinlich wäre dabei deutlich weniger als 1 kB für den Sketch übrig.

Fertige Joystick Libraries unterstützen möglicherweise nicht so viele Buttons. D.h. man muss ggf. die Library umschreiben, inbesondere auch die Größe der USB-Datenstrukturen. Das erfordert einiges an Wissen.

Das wäre auch der Fall, wenn sich Joystick- und Maus/Tastaturlib von Haus aus nicht parallel betreiben lassen.

Wahrscheinlich wäre dann am einfachsten mit 2 Arduino Micros zu arbeiten.

Beim Teensy sind die USB-Librarys modular zusammenfügbar, die 32 Bitter haben eh genug RAM und auch auf dem 2.0++ wird der AT90USB mit 8 kB RAM verwendet. Deswegen überhaupt meine Anmerkung in dieser Richtung.

ich muss hier einmal kurz anmerke das ich nur 20 knöpfe gekauft habe, jedoch nur maximal 14 verwenden würde (4 fürs steuerkreuz + 4 for abxy + 4 für die schultertasten und evtl +2 für makro tasten und die joysticks enthalten ja auf jeweils einen knopf

Teile dein Projekt erst einmal in Teile auf.

Das Abfragen der Taster und Joysticks, ohne Senden über USB, kannst du auch erst mal mit jedem anderen Arduino erforschen.

Die Joystick Library kannst du auch erstmal mit der Arduino IDE offline erforschen. Wenn du dann sicher bist, dass das was für dich ist, kauf dir einen Micro Klon.

Auch Teensyduino lässt sich über die Arduino IDE installieren und ansehen, ohne dass man einen Teensy besitzt.

Tastatur und Maus ist eine weitere Projektbaustelle. Da sollte man darauf achten, dass man das abschaltbar programmiert. Ein Micro der nach dem Anschliessen wild Tastatur und Mausbefehle sendet, ist nur schwer wieder zu bändigen. (Zumindest Teensy 3.x lassen sich dagegen durch Drücken des Buttons für 13-17 Sekunden in den Auslieferzustand zurückversetzen.)

Ein Micro wo Serial nicht richtig funktioniert ist schwer wieder in Gang zu setzen. Dazu gibt es hier auch einige Threads. (Auch das Problem hat der Teensy nicht, er wird über einen USB-Programmerchip programmiert, Serial wird dafür nicht benutzt.)