Pulg:
ich suche ein Möglichkeit, die Eingabe von folgenden Funktionen per USB an einen PC zu übertragen:
- Joystick XY-Axen
- Ruderpedale Z-Axe
- 200 Buttons
Was vestehst Du genau unter "per USB"?
Daten zwischen einem Arduino und einem PC kannst Du am einfachsten über den USB-Anschluß in Form einer "virtuellen seriellen Schnittstelle" in einen PC übertragen. Alle handelsüblichen PC-Betriebssysteme (Windows, Linux, MacOS) haben entsprechende CDC-Serial Treiber bereits im Betriebssystem enthalten.
Du müßtest im PC-Programm dann nur die Möglichkeit haben, eine serielle (COM) Schnittstelle zu öffnen und auszulesen, dann kannst Du die Daten vom Arduino empfangen.
"Achsen" Daten von drei Potentiometern mit 10-Bit Auflösung (Werte 0...1023) kannst Du mit 3x2 Bytes senden, und die Stellung von 200 Buttons, kannst Du bitcodiert in 25 Bytes übertragen.
Mit der "normalen" seriellen Datenrate von 115200 Baud kannst Du bis zu 11520 Zeichen pro Sekunde übertragen. Wieviel Daten Du da rüberschaufelst, hängt vom Protokoll ab.
Wenn Du "alle Daten reihum immer wieder" senden möchtest, könntest Du bei Bedarf sicher über 100 komplette Datensätze pro Sekunde an den PC senden.
Bei den Buttons stellt sich nur die Frage: Willst Du nur testen, ob EIN Button zur Zeit von 200 gedrückt wird. Oder müssen "Schalterstellungen" ausgewertet werden, d.h. MEHR ALS EIN Button kann zur selben Zeit betätigt sein. Wenn immer nur 1-aus-200 Buttons beträtigt wird, kann die Auswertung über eine 15x15 Keypad-Matrix erfolgen, das benötigt nur 30 digitale Eingänge und keine Zusatzhardware. Wenn Du aber Viele-aus-200 Buttons auf Betätigung prüfen möchtest, benötigst Du Portexpander als Zusatzhardware. Um da auf 200 zu kommen, werden wohl schon einige Klimmzüge mit Zusatzhardware notwendig sein. Zum Beispiel können von diesen bis zu 8 Stück kombiniert werden, so dass Du auf 8*16 = 128 I/O-Pins am I2C kommen kannst.
Wenn es auf Platzbedarf nicht ankommt, würde ich wohl nicht auf Portexpander setzen, sondern einfach 4 Stk. Arduino MEGA-Boards kombinieren: Drei Boards sammeln je Daten von je 60 Buttons und senden die Daten zuerst an ein viertes "Master-Board", das dann noch die Daten von 20 weiteren Buttons und den 3-Achsen-Potentiometern sammelt, und dann alles insgesamt an den PC weitersendet.