Arduino als Tastaturcontroller verwenden

30.01.2014 yahe arduino hardware legacy

Manchmal dauert es eine ganze Weile, bis man die richtige Idee für die Lösung eines Problems hat, in diesem Fall habe ich für die richtige Idee fast ein halbes Jahr gebraucht. Und zwar ging es darum, wie ich es hinbekommen könne, das Tastaturfeld einer gekauften Tastatur mit einem Arduino zu verbinden. Hierzu hatte ich im letzten Jahr mehrere Tastaturen auseinander genommen, nur um herauszufinden, dass diese immer eine Tastaturmatrix aus Plastik enthielten, ein Material, mit dem man als Privatperson kaum praktisch arbeiten kann.

Doch manchmal sieht man den Wald vor lauter Bäumen nicht. Es gibt Tastaturen, mit denen man nicht solche großen Probleme hat. Gemeint sind mechanische Tastaturen, wie die Cherry G80-3000. Diese ist mit normalen, mechanischen Tasten versehen, die auf eine Platine gelötet sind. Damit kann man wunderbar arbeiten!

Cherry G80-3000 Cherry G80-3000 Cherry G80-3000 Cherry G80-3000 Cherry G80-3000 Cherry G80-3000

Man muss jedoch aufpassen, dass man beim Ablöten des standardmäßigen Controllers nichts kaputt macht. Falls das doch geschehen sollte, kann man es aber zum Glück auch relativ einfach wieder reparieren, indem man eine direkte Verbindung zieht. Schon kann man bereits die ersten Tests beim Auslesen der Tastatur machen.

Tastatur reparieren und auslesen Tastatur reparieren und auslesen Tastatur reparieren und auslesen

Im ersten Schritt reicht es, die Anschlüsse mit einem Multimeter zu verbinden und zu prüfen, ob eine durchgehende Leitung vorhanden ist. Dies sollte dann der Fall sein, wenn die passende Taste gedrückt wird. Hat man diesen Test erfolgreich erfolgreich hinter sich gebracht, kann man damit anfangen, durchzuprobieren, welche Anschlüsse für welche Taste stehen. Es dauert ein kleines bisschen, bis man weiß, welche Tasten mit welchen Anschlüssen verbunden sind, doch die Arbeit lohnt sich. Bereits die ersten praktischen Tests sehen schon sehr cool aus. Zum Beispiel kann man die gedrückten Tasten auslesen und mit Hilfe eines Arduino Leonardo eine USB-Tastatur emulieren. Nunja, von Emulieren kann aber diesem Zeitpunkt ja eigentlich keine Rede mehr sein.

Ein Problem, das man lösen muss, ist, dass man nicht alle Pins des Arduino Leonardo mit der Tastaturansteuerung blockieren will. Man muss also irgendwie die ganzen Pins des Tastaturlayouts zusammenschrumpfen. Genauer gesagt verwendet die Cherry G80-3000 genau 18 Leitungen als Eingang und 8 Leitungen als Ausgang. Damit lassen sich theoretisch 144 verschiedene Tasten ansteuern. Leider habe ich keine Ahnung, weshalb man solch ein merkwürdiges Design gewählt hat. Wahrscheinlich will man dadurch gewisse, häufiger vorkommende, Tastenkombinationen ermöglichen, ohne gleich Dioden für alle Tasten verbauen zu müssen. Jedenfalls kann man hierfür mein LED-Beispiel von früher etwas abwandeln, um die 26 Steuerleitungen ansprechen zu können. Ich habe das Konstrukt "Tastaturtreiber" getauft. Es besteht im Grunde aus 4-Bit-Zählern, Demultiplexern und ein wenig NAND-Logik. Als Resultat reichen nun 4 Leitungen aus, um die Tastatur vollständig auslesen zu können:

G80-3000 Tastaturtreiber-Layout

Das ganze lässt sich sogar, wenn auch etwas unübersichtlich, auf einer 5x10cm Streifenrasterplatine unterbringen. Der initiale Aufwand lohnt sich, sobald man etwas mehr mit dem ganzen Setup herumexperimentieren will. Denn ein Aufbau auf einem Steckboard ist einfach wesentlich instabiler.

G80-3000 Tastaturtreiber G80-3000 Tastaturtreiber G80-3000 Tastaturtreiber G80-3000 Tastaturtreiber G80-3000 Tastaturtreiber G80-3000 Tastaturtreiber G80-3000 Tastaturtreiber


Search

Categories

administration (40)
arduino (12)
calcpw (2)
code (33)
hardware (16)
java (2)
legacy (113)
linux (27)
publicity (6)
review (2)
security (58)
thoughts (21)
windows (17)
wordpress (19)