Arduino als vollwertiger Tastaturcontroller?

Ich erwäge, eine ThinkPad X4x-Tastatur an einen PC anzuschließen und einen programmierbaren KeyWarrior- Tastaturcontroller zwischen dem Flachbandkabel der Tastatur und dem USB-Kabel zu verwenden, um sie mit dem PC zu verbinden. Da ich kein Elektroniker bin, habe ich im KeyWarrior-Forum nachgefragt und mir wurde gesagt, dass dies funktionieren sollte. Die notwendigen Teile sind alle leicht zu beschaffen, und ich weiß, wie man einen Lötkolben benutzt. ;-)

Wie auch immer, überall höre ich Arduino, und es würde sich wahrscheinlich lohnen, etwas über diesen universellen Mikrocontroller zu lernen. Wäre es möglich, die KeyWarrior-Lösung durch eine Arduino-Lösung zu ersetzen?

Beachten Sie, dass der KeyWarrior16 zwei Ebenen für die FN-Taste auf der Tastatur unterstützt .

Ich habe jetzt auch einen Thread im Arduino-Forum eröffnet.

Haben Sie eine Pinbelegung für das Flachbandkabel an der ThinkPad-Tastatur?
@PabloMaurin Nein. Wenn ich sie nicht irgendwo online finde, würde das Versuch und Irrtum bedeuten.

Antworten (1)

Ja. Es gibt drei Dinge, die Sie tun müssten. Die erste ist die Tastaturmatrix. Tastaturen werden normalerweise unter Verwendung einer Matrix von Ausgängen zu Eingängen hergestellt, wobei jede Taste auf der Tastatur einer Kombination aus Eingang und Ausgang entspricht. 8x8 ist eine gemeinsame Matrix. Kleinere Telefontastaturen sind ein Beispiel für 4x3- und 4x4-Matrizen und werden häufig in Arduino-Projekten verwendet.

Der zweite Teil und der dritte Teil sind miteinander verflochten. Der zweite Teil ist das Protokoll zum Computer. Seriell, PS/2 oder USB sind gebräuchlich, wobei USB die neueste ist (ebenfalls Bluetooth, aber das ist drahtlos). Serial und PS/2 können bitbanged werden, ebenso wie USB, aber es ist etwas schwieriger. V-USB ist ein Projekt zur Software-USB-Implementierung auf ATTINY- und ATTMEGA-Prozessoren (wie den Arduino-Prozessoren).

Der dritte Teil ist der eigentliche Code zwischen dem Lesen der Tastaturmatrix und dem Senden über USB. Auf der USB-Seite möchten Sie eine USB-HID-Tastatur (treiberlos auf der PC-Seite). Auf der Tastaturseite können Sie Polling oder Interrupts verwenden. Ihr Code würde entscheiden, welche Matrixkombination welche Tastaturtaste und welcher Tastatur-Scan-Code ist.

Die Funktionstasten werden im Wesentlichen von der Software verwaltet, genauso wie die Umschalt-/Steuerungs-/Options-/Befehls-/Windows-Taste. Ihr Code würde die gedrückte Funktionstaste lesen, dann würde jede andere gedrückte Taste den Schlüssel + Funktions-Scan-Code senden, anstatt nur den Tasten-Scan-Code.

Wenn Sie einfach "Arduino USB Keyboard" googeln, erhalten Sie buchstäblich Google von Beispielprojekten, die dies tun. Auch "Arduino-Tastatur".

Die neueren Arduino-Boards verwenden einen Atmega der 'u'-Serie mit einer Hardware- und nicht einer Software-USB-Schnittstelle, entweder als Konverter (uno, mega) oder als programmierbares Hauptgerät (leonardo). Software-USB ist auf einem normalen Atmega möglich, aber nicht so robust.
Wäre PS/2 einfacher zu verbinden? Weil ich sowieso einen PS/2-USB-Konverter hinzufügen muss: Das TrackPoint-Zeigergerät auf der Tastatur gibt direkt PS/2 aus.
@feklee siehe hunt.net.nz/users/darran/weblog/329aa , aber wenn Sie ein PS2-Touchpad auf USB verwenden möchten, ist ein billiger PS2-zu-USB-Adapter (wie 1 Dollar bei ebay) alles, was Sie dafür brauchen. Die Tastatur ist anders, da die meisten älteren Laptop-Tastaturen nur die Matrix ohne Controller an Bord sind. Allerdings ist die Emulation von PS/2 einfacher als das Bitbangen von USB-Hid. Siehe: arduino.cc/forum/index.php?topic=19224.msg140627#msg140627 und Spielplatz.arduino.cc/ComponentLib/Ps2mouse
@feklee Sie müssen immer noch den Matrix-Scan-Teil erstellen, aber Sie könnten ihn an denselben USB-PS / 2-Adapter anschließen, den Sie für das Touchpad erhalten würden, da diese normalerweise über eine Tastatur- und Mauseingabeoption verfügen.
@Passerby Ja, ich spreche vom Bitbanging-Teil. Viele billige PS/2-USB-Adapter funktionieren jedoch nicht, da sie nur für Geräte geeignet sind, die bereits USB sprechen. Es ist übrigens kein Touchpad.
@feklee nein, ich meine nicht den superkleinen Dongle ( cabledirect.com/prodimages/USB-PS2F_LR.jpg ), das sind nur Kabel- / Pinout-Wechsler, ich meine einen USB-zu-PS / 2-Adapter wie lankalaptophouse.com/image. php?type=P&id=17961 , die einen dedizierten IC enthalten und mit 99 % der PS/2-Tastaturen und -Mäuse funktionieren sollten.