Forum: Mikrocontroller und Digitale Elektronik Tastendruck (Tastatur) per externe Schaltung simulieren


von Paul (Gast)


Lesenswert?

Hallo!

ich habe eine Anwendung in der es darum geht, dass beim Ausösen eines 
Ereignisses ein Taste auf der Tastatur gedürckt wird. Meinetwegen sei es 
die Taste "f".

Das ganze muss ohne große Verzögerung (Mikrosekundenbereich) geschehen. 
Ich habes mal mit meienr Tastatur manuell probiert und die 
Reaktionszeiten sind okay. Nur will ich jetzt keine tastatur dafür 
ausschlachten.

Nun zur Frage:
Gibt es Schaltungen die eine Tastatur per USB dem Rechner simulieren und 
per TTL-Signal an dieser Schaltung eine virtuelle Taste drücken? ich 
suche möglichst etwas fertiges.

Danke !

von Basti (Gast)


Lesenswert?

5€ USB Tastatur zerlegen?

von THaala (Gast)


Lesenswert?

Lass mich mal in eine Glaskugel sehen:

Aha ich sehe du sprichst von einem PC ?
(Immerhin bist du hier im Mikrocontroller - Forum).

Sowohl im PC als auch in der Tastatur sitzt ein uralter Mikrokontroller 
(Intel 8048) der auf der einen Seite das Tastenfeld prüft und bei 
Auftauchen von gedrückten Tasten einen Make - Code an den PC - 
Controller sendet. Bei Loslassen wird ein Break - Code gesendet. Somit 
wird nie ein "f" an den PC - Controller gesendet sonder ein Code, der 
für die Taste steht, an der meistens ein "f" draufsteht.
Das ist deswegen wichtig, weil unterschiedichste Tastaturlayouts 
existieren mit den verschiedensten Bedeutungen für die jeweilige Kultur.

Außerdem müssen sehr viele Tasten gleichzeitig gedrückt sein können ohne 
das es Probleme gibt.

Wie du siehst scheinen die meisten Dinge in unserem Bereich einfach, 
aber bei näherem Hinsehen entdeckt man immer wieder das es viel 
komplexer ist als man zunächst dachte.

Die Tastatur ausschlachten ist sicher der einig gangbare Weg für dich.

Es sei denn du willst einen eigenen Mikrocontroller darauf ansetzen und 
den Make - bzw. Break- Codee generieren lassen.

gruß Thilo

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

Paul schrieb:
> dass beim Ausösen eines Ereignisses

wie bekommst du mit, daß dieses Ereignis eingetreten ist?
Wie bekommt eine Elektronik das mit, welche deinen Tastendruck 
simulieren soll?

> ein Taste auf der Tastatur gedürckt wird. Das ganze muss ohne große
> Verzögerung (Mikrosekundenbereich) geschehen.
> Ich habes mal mit meienr Tastatur manuell probiert und die
> Reaktionszeiten sind okay

Respekt, ich persönlich schaffe das nicht, solche Reaktionszeiten 
(innerhalb von Mikrosekunden) manuell zu erzeugen.

Vielleicht bist du Supermann, oder deine Einschätzung der Zeit ist 
schlichtweg ... verkehrt.

von Harald W. (wilhelms)


Lesenswert?

Wegstaben Verbuchsler schrieb:
> Paul schrieb:

> Respekt, ich persönlich schaffe das nicht, solche Reaktionszeiten
> (innerhalb von Mikrosekunden) manuell zu erzeugen.

Tja, die heutige Jugend ist schneller als man denkt. Das ständige
Schreiben von SM´s und die "Arbeit" an der Spielekonsole ergibt die
nötige Übung. :-)
SCNR
Harald

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Tastaturdrücke lassen sich hervorragend mit einer alten Tastatur und 
einem MOC3042 fernsteuern, der die jeweilige Taste überbrückt. Den 
steuerst du an wie eine x-beliebige Leuchtdiode.
Habe ich mal für MM-Presentationen gebaut, wo eine Flash-Show mit 
Berührungssensoren gesteuert werden sollte. Die Autorin konnte es 
zuhause mit den Tasten 1-4 ausprobieren und meine gemoddeten Keyboards 
hatten hinten 4 Stereoklinkenbuchsen für die Sensoren.

Paul schrieb:
> ohne große Verzögerung (Mikrosekundenbereich)

Das ist unrealistisch. Der Weg von Tastaturcontroller zur Anwendung 
dauert mit Sicherheit einige 100uSec.
Ansosnsten musst du einen PC-Interrupt auslösen, bspws. mit einer 
Parallelport Karte.

von Paul (Gast)


Lesenswert?

>Paul schrieb:
>>dass beim Ausösen eines Ereignisses

>wie bekommst du mit, daß dieses Ereignis eingetreten ist?
>Wie bekommt eine Elektronik das mit, welche deinen Tastendruck
>simulieren soll?

