USB Push Button

Produkteigenschaften

Konfiguration

Der USB Push Button kann eine beliebige Tastaturtasten (inklusive Sondertasten) in beliebiger Reihenfolge- und Kombination betätigen. Verbinden Sie den Button mit dem Computer.Dann installieren Sie wie folgt ein serielles Terminalprogramm:
  1. Windows:
    1. Laden Sie CoolTermWin.zip (Windows) herunter
    2. Starten Sie CoolTerm, klicken Sie auf "Options", wählen Sie den letzten COM port in der Liste, baud rate 115200 und klicken Sie auf "Ok". Dann stellen Sie die Verbindung mit einen Klick auf "Connect" her.
    Mac:
    1. Öffnen Sie das Terminal und geben Sie ein: sudo screen /dev/tty.usbmodemHIDA1 (geben Sie "screen /dev/tty." ein und dann die Tabulatortaste um alle verbundenen seriellen Geräte zu sehen).
    2. Falls kein Gerät namens "tty.usbmodemHIDA1" angezeigt wird, laden Sie bitte den CH340 driver für OS-X hier herunter und installieren diesen: CH340 Treiber (OS-X)
    3. Falls der GNU-Screen nicht komfortabel genug ist, laden Sie bitte CoolTerm für OS-X herunter: CoolTermMac.zip (Mac)
    4. Starten Sie CoolTerm, klicken Sie auf "Options", wählen Sie das passende Serielle Gerät aus, baud rate 115200. Abschließen mit Ok. Dann stellen Sie die Verbindung mit einen Klick auf "Connect" her.
    Linux:
    1. Öffnen Sie das Terminal und geben Sie ein: sudo screen /dev/ttyACM0 (geben Sie "screen /dev/ttyA" ein und dann die Tabulatortaste um alle verbundenen seriellen Geräte zu sehen).
    2. Falls kein Gerät namens "ttyACM0" angezeigt wird, laden Sie bitte den CH340 driver für Ihre Linux Distribution herunter und installieren diesen.
    3. Falls das screen-Kommando nicht installiert ist, installieren Sie das Kommando unter Debian/Ubuntu mit: "sudo apt-get install screen"
    4. Falls der GNU-Screen nicht komfortabel genug ist, laden Sie bitte CoolTerm für Linux herunter: CoolTermLinux.zip (Linux)
    5. Starten Sie CoolTerm, klicken Sie auf "Options", wählen Sie das passende Serielle Gerät aus, baud rate 115200. Abschließen mit Ok. Dann stellen Sie die Verbindung mit einen Klick auf "Connect" her.


    Wenn Sie mit Connect verbunden haben, tippen Sie h; um die Hilfeseite zu sehen. Die USB Push Button Firmware sollte angezeigt werden (falls nicht, probieren Sie bitte einen anderen COM-Port unter Optionen):

