USB Macro Keypad
Arduino USB Tastatur frei Programmierbar Deutsch selber bauen.
|
Bauanleitung für das Arduino Leonardo USB Macro Keyboard
Beliebige Resistive Touchscreen Panel an eine harte Unterlage am Rand an 2 Seiten mit doppelseitigem Klebeband ankleben.
Im Excel eine Tabelle mit abmessungen des Touch Bereichs erzeugen.
Passende Icons im Internet finden und in die Zellen der Tabelle einfügen. Ausgedruckte Tabelle ausschneiden und zwischen der Unterlage und Touchpanel von der seite einschieben.
Auf der Rückseite des USB macro Tastatur wird der Pro Micro Modul mit ATmega32U4( Arduino Leonardo Board ähnlich) und ein Piezo wandler angeklebt. Damit ist die Hardware fertig.
Das ist ja mega leichte DIY Bastel Projekt der auch ein Anfänger in elektronik selber bauen kann.
Der Schaltplan beinhaltet ja nur 3 Bauteile. Es ist auch sehr günstiges Bastelstück.
Resistive Touch Screen Digitizer Glass 155mm 88mm kostet z.B. bei Aliexpress 5,36€
Pro Micro Modul, auch unter Namen BadUSB erhältlich, kostet z.B. bei Aliexpress 3,30€
Piezo 0,70€
Damit belaufen die Kosten den selbstgebautes USB shortcut keyboards insgesamt auf 9,36€
Schaltplan
Ich habe ein Piezo Summer in die Schaltung eingefügt um eine akustische Meldung einer Betätigung der Taste zu realisieren.
Nach dem Drücken auf ein Touch Feld wird ein leiser knack Geräusch erzeugt. An dem Piezo werden 5V und 0V bei jeder Betätigung gewechselt .
Pinout Pinbelegung des Resistive Touch Screen Panels ermitteln
Falls Sie ein Touch Screen Digitizer Glass mit unbekanntem Pinout zu Hand haben
Messung des Widerstandes am Touchpanel mit einem Multimeter
Widerstand am 4 Leitungen messen. Es werden 2 Paare gefunden mit einem Widerstand im Paar von zirka 300-400 Ohm.
Diese paare sind x platten und y platten. Zwischen den Paaren ist es hochohmig.
Verbinden sie ein Paar miteinander.
Messen Sie zwischen verbundener Paar und freiem Pin, dabei Streicheln Sie am Touchscreen Panel vertikal. Wenn eine sichtbare Widerstandsänderung passiert dann ist das verbundene Paar - X. Falls keine Widerstandsänderung passiert, Streicheln Sie am Touch screen Panel horizontal. Der Widerstand ändert sich. In dem fall ist verbundene Paar -Y.
Ermittlung was ist Y1 und was ist Y2
Paar X ist miteinander Verbunden und es wird gegen Y-Pin gemessen. Streicheln Sie Touchscreen von Oben nach Unten, wenn der Widerstand sinkt, haben Sie Y2 erwischt. Wenn Widerstand steigt haben Sie Y1 erwischt.
Paar Y ist miteinander Verbunden und es wird gegen X-Pin gemessen. Streicheln Sie Touchscreen von Links nach Rechts, wenn der Widerstand sinkt, haben Sie X2 erwischt. Wenn Widerstand steigt haben Sie X1 erwischt.
Passen Sie den Sketch Ihrer Anschlussbelegung
// ------------------- Touchscreen Panel Anschluss Zuordnung ----------------
#define X1 A1
#define X2 A3
#define Y1 A0
#define Y2 A2
Kalibrierung des Resistive Touchscreen-Panels
Bei erster Anwendung soll das Arduino USB Keyboard einmal kalibriert werden.
Starten Sie Arduino Terminal und senden Sie Zeichen “k”.
Sie werden Aufgefordert einmal ganz Oben Links und einmal ganz unten rechts zu drucken.
Am besten Treffen Sie die Ecke des äußeren Randes der Tabelle auf der Papierunterlage.
Die Kalibrierwerte werden dauerhaft im EEPROM gespeichert. Beim Neuladen des Sketches bleiben die ebenfalls erhalten.
Mit dem senden der “r” Zeichen wird ein Modus eingeschaltet in dem man über serielle Schnittstelle die Rohdaten zu Debug Zwecken ausgegeben werden.
Ein mal X / Y Werte des AD-Wandlers und die umgerechnete Werte Spalten und Zeilen Nr. der Zelle in der Tabelle.
Die Programmierung des USB makro Keypads
Die Tastenkürzel, Kurzbefehle, Tastaturbefehle, Textbausteine und Tastenkombinationen werden in einer Tabelle im Programmspeicher des Arduino Leonardo Controllers gespeichert.
Am anfang des Sketches ist eine zweidimensionale String Array angelegt.
Die Positionen der Strings im Array entspricht den Zellen auf dem Touchscreen Panel
#define Reihen 3 #define Spalten 4 const String data[Reihen][Spalten] = { { "1", "2", "3", "A" }, { "4", "5", "6", "B" }, { "7", "8", "9", "C"}, }; |
Voraussetzung ist der Touch Bereich sollte noch leicht vom Finger getroffen werden. Ich denke die Minimale fläche ist 10x10mm. Somit können auf dem 155mm 88mm Touchscreen-Panel 15*8=120 Keys (Schaltflächen) platziert werden.
macros und Tastenkombinationen
Die Texte im Daten String werden direkt nach der betätigung der Tastfläche an den Computer übertragen als würden sie eingetippt.
Um Tastenkombinationen und macros speichern zu können habe ich 4 script-Befehle vorgesehen. Jeder Script-Befehl fängt mit “§”-Zeichen und endet mit “ ”-Leertaste Zeichen.
§p - Press "§p0x80 " Strg drücken
§r - Release "§r0x80 " Strg loslassen
§a - Release All "§a " Alle Tasten Loslassen
§w - Write "§w0xB0 " Enter klicken
§t - Timer "§t3000 " 3 Sekunden abwarten
So sieht das macro für das PC runterzufahren
"§p0x87 r§r0x87 §t100 shutdown -s -t 0 -f\n"
press 0x87
schreibe String "r"
Release 0x87
warte 100mS
schreibe String "shutdown -s -t 0 -f"
neue Zeile (gleich wie Enter)
Drücke Windows Taste (Code 0x87 RIGHT_GU sehe KeyboardDE.h), klicke r-Taste, loslasse Windows Taste. Das ist die Tastenkombination (shortcut) für Ausführen-Dialog. Dann wird 0,1s abgewartet damit der Dialog-Fenster aufgeht. Dann wird “shutdown -s -t 0 -f” eingegeben. Windows Befehl fürs Herunterfahren und anschließend mit “\n” Eingabetaste betätigt.
Arduino IDE unterstützt folgende Escape Code:
\n 10 LF (Line Feed) – Start new line (new line) Eingabetaste
\r 13 CR (Carriage Return) – Go to beginning of a line (return)
\t 9 Tab – Advance cursor to next tab-stop (tab)
\” 34 Double Quote
\’ 39 Single Quote
\\ 92 Backslash – so we can actually type that one as well
Zum Enter Klicken alternativ zum “\n” kann das Script - Befehl “§w0xb0 ” benutzt werden.
w-Write 0xb0 Code für KEY_BACKSPACE (sehe KeyboardDE.h)
Sketch
Download Sketch für ATmega32U4
es wird Bibliothek Arduino Leonardo USB Keyboard Deutsch library für Deutsche Tastaturlayout benötigt
und eine TouchScreen Bibliothek
Arduino international keyboard support MultiLanguage library kann für andere Sprachen / Layouts verwendet werden
Individuelles Layout für den TouchPad im Excel entwerfen.
USB Macro Keyboard DIY Video