Hallo, ich möchte mit einem Mikrocontroller (Atmega32) folgenden bewerkstelligen. Am Atmega32 sollen Taster angeschlossen werden, die bei eine Druck ein entsprechendes Zeichen auf den PC übertragen. Die Schlatung soll unter Windows als Tastatur erkannt werden. Weiter muß gewährleistet sein, dass wenn mehrere Tasten gleichzeitzig gedrückt werden das am PC auch so ankommt und nicht nach der Reihe. Bei PS/2 Tastaturen funktioniert das. Gibt es da schon ein Projekt in der Richtung? Über Tips und Anregungen freue ich mich. Vielen Dank schonmal.
Hallo, wenn diese Schaltung tatsächlich vom Betriebssystem als Tastatur erkannt werden soll, könntest du ja einen Controller aus einer alten Tastatur verwenden und entsprechend manipulieren, z.B. indem du die ausgehenden Signale von der Elektronik aus der Tastatur mit Widerständen abschwächst und bei Bedarf einfach mit denen von ATmega überschreibst. Wäre natürlich eher die Holzhammermethode aber sicher am schnellsten. Wenn du mehr Tasten verwenden möchtest als freie Pins am Mikrocontroller verfügbar sind, könntest du ja zwischen ATmega und Tastaturelektronik mit einigen Transistoren arbeiten und so Zugriff auf mehr Tasten bekommen. Wenn du allerdings das gleichzeitige Drücken von Tasten weitergeben möchtest, steigt die Zahl der dafür nötigen Transistoren natürlich sehr stark an, jenachdem wie viele Tasten maximal auf einmal gedrückt werden können. Julius
Datei umleiten ? http://www.antonis.de/dos/batchtut/bat-kurs/ Eine fehlende Tastatur am PC könnte das System evtl. am Hochfahren hindern. Deshalb Auge ins Bios wenn's klemmt.
@ Netzwanze, der Type hat zwischendrin aufgehört weiter zu denken! Damit lässt sich eine kompl. Tastatur emulieren. (Tastaturmatrix) toller Link! Danke Z8
Sascha Dürkes schrieb: > Bei PS/2 Tastaturen funktioniert das. > > Gibt es da schon ein Projekt in der Richtung? > > Über Tips und Anregungen freue ich mich. Was denn nun? USB oder PS/2? Für PS/2 wär auch die Ethersex-Firmware eine Idee, die hat das auch (zuschaltbar). Ist wohl aber noch etwas Beta.
Also jetz nochmal etwas genauer. Ich möchte zu einer Vorhandenen Tastatur (PS/2) eine zusätzliche Schaltung anschliessen die unter Windows als Tastatur erkannt wird. Dabei ist es wichtig, dass wenn mehrere Tasten an der Schaltung gleichzeitzig gedrückt werden das am PC auch so Interpretiert wird. Die Schaltung soll für einen Arcadejoystick für den MAME-Emulator verwendet werden. @Netzwanze Das ist ganau das was ich suche nur funktioniert das mit den mehreren Tasten gleichzeitig nicht :-(
1 | /* We use a simplifed keyboard report descriptor which does not support the
|
2 | * boot protocol. We don't allow setting status LEDs and we only allow one
|
3 | * simultaneous key press (except modifiers). We can therefore use short
|
4 | * 2 byte input reports.
|
5 | * The report descriptor has been created with usb.org's "HID Descriptor Tool"
|
6 | * which can be downloaded from http://www.usb.org/developers/hidpage/.
|
7 | * Redundant entries (such as LOGICAL_MINIMUM and USAGE_PAGE) have been omitted
|
8 | * for the second INPUT item.
|
9 | */
|
Lässt sich der Sourccode entsprechend anpassen das es möglich ist mehrfach Tastendrücke auszuwerten? Ich hoffe ich hab mich einigermaßen Verständlich ausgedrückt.
Hallo nochmal, ich hab mich jetzt nochmal schlau gemacht, es würde auch funktionieren wenn das USB-Device als gampad mit 30 Buttons erkannt werden würde. Hat da jemand eine Idee? Danke schonmal.
Was ist denn mit der Idee, einfach eine Standard-Tastatur für deine Zwecke umzubauen/zu adaptieren? Wurde doch oben schonmal vorgeschlagen. Halte ich für die einfachste Variante und Tastaturen bekommst du ab 5 Euro.
www.codemercs.com JoyWarrior wenn es ein Gamecontroller werden soll, KeyWarrior bei Tastatur, vorzugsweise KeyWarrior24-8.
@Guido Körber Ich wollte keine Fertige Lösung, aber trotzdem Danke. @Winfried Das mit der gehackten Tastatur hab ich im momment, ist mir aber zu viel Arbeit das bei jedem neuen Controller immer wieder auszutüfteln. Da wäre ne Lösung mit nem Mikrocontroller schöner. Hab mir jetzt mal den Sourcecod vom MJoy angesehen, ist leider Assembler, da steig ich nicht so durch. Hat jemand vielleicht eine Surcecode für MJoy in C? Für den Anfang würde es ein Sourcecode tun der mir ein HID mit zwei Buttons erzeugt. Ich steig da schon bei dem Reportdescriptor nicht durch hab mir schon die entsprechenden Dokumente von usb.org besorgt aber irgendwie versteh ich das nicht. Also wenn jemand ein kleines Beispiel in C für mich hat wäre echt Super.
@plutoonline > @Netzwanze > Das ist ganau das was ich suche nur funktioniert das mit den mehreren > Tasten gleichzeitig nicht :-( Mit dem Programm nicht. > Lässt sich der Sourccode entsprechend anpassen das es möglich ist > mehrfach Tastendrücke auszuwerten? Ja. Habe ich bereits zuhause am Laufen (7 Tasten plus Drehimpulsgeber für eine Heizungsteuerung an Edimax-DSL-Router unter Linux). USB-HDI kann aber maximal 6 (7?) Tasten plus Steuertasten (Shift, Strg, Alt) gleichzeitig verarbeiten. Wenn Du wirklich mehrere gleichzeitig gedrückte Tasten auswerten möchtest, bleibt Dir nur PS2. Den Code mit Schaltung habe ich aber gerade nicht hier. Bei Interesse kann ich ja mal nach suchen.
Sascha Dürkes schrieb: > Lässt sich der Sourccode entsprechend anpassen das es möglich ist > mehrfach Tastendrücke auszuwerten? > > Ich hoffe ich hab mich einigermaßen Verständlich ausgedrückt. wenn ich das beim überfliegen richtig gelesen habe, ist das hier gemacht worden: http://symlink.dk/projects/c64key/
@Netzwanze der Sourcecode würde mich sehr Interessiern. Ist das genrerell bei USB-HID so das nur 7 gleichzeitig verarbeitet werden können. Oder nur bei Tastatur-USB-HID, beim Joystick-USB-HID sollte das ja eigentlich funktionieren, oder? Wieviele Tasten könnte man über PS/2 gleichzeitig abfragen? Wenn das über PS/2 einfacher ginge wäre für mich auch O.K.
auf www.hackaday.com gabs ein tolles Teil, das zufällig die Shifttaste aktiviert. War ein Atiny soweit ich weiß und als HID "Tastatur" angemeldet. Recht klein, dass man es jemand in einen USB-Platz stecken konnte ohne das man es sieht (naja fast). Eine andere Möglichkeit, die mir einfällt, ist der Beispielcode vom MAX3420 von Maxim mit dem eine Tastatur emuliert wird. Dass lässt sich leicht portieren. Sonst einfach nach USB-HID + Atmel suchen. Da gibts viele Links. Benjamin
USB Tastaturen können bei Verwendung des Boot-Protocol maximal alle achtModifiers plus 6 andere Tasten übertragen. Es ist aber möglich einen eigenen Report mit mehr Datenfelder zu definieren, nur habe ich sowas in der Praxis noch nocht gesehen, daher wäre ich skeptisch ob die Treiber der bekannten Betriebssysteme damit klarkommen.
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.