Forum: Mikrocontroller und Digitale Elektronik günstiges USB Interface für Arcade Automat


von Piotre (Gast)


Lesenswert?

Ich stehe vor einem Problem.

Mein aktuelles Projekt (ein eigener Arcade Automat 
http://de.wikipedia.org/wiki/Arcade-Automat) benötigt einer Verbindung 
zum PC.

Er wird 4 Joysticks haben sowie einige Buttons. Insgesamt sind das etwa 
50 Eingänge.
Es gibt im Internet extra Controller dafür. etwa das IPac 
http://www.ultimarc.com/ipac1.html

Da mir dieses noch zu teuer erscheint habe ich gestern eine alte Hama 
USB Tastatur auseinandergenommen und mit dem internen Controller 
experimentiert. Wie zu erwarten hat das super funktioniert. Ich könnte 
nun externe Taster anschließen.

Ich sehe darin aber ein großes Problem. Es können nicht beliebig viele 
Tasten gleichzeitig gedrückt werden. Bei einer Runde Mario Kart 64 
können das pro Spieler aber mal 4 Tasten gleichzeitig sein. Auch bei 
Street Fighter ist dies realistisch.

Gibt es Tastaturen die sehr viele Taster gleichzeitig (vielleicht 16 
oder mehr) erkennen können und günstig genug zum ausschlachten sind?

Habt ihr eine andere Idee?

von Antworter (Gast)


Lesenswert?

Probier mal ne ps2 Tastatur!

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Piotre schrieb:
> Habt ihr eine andere Idee?

XX-Warrior von Codemercs. Das sind fertig programmierte Microcontroller 
mit USB-Anschluss, die verschiedenste Konstellationen von Joysticks, 
Tasten etc. unterstützen.

http://www.codemercs.com/index.php?id=controller0&L=0

von Borislav B. (boris_b)


Lesenswert?

Piotre schrieb:
> Ich sehe darin aber ein großes Problem. Es können nicht beliebig viele
> Tasten gleichzeitig gedrückt werden.

Ehrlich? Es würde mich doch sehr wundern, wenn das nicht ginge...
Zumindest gibt es doch keine technische Notwendigkeit dafür, eine 
Tastatur so einzuschränken. was würden denn dann die ganzen Gamer 
machen, die am PC spielen?

: Bearbeitet durch User
von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Boris P. schrieb:
> Zumindest gibt es doch keine technische Notwendigkeit dafür, eine
> Tastatur so einzuschränken

Aber selbstverständlich.

Einfache Matrixtastaturen können nur eine sehr überschaubare Anzahl 
gleichzeitig gedrückter Tasten erkennen; es muss gezielt Aufwand 
getrieben werden, um mehrere Tasten erkennen zu können. Das nennt sich 
dann "n-key-rollover". Bei meiner IBM Modell M ist nach vier 
Buchstabentasten schluss.

Übliche Tastaturen erfassen Alt/Ctrl/Shift etc. separat von den normalen 
Tasten und erkennen so mehrfach gedrückte Tasten.

Spezielle "Gamer"-Tastaturen sind hier noch weiter optimiert.

von Borislav B. (boris_b)


Lesenswert?

Rufus Τ. Firefly schrieb:
> Aber selbstverständlich.

Verstanden habe ich das jetzt aber immer noch nicht...

Da sitzt also ein spezieller Controller in der Tastatur, an den alle 
Tasten als "Taster" angeschlossen sind. Was spricht nun dagegen, bei 
einer Änderung (eine Taste wurde gedrückt/losgelassen) den aktuellen 
Zustand aller Tasten per USB an den PC zu schicken?

Bei ~105 Tasten müssten dazu nur 14 Byte übertragen werden. Wo ist da 
das Problem?

von Piotre (Gast)


Lesenswert?

Antworter schrieb:
> Probier mal ne ps2 Tastatur!

Kann die mehr? Jede?

Rufus Τ. Firefly schrieb:
> Piotre schrieb:
>> Habt ihr eine andere Idee?
>
> XX-Warrior von Codemercs. Das sind fertig programmierte Microcontroller
> mit USB-Anschluss, die verschiedenste Konstellationen von Joysticks,
> Tasten etc. unterstützen.
>
> http://www.codemercs.com/index.php?id=controller0&L=0

schau ich mir gleich an

Boris P. schrieb:
> Verstanden habe ich das jetzt aber immer noch nicht...

Die Tastatur die ich geöffnete hat zwei Ports. Beim Tastendruck wird ein 
Bit des einen Ports mit einem Bit des Anderes verbunden. Jetzt hängen an 
einem Bit aber mehrere Tasten. Wenn zu viele Tasten gedrückt werden, 
kann der Controller nicht mehr erkennen, welche Tasten genau gedrückt 
wurden. Schau dir mal eine Matrix an.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Boris P. schrieb:
> Da sitzt also ein spezieller Controller in der Tastatur, an den alle
> Tasten als "Taster" angeschlossen sind.

Sieh Dir einfach mal an, wie eine Tastatur aufgebaut ist. Da ist nicht 
jede Taste einzeln an einem eigenen Eingang eines µC angeschlossen, 
sondern die Tasten sind in einer Matrix verschaltet. Und das wiederum 
schränkt die Anzahl der gleichzeitig als gedrückt erkennbaren Tasten 
deutlich ein.

von Manfred F. (manfred_f)


Lesenswert?

Piotre schrieb:
> Es gibt im Internet extra Controller dafür. etwa das IPac

> Da mir dieses noch zu teuer erscheint

Nö. Gemessen an dem was da noch so an Kosten auf dich zu kommt bevor der 
Automat komplett ist gehen die Kosten für das I-Pac im Rauschen unter. 
Und aus eigener Erfahrung kann ich dir sagen: Die diversen Spielereien 
mit ausgeschlachteten Tastaturen bringen nichts. Irgendwo hakts da 
schlussendlich immer. Mit dem I-Pac ersparst du dir so einiges.

: Bearbeitet durch User
von Guido Körber (Gast)


Lesenswert?

Piotre schrieb:
> Antworter schrieb:
>> Probier mal ne ps2 Tastatur!
>
> Kann die mehr? Jede?

Nein, kann sie nicht.

Bei PS/2 werden Tastendrücke einzeln an den Rechner geschickt, je nach 
Taste mit mehreren Bytes. USB verwendet dafür ein Standardformat in dem 
alle 8 Modifiers (shift, alt...) als Bitfeld und bis zu sechs Tasten als 
jeweils ein 8 Bit Code übertragen werden. Prinzipiell kann eine Tastatur 
auch eine erweiterte Version dieses Formates verwenden, das passiert 
aber selten.

Für normale Tastaturanwendungen ist es nicht notwendig mehr als ein paar 
Tasten gleichzeitig zu benutzen, also warum sollten sich die Hersteller 
des Aufwand machen? Dazu kommt, dass eine Tastenmatrix Dioden an jeder 
Taste haben muss, damit auch beliebige Kombinationen sauber erkannt 
werden. Auch ein Kostenfaktur und bei Folienschaltern technisch 
aufwändig.

von c-hater (Gast)


Lesenswert?

Rufus Τ. Firefly schrieb:

> die Tasten sind in einer Matrix verschaltet. Und das wiederum
> schränkt die Anzahl der gleichzeitig als gedrückt erkennbaren Tasten
> deutlich ein.

Es werden immer alle tatsächlich gedrückten Tasten erkannt, egal wie 
viele es sind.

Das Problem ist das "Ghosting", welches dafür sorgt, daß zusätzlich zu 
den tatsächlich gedrückten Tasten weitere Tasten als gedrückt erkannt 
werden. An der einfachsten Form eine 2x2-Matrix kann man das sehr leicht 
durchdenken, wenn dort drei der vier Tasten real gedrückt werden, sieht 
man immer auch die verbleibende Vierte als gedrückt.

Und wie Guido Körber richtig schrieb, ist eine Diode in Reihe zu jeder 
einzelnen Taste die einfachste Möglichkeit, diesen Effekt zu 
unterdrücken. Aber offensichtlich immer noch zu teuer, um tatsächlich 
angewendet zu werden, ich habe jedenfall in noch keiner PC-Tastatur 
Dioden in der Matrix gesehen.

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.