Hallo ihr Alle, Ich möchte mir gerne für meinen Windows 10 PC ein Fußpedal bauen, welches mir Tastatureingaben simulieren soll. Hintergrund ist, dass ich für eine Software Tastaturkürzel benutze, diese aber gerne auch per Fuß, als nur per Hand eingeben möchte. Meine Idee war, dass ich einfach mit einem Arudino per Knopfdruck (Pedal) einen Tastaturanschlag simuliere (Library "Keyboard"). Da ich aber öfters ändern will, welches Zeichen ich mit dem Pedal „drücke“, dachte ich, dass ich auch per Arduino die Pedalnummer (da ich mehrere Pedale benutze) an den SerialPort des PCs senden kann und dann per PC-Software den jeweiligen Tastaturanschlag simuliere, den ich einfacher ändern kann. Meine Frage ist daher, ob das so geht bzw. mit welcher Software ich das machen könnte (Java…?)? Ich hoffe ihr versteht was ich machen will! (Sonst bitte ich um Rückfragen) Gruß, Philipp
Klar geht das mit Java. Geht aber auch mit so ziemlich jeder anderen Sprache.
Ich hätte gesagt man nimmt einen Arduino der nativ USB/Keyboard spricht und lässt den pro Pedal Control/Alt/Shift-Fx sprechen (oder A,B,C...), eben Keys die kein Programm nutzt, und dann haut man da ein Autohotkey-Skript drauf. Das funktioniert dann auf mehr Hardware weil man USB sicher öfter findet als RS232, und über AutoHotKey ist die Software fertig, flexibel und leicht änderbar.
Gustl B. schrieb: > Klar geht das mit Java. Geht aber auch mit so ziemlich jeder anderen > Sprache. Grundsätzlich erstmal ja. Würde letztlich alles SendInput aus winuser.h verwenden, also eine Funktion aus dem Win32-API. Aber: Die Möglichkeiten dieser Funktion wurden aus Sicherheitsgründen beschränkt. Früher(tm) konnte man mittels der Vorgänger-Funktionen keyb_event bzw. mouse_event wirklich an jedes Fenster Input senden. Genaueres über die Einschränkungen von SendInput lässt sich über die online-Doku der Funktion ermitteln. Für unbeschränkte Möglichkeiten muß man heute also eine "wirkliche" Tastatur verwenden. Dazu kommt (allerdings unabhängig davon, ob "echter" Input oder simulierter) das Problem der Fokus-Steuerung. Es ist garnicht so einfach, zuverlässig dafür zu sorgen, dass die Tastenanschläge genau das Fenster erreichen, in dem man sie haben will.
Ob S. schrieb: > Für unbeschränkte Möglichkeiten muß man heute also eine "wirkliche" > Tastatur verwenden. Deshalb eben den Arduino mit USB, der eine "wirkliche" Tastatur emuliert, z.B. einen Arduino Micro.
Rainer W. schrieb: > Ob S. schrieb: >> Für unbeschränkte Möglichkeiten muß man heute also eine "wirkliche" >> Tastatur verwenden. > > Deshalb eben den Arduino mit USB, der eine "wirkliche" Tastatur > emuliert, z.B. einen Arduino Micro. Aber eben: Philjamin schrieb: > Da ich aber öfters ändern will, welches Zeichen ich mit dem Pedal > „drücke“ Deshalb die Idee Jens M. schrieb: > und dann haut man da ein Autohotkey-Skript drauf. Gruss Chregu
Gustl B. schrieb: > Klar geht das mit Java. Ja schon, aber Java unterstützt keine seriellen Ports. Dazu muss man eine C Bibliothek einbinden, die nach meinem Kenntnisstand schon "ewig" nicht mehr gepflegt wird. Was nicht heissen soll, dass sie nicht funktioniert. Für solche Basteleien gibt es einen speziellen Chip: https://www.codemercs.com/de/tastatur
Vielleicht könnte man sich auch die Funktionsweise /API einer Maus zunutze machen. Wären dann aber nur 2 Pedale oder höchstens 3, wenn man das Mausrad bzw. mittlere Taste noch dazu rechnet. Da bräuchte man ja nur eine Mechanik für die Pedale, die dann die Maustasten bedient. Per SendKey o. ä. an das entsprechende Fenster geht es dann weiter. Wäre dann auch softwaremäßig einfacher. War jetzt nur mal so eine Idee von mir.
Link zur Java Library: https://github.com/rxtx/rxtx http://fizzed.com/oss/rxtx-for-java http://rxtx.qbang.org/wiki/index.php/Main_Page (Wie gesagt, nicht mehr empfehlenswert) Wenn du es wirklich seriell machen willst, kannst du von meinem "I/O Modul" Projekt abgucken: http://stefanfrings.de/serial_io/index.html Ich habe auf der Seite auch Varianten mit Bluetooth, USB, Ethernet und WLAN. Alle mit dem Kommunikations-Protokoll.
Oder vielleicht noch besser wäre ein ausgedienter Joystick. Soviel ich weiß, gehen da bis zu 32 Knöpfe. Soviele hat zwar ein Joystick nicht, aber vielleicht könnte man da auch mit zus. Tastern nachhelfen.
Stefan F. schrieb: > Alle mit dem Kommunikations-Protokoll. Korrektur: Alle mit dem selben Kommunikations-Protokoll.
Zum Thema Joystick etvl. sowas : https://www.reichelt.de/diy-arcade-set-schwarz-rot-kub-arc-b-r-p294941.html
Einen Arduino nehmen: https://forum.arduino.cc/t/anleitung-uno-als-human-interface-device-hid-tastatur/983067 oder einen Diogispark mini https://www.reichelt.de/digispark-mini-attiny85-usb-mit-stiftleiste-digispark-mini-p192128.html
Philjamin schrieb: > Hallo ihr Alle, > > Ich möchte mir gerne für meinen Windows 10 PC ein Fußpedal bauen, > welches mir Tastatureingaben simulieren soll. > Hintergrund ist, dass ich für eine Software Tastaturkürzel benutze, > diese aber gerne auch per Fuß, als nur per Hand eingeben möchte. Nimm das hier: https://www.codemercs.com/de/starterkits/kw28eval Da musst Du nichts mehr programmieren, das ist alles schon fertig. Du musst das Board nur noch verdrahten, d.h. Deine Taster und das USB-Kabel bzw eine USB-B Buchse anschließen. Die Software zum Konfigurieren der Tasten gibts da auch zum Download. fchk
Stefan F. schrieb: > Ja schon, aber Java unterstützt keine seriellen Ports. Dazu muss man > eine C Bibliothek einbinden, die nach meinem Kenntnisstand schon "ewig" > nicht mehr gepflegt wird. Was nicht heissen soll, dass sie nicht > funktioniert. Moin, ich verwende schon mehrere Jahre jssc (https://github.com/java-native/jssc/releases/tag/v2.9.5). Die aktuelle Version ist vom August. Das funktioniert unter OpenJDK als auch mit der kommerziellen Java-Version. Der AG stellt nur Windows-10 Pro LTSC zur Verfügung. Neun serielle Schnittstellen via USB-Adapter einzulesen ist überhaupt kein Thema. Gruß Holger
Hallo, also Java ist in der Tat suboptimal, da es durch die Vorgabe auf jeder Plattform zu laufen erstmal keine Funktionalität für hardwarenahe Programmierung bietet. Wie wäre es andersrum ? So ein Arduino Leonardo emuliert eigentlich immer auch einen RS232 Port, damit Du an seinen Bootloader kommst. Da kann man auch Befehle entgegen nehmen, welche Taste bei einer bestimmten Fußbewegung gesendet werden soll. Die Einstellungen solltest Du halt im Arduino so ablegen, dass sie auch ohne Strom erhalten bleiben. Bleiben jetzt noch 2 Möglichkeiten : a) Dein Arduino bietet zur Konfiguration eine Kommandozeile, auf die Du z.B. per Putty zugreifst. b) Du erstellst eine eigene Software für PC zur Konfiguration, die ihre Einstellungen in Deinem Format und Protokoll über die serielle Schnittstelle dem Arduino mitteilt. Wobei ich mit Java nie wirklich warm geworden bin und die PC-Software mit MS-Visual-Studio in C# zusammen kloppen würde. Schick wäre es auf jeden Fall, mehrere Profile auf einem Arduino zu haben, die man schnell mal umschalten kann. Eventuell per Taster und Leds oder Kodierschalter auswählbar, je nach freien Portpins.
Flunder schrieb: > Du erstellst eine eigene Software für PC zur Konfiguration, die ihre > Einstellungen in Deinem Format und Protokoll über die serielle > Schnittstelle dem Arduino mitteilt. Wat? Dann müsste man ja sogar zweimal PC-Software machen, plus noch die für den Arduino. Lies nochmal den OP, dann fällt dir auf das du eigentlich genau das vorschlägst was er fragt, nur komplizierter. Deine Lösung wäre geeignet, wenn man dann einen RS232-Keyboard-Wedge nutzen könnte/müsste, wie ihn viele Barcodescanner nutzen.
Jens M. schrieb: > Dann müsste man ja sogar zweimal PC-Software machen, plus noch die für > den Arduino. Jetzt hast Du mich falsch verstanden. Bei b) gibt es eine Software auf dem PC zum Parametrieren. Dann gibt es natürlich noch die Software auf dem Arduino. Im Betrieb spielt der Arduino Tastatur, dazu braucht es keine weitere Software. Ok, die Tastendrücke gehen an das Fenster, das momentan den Fokus hat, aber beim Spielen ist das ja eigentlich immer das Spiel im Vollbildmodus.
Flunder schrieb: > Im Betrieb spielt der Arduino Tastatur, dazu braucht es keine weitere > Software. Oh, achso, eine programmierbare Makrotastatur, das macht natürlich schon Sinn, sorry.
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.