Also mein Ereignis ist ein Lichtschrankensignal. Als Detektor eine 
PIN-Diode. Die sind ja recht schnell.


>Ansosnsten musst du einen PC-Interrupt auslösen, bspws. mit einer
>Parallelport Karte.

Kannst das bitte genauer erklären?


lg

von Sebastian (Gast)


Lesenswert?

Gibt's schon als USB-Lösung: 
http://www.obdev.at/products/vusb/hidkeys.html
Tastatursimulatoren mit PS/2 wurden allerdings auch schon öfter 
entwickelt. Kanne nur gerade kein nachbaufreundliches Projekt.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Paul schrieb:
>>Ansosnsten musst du einen PC-Interrupt auslösen, bspws. mit einer
>>Parallelport Karte.
>
> Kannst das bitte genauer erklären?

Boh, ist schon lange her, das ich das gemacht habe, aber ich kanns 
probieren. Am Parallelport (LPT) eines Druckers liegt direkt eine 
Interruptleitung (oft INT7) und eine Software kann diesen Interrupt 
abfangen und ausnutzen.
In den Zeiten von MSDOS ging das recht easy mit Turbo Pascal und ich hab 
das damals ausgenutzt, um von einem Patientenkartenleser aus seinem 
Parallelausgang die Daten auf den 286er zu übertragen und damit 
Scriborstreifen zu machen.

Heute ist die Hardware abstrahiert und du braucht einen Kernelmode 
Treiber, um den Interrupt zu verarbeiten. Da wir nicht wissen, welches 
Betriebssystem und welche Anwendung du benutzt, kann ich dir da nicht 
mehr sagen. Treiber für Linux sind einfach, Treiber für Windows 
eigentlich nur mit dem Developer Kit von MS zu machen. Aber Vllt. hat ja 
deine Programmierumgebung was parat.

Sebastian schrieb:
> Gibt's schon als USB-Lösung:
> http://www.obdev.at/products/vusb/hidkeys.html
> Tastatursimulatoren mit PS/2 wurden allerdings auch schon öfter
> entwickelt. Kanne nur gerade kein nachbaufreundliches Projekt.

Jo, damit kannst du dir eine Spezialtastaur bauen. Allerdings sind 
Verzögerungen im Mikrosekundenbereich damit nicht machbar.

von Paul (Gast)


Lesenswert?

Hilft PS2 vielelicht?

von Albrecht H. (alieninside)


Lesenswert?

Paul schrieb:
> Hilft PS2 vielelicht?

Im Eröffnungspost hast du doch schon geschrieben, dass die 
Geschwindigkeit deiner Tastatur ausreichend sei, zweifelst du jetzt an 
dir selbst?

Wenn die Geschwindigkeit deiner Tastatur ausreichend war und Tastaturen 
im allgemeinen ihre Zeichen nicht im Mikrosekundentakt übermitteln, dann 
bedeutet das doch nur, dass du überhaupt keine Datenübertragung im 
Mikrosekundentakt benötigst.

Also, entweder eine Tastatur zerlegen oder das obdev/hidkeys-Projekt 
nachbauen. Alternativ käme auch noch die Tastaturabfrage auf einem 
Mikrocontroller mit anschließender klassischer serieller 
Datenübertragung zum PC in Frage.

von Paul (Gast)


Lesenswert?

Ich probier es mal mit USB + tastatur. vielleich tkann ich ja noch den 
USB port auf 1ghz takten. dass soltle dann gehen.

danke an alle!

von Erfahrener Nutzer (Gast)


Lesenswert?

Paul schrieb:
> vielleich tkann ich ja noch den USB port auf 1ghz takten.

Würde ich unbedingt empfehlen, vernünftiges Zehnfingerschreiben ist 
sonst nämlich nicht drin.

von max (Gast)


Lesenswert?

Das sind halt schon harte Anforderungen. Bei USB hast du das Problem, 
dass du nicht unter die Polling-Zeiten kommst. Sprich du bekommst hier 
ohne den Programm/Treiberoverhead schon nicht unter 100us zwischen 2 IN 
Pakets (Typisch ist hier eher 1ms)

PS/2 ist zwar direkter aber auch älter. Aber eine ordentliche Aussage 
ist auch hier schwierig. Es handelt sich um ein synchrones serielles 
Interface. Je Nachricht werden min 8Bit verteilt. Bei den max 16.7 kHz 
(nicht ganz sicher, nur kurz gegoogled und 3rd party ergebnis) sind das 
auch 470us / Nachricht.

Dazu kommen dann noch Latenzen des OS. Wenn es nicht gerade ein 
realtime-OS ist, vergiss es.
ms Latenzen sollten jedoch funktionieren, wenn auch bei normalen 
Systemen (OS und co) nicht garantiert.

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.