Hallo zusammen!
Ich bin auf der Suche nach einer HW-Lösung, die ich zwischen
USB-Tastatur und PC stecke, die automatisch von QWERTY nach NEO
übersetzt. Wer kennt so ein Projekt oder hat so etwas schon selber
gebaut?
Danke für Eure Tipps.
Gruß Dave
Es wäre etwas komplexer, das umzusetzen. Glaube, so weit hat sich noch
keiner von den Neolingen vorgewagt. Es gibt/gab allerdings Tastaturen,
bei der das Layout in der Firmware gespeichert war. Für die Truly z.B.
gab’s auch Neo2.
dave schrieb:> Ich bin auf der Suche nach einer HW-Lösung, die ich zwischen> USB-Tastatur und PC stecke, die automatisch von QWERTY nach NEO> übersetzt.
Das ergibt wenig Sinn. Keyboards senden keine Zeichencodes (also z.B.
schon mal nicht QWERTY) sondern Scancodes [1][2]. Ein Scancode
kennzeichnet die Position einer Taste, nicht deren Aufdruck. So
sendet z.B. eine QWERTZ Tastatur für das Z den gleichen Scancode wie
eine QWERTY Tastatur für das Y.
Die Zuordnung von Scancodes zu Zeichencodes (inclusive dem Handling von
Modifier-Tasten wie SHIFT, ALT, CTRL, ...) erledigt der Treiber im PC.
So lange es um eine reine Permutation der Tasten geht, könnte man
natürlich die Scancodes entsprechend permutieren. Also z.B. den Scancode
für die Taste, die bei QWERTY das Q ist, auf den Scancode umsetzen, der
bei QWERTY das X ist. Aber das ist eine viel schlechtere Lösung, als das
Mapping im Treiber zu machen.
[1] https://en.wikipedia.org/wiki/Scancode
[2] http://www.philipstorr.id.au/pcbook/book3/scancode.htm
Dave schrieb:> Guten Morgen! Welche Hardware kannst Du mir empfehlen? Also ein> Board,> dass zwischen PC und Tastatur seinen Dienst verrichten kann.
Hast du die Antworten überhaupt gelesen?
Offensichtlich nicht.
Du kannst das über den Treiber machen. Keine Hardware nötig. Folgendes
hat mich 3s gekostet:
https://neo-layout.org/index_en.html
Wenn du sowas bauen willst (warum auch immer, denn es ist dumm und
sinnlos), dann nimm eine PS-2 Tastatur. Mit USB ist das nur unnötig
kompliziert, PS2 kann jeder µC.
Ich kann die Intention schon verstehen, das über ein Hardwareteil machen
zu wollen, statt auf Softwareebene: Windows, zum Beispiel, bringt von
Haus aus nicht mal die Option für Neo2 mit. Und auch bei Linux ist’s
etwas umständlich, das auf ‘nem TTY zu bekommen, oder gar schon beim
Bootloader (während es unter X11 mit einem Befehl eingestellt ist).
Soweit ich weiß, gibt’s, wie oben schon geschrieben, ja durchaus
Tastaturen, die von sich aus die richtigen Tastenzuordnungen haben. Ob
die allerdings auch die Ebenen 3-6 ohne Unterstützung seitens des OS
sauber hinbekommen, weiß ich nicht – da dave aber wohl so eine Tastatur
hat, wird er’s wissen –, aber die ersten beiden Ebenen wären auch
schonmal ein Fortschritt.
Zusammengefasst: technisch sollte es zumindest teilweise machbar sein,
durch den USB-Teil und seine Protokolle ist’s aber ziemlich kompliziert.
Andererseits bringen z.B. USB-Keylogger schon mal ⅔ der Funktionalität
mit – in dieser Richtung würde ich also schauen.
Wünschenswert wäre so ein Device für einige Leute auf jeden Fall (mich
eingeschlossen); wenn da also ’n Projekt draus würde, würde ich mich im
Rahmen meiner bescheidenen Möglichkeiten beteiligen wollen.
Also der Teensy3.6 kann USB HID "IN" und auch die kleineren Teensys
können HID "OUT".
Wenn es ruhig schwachsinnig sein darf, würd ich einen 3.6 mit einem LC
oder 3.2 per UART verbinden und die Befehle da durch schieben...
Dave schrieb:> Die Frage nach einer geeigneten Hardware ist aber immer noch> nicht> beantwortet worden. Egal wie schwachsinnig das Projekt auch ist.
Doch, ist sie.
ein beliebiger µC, wenn man I2C verwendet.
zufaulzumanmelden schrieb:> Zusammengefasst: technisch sollte es zumindest teilweise machbar sein,> durch den USB-Teil und seine Protokolle ist’s aber ziemlich kompliziert.
OHGOTT. Warum liest keiner die Beiträge?
Das Ganze ist relativ simpel wenn man I2C (PS2) verwendet. Im Normalfall
hat man einen PS2 Anschluss.
Und dafür tut es jeder µC. PIC, STM32, AVR, MSP430 whatever.
Mit USB ist das horrend kompliziert und kaum zu schaffen, weil man Host
und Device implementiern muss. Mit I2c (PS2) ist das machbar.
> Doch, ist sie.> ein beliebiger µC, wenn man I2C verwendet.
Es ging um USB. Da bringt I²C rein gar nichts. Die Vorschläge mit dem
PIC und den Teensys sind vielversprechend.
> OHGOTT. Warum liest keiner die Beiträge?
… ja, warum tust du’s denn nicht‽ Es gibt sehr wohl Devices, die
zumindest den USB-HID-Teil beherrschen, und es gibt μC, mit denen man
die USB-Funktionalität hat. Der Rest mag aufwendig sein, aber nicht
unmöglich.
Da das Ganze wahrscheinlich für den Einsatz in der Praxis gedacht ist,
wäre PS/2 nunmal keine Option.
Lesen bildet schrieb:> Das Ganze ist relativ simpel wenn man I2C (PS2) verwendet.
Das ist zwar vielleicht simpel, funktioniert dann aber halt nicht.
Die "PS/2"-Schnittstelle ist keine I2C-Schnittstelle.
Axel S. schrieb:> Das ergibt wenig Sinn. Keyboards senden keine Zeichencodes (also z.B.> schon mal nicht QWERTY) sondern Scancodes [1][2].
Sp pauschal stimmt das nicht, es hängt davon ab, was für HID man
benutzt.
Ich hab letztes Jahr einen cec -> usb konverter mit einem stm32 gebaut,
damit ich kodi mit der tv Fernbedienung steuern kann.
Ich habe nicht mit Scancodes sondern direkt mit den Zeichen gearbeitet.
Sondertasten wie shift oder alt sind als Flag kodiert.