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 !
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
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.
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
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.
>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
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.
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.
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.
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!
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.