Keyboard Beispiele

  1. Im ersten Beispiel wird die Taste 'a' auf dem Keyboard gedrückt. In dieser Keyboard-Codeliste, ist der Code für die Taste 'a' Dezimal 97 (oder Hexadecimal 0x61).

    Der Button verwendet verschiedene Listen mit Kommandos in den Zeilen, welche hintereinander Zeile für Zeile abgearbeitet werden. Die Listen mit den Einzelkommandos kann man sich mit dem Befehl ?; ausgeben lassen.

    Die Liste Nummer 0 wird immer abgearbeitet, wenn der Computer im Standby-Modus ist. Die Liste Nummer 1 ist die Standard-Liste, wenn der Computer eingeschaltet wird. Das Kommando (cmd) bezeichnet, welches Gerät/Aktion simuliert werden soll (=Kommandoklasse):

    1=System-Taste, 2=Keyboard-Taste, 3=Zeichenfolge Schreiben (string), 4=Consumer Taste, 5=Pause in Millisekunden, 6=Pause in Sekunden, 7=Listenindex wechseln, 8=Gamepad Taste, 9=Gamepad Achse, 10=Gamepad Rotationsachse, 11=Gamepad Richtungspad

    Nachfolgend werden die Einzeltasten angegeben, welche das Gerät betätigen soll. In unserem Beispiel mit der Taste "a" (data1=97 für die Taste "a").
    Die fertige Liste für unser Beispiel sieht wie folgt aus:
          
          listidx=0    => diese Liste wird ausgeführt, wenn der PC im Standby-Modus ist
          idx 0: 
          idx 1: 
          idx 2: 
          listidx=1    => diese Liste wird standardmäßig ausgeführt, wenn der PC eingeschaltet ist
          idx 0:  cmd=2  data1=97  data2=0  data3=0  => hier wird die Taste "a" betätigt
          idx 1: 
          idx 2:             
          

    Vom Werk aus hat der Button die Einstellung "Energiesparen/Standby" und "Aufwachen/Wake" in den Listen 0 (Standbyliste) und 1 (Standard-Ausführungsliste). Daher sollten wir die Liste 1 löschen mit der Terminal-Eingabe:
    c1;

    Danach geben Sie im Terminal ein:
    !1,0,2,97,0,0;
    Wenn alles korrekt eingegeben wurde, steht nun bei listidx=1, idx=0 ihre Tastenprogrammierung. Mit ?; können Sie sich die Listen erneut ausgeben lassen.
    Merke: Man kann die Zahlen nach dem Kommando in Dezimal (z.B. 97) oder Hexadezimal (z.B. 0x61) angeben.

    Wenn Sie mehr als nur eine Taste parallel betätigen wollen:
    Sie können bis zu 3 Tasten parallel in einem Kommando betätigen. Zum Beispiel die Tastenkombination CTRL+ALT+ESC:
    !1,0,2,0x2000,0x2002,0x4029;

    Die Tasten CTRL und ALT sind sogenannte Keyboard-Modifier-Tasten. Sie stehen ebenfalls in der Keyboard-Codeliste. KEY_LEFT_CTRL ist definiert als 0x2000. KEY_LEFT_ALT ist definiert als 0x2002. Die Taste KEY_ESC ist definiert als 0x4029.


    Alle Tasten/Kommandos werden losgelassen ("Release"), wenn eine Liste abgearbeitet wurde. Wenn eine Taste unmittelbar nach dem Drücken losgelassen werden soll, muss der Tastencode mit dem Hex-Wert 0x8000 binär-ODER-verknüpft werden. Rufen Sie dazu den Windows Rechner auf ("calc") und wählen Sie oben links "Programmierer". Dann klicken Sie auf HEX und geben Sie z.B. die Taste ESC an mit 0x4029. Danach auf "OR" klicken und 0x8000 eingeben. Das Ergebnis 0xC029 erscheint. Dies Ergebnis können Sie als Tastencode mit sofortigen Loslassen für die Taste ESC verwenden.
    Falls Sie als Datencode ein 0x8000 am Ende einer Zeile angeben. Werden alle mit dem Kommando vorher in der Liste getätigen Tasten losgelassen.
    Falls Sie als Datencode ein 0xFFFF am Ende einer Zeile angeben. Werden alle Tasten aller Kommandos in der aktuellen Liste losgelassen.

  2. Wenn Sie eine einzelne Kommandozeile löschen wollen, können Sie dies durch Eingabe einer Leerzeile tun. Z.B. die Zeile idx=1 löschen:
    !1,1,0,0,0,0;

    ACHTUNG - SEHR WICHTIG: Alle programmierten Änderungen, wenn nur dauerhaft gespeichert, wenn im Terminal einmalig s; eingeben wird (speichern ins EEPROM). Ansonsten gehen die Änderungen verloren, wenn der Button stromlos wird.

Weitere Beispiele:

  1. ENTER Taste betätigen mit loslassen: In der Keyboardcode-Liste, der Tastencode für ENTER is 0x4028. Wir verknüpfen ihn mit 0x8000 (sofortiges loslassen nach Betätigung) im Windows Rechner ("calc"): 0xC028 lautet das Ergebnis für den Tastencode.
    !1,0,2,0xC028,0,0
  2. In diesem Beispiel wird simuluriert:
    A) System Sleep/Standby-Taste betätigen, wenn der Computer an ist.
    B) System Wakeup/Aufwachen-Taste betätigen, wenn der Computer aus ist.
    Die Keyboardcode-Liste zeigt Keyboardcode-Liste: System-Tastencode für Schlafen("Sleep") ist 0x82 und für Aufwachen ("Wakeup") ist 0x83.
    Diese Zeile legt den Computer schlafen, wenn er an ist:
    !1,0,1,0x82,0,0;
    Und diese lässt ihn wieder aufwachen:
    !0,0,1,0x83,0,0;
    Merke: Das Kommando 1 (cmd=1) ist kein normaler Keyboard-Code (cmd=2). Die entsprechenden Kommando-Codes müssen aus dem korrekten Listenabschnitt herausgesucht werden.


  3. mehr Beispiele:

  4. Windows/Apple OS-X Menu-Taste:
    !1,0,2,0x2003,0,0;
  5. Sound stumm schalten/einschalten im Wechsel:
    !1,0,4,0xE2,0,0;
  6. Zwischen Desktop und letzter Anwendung wechseln (Windows-Taste + D):
    !1,0,2,0x2003,100,0;
  7. ACPI Sleep/Wake (für Windows and Linux):
    !1,0,1,0x82,0,0; !1,1,4,0x32,0,0; !0,0,1,0x83,0,0;
  8. Die Zeichenkette/String "Test123" schreiben:
    str1=Test123; !1,0,3,1,0,0;

  9. Den Windows Mediaplayer öffnen und ein Video abspielen: Windowstaste+r ; 500ms Pause ; Zeichenkette "wmplayer.exe d:\IMG_3365.MOV" eingeben; ENTER
    !1,0,2,0x2003,0x15,0x8000; !1,1,5,500,0,0; str1=wmplayer.exe d:\IMG_3365.MOV; !1,2,3,1,0,0; !1,3,2,0x4028,0,0;

    Damit bei folgenden Buttonbetätigungen das Video immer von vorne gestartet wird (Tastenkombination CTRL+p im WindowsMediaPlayer) müssen wir den Listenindex einmalig auf Liste 2 wechseln:
    !1,4,7,2;
    => Liste=1, Idx=4, Kommando=7 (Listenindex ändern), neue Liste=2
    Damit ist Liste 2 die Standard-Ausführungsliste und wir tragen dort an Idx=0 die Tastenkombination "CTRL+p + alle Tasten loslassen" ein:
    !2,0,2,0x2000,112,0x8000;
    => Liste=2, Idx=0, Kommando=2 (Keyboard), 0x2000 für CTRL, 112 für p, 0x8000=alles loslassen
    Diese Mediaplayer-Programmierung ist typisch für eine Kunden-Videodemonstration auf Ausstellungen/Messen.
Merke: Man kann mehrere Terminal-Befehle hintereinander programmieren, wenn Sie durch ein Semikolon ; voneinander getrennt sind.
Kopieren Sie einfach die komplette Zeile aus den obigen Beispiel in das Windows Programm "notepad" (oder einen beliebigen anderen Texteditor) und editieren Sie diese nach Ihren Wünschen.
Abschließend kopieren Sie die fertige Zeile dann in das Terminal-Programm und überprüfen die Programmierung.

Wichtig: Wenn die gewünschte Funktion programmiert und erfolgreich getestet wurde, müssen die Einstellungen mit dem Terminal-Befehl s; permanent gespeichert werden!


Bemerkung: Eine weitere Komplettübersicht über alle USB RAW-Tastencodes bekommen Sie in der "USB.org HID Tabelle" Seite 53ff. Die RAW-Codes müssen mit 0x4000 binär ODER-verknüpft werden, damit die Firmware erkennt, dass es sich um keinen ASCII-Code oder CTRLMODIFIER-Code handelt.

Merke: Bitweise ODERn mit 0x8000 (32768) lässt die Taste direkt nach Betätigung wieder los. Nur 0x8000 am Ende lässt alle Tasten einer Kommandoklasse los. 0xFFFF lässt alle Tasten aller Kommandoklassen los.
Alle Tasten werden automatisch losgelassen, wenn eine Kommandoliste bis zur letzten Zeile abgearbeitet wurde.

Keyboard Layout


    Das Keyboard-Layout ist standardmäßig auf Englisch eingestellt. Wenn Sie ein deutsches Tastaturlayout simulieren wollen, müssen Sie den folgenden Befehl im Terminal eingeben (und danach mit "s;" speichern):
    l1; für ein deutsches Windows CP1252 Tastaturlayout.
    l0; für ein deutsches DOS Tastaturlayout
    l2; für ein englisches Tastaturlayout

    Weitere Tastaturlayouts werden auf Anfrage hinzugefügt.