Erstellen Sie Ihre eigenen benutzerdefinierten Tastenkombinationen mit einem Arduino

Erstellen Sie Ihre eigenen benutzerdefinierten Tastenkombinationen mit einem Arduino

Der bescheidene Arduino kann viele Dinge tun, aber wussten Sie, dass er eine USB-Tastatur emulieren kann? Mit dieser einfachen Schaltung können Sie diese schwer zu merkenden langen Tastenkombinationen zu einer einzigen benutzerdefinierten Tastenkombination kombinieren. Hier ist das Endergebnis:





Noch nie einen Arduino benutzt? Schauen Sie sich unsere Erste Schritte Erste.





Was du brauchst

Hier ist, was Sie brauchen, um dieses Projekt zu machen:





  • 1 x Arduino Pro-Mikro.
  • Momentane Tasten oder Tastaturtasten.
  • 10K Ohm Widerstände.
  • Verschiedene Anschlussdrähte.
  • 1 x 220 Ohm Widerstände.
  • 1 x 5 mm (0,197 Zoll) LED.
  • 1 x 5mm LED-Halter.

Sie benötigen für dieses Projekt ein sehr spezifisches Arduino. Ich benutze a Pro Micro , da sie so klein und billig sind, benötigen Sie einen Arduino, der USB-Serial in den Prozessor integriert hat (Atmega32u4). Es ist möglich, dieses Projekt mit anderen Arduinos wie einem UNO oder Nano zu bauen, es erfordert jedoch viel harte Arbeit, das Bios neu zu flashen und herumzufummeln, um die Dinge zum Laufen zu bringen. Klone anderer Arduino-Modelle funktionieren normalerweise überhaupt nicht, aber ein Pro Micro-Klon ist auch in Ordnung.

OSOYOO Pro Micro ATmega32U4 5V/16MHz Modulplatine mit 2-reihiger Stiftleiste Ersetzen durch ATmega328 Pro Mini für Arduino JETZT BEI AMAZON KAUFEN

Sie benötigen für jede Taste, die Sie verwenden möchten, eine momentane Taste, einen 10K-Ohm-Widerstand und ein entsprechendes Anschlusskabel. Ich verwende mechanische Cherry MX-Tastaturschalter für die eigentlichen Shortcut-Tasten, obwohl irgendein Der Schalter ist ausreichend, sofern er kurzzeitig ist und nicht einrastet.



Sie benötigen möglicherweise ein paar andere Elemente, je nachdem, wie Sie dies erstellen. Wenn Sie es prototypisieren möchten, benötigen Sie ein lötfreies Steckbrett . Es lohnt sich, das Geld für eine gute auszugeben – sie können manchmal sehr unzuverlässig sein. Wenn Sie dies einpacken möchten, möchten Sie ein Stripboard kaufen.

Bauplan

So wird das funktionieren. Der Arduino wird so programmiert, dass er sich wie eine USB-Tastatur verhält – was Ihren Computer betrifft, ist dies der Fall. Mehrere mit dem Arduino verbundene Tasten senden Tastenbefehle an Ihren Computer. Sie werden nur eine Taste drücken, aber Ihr Computer wird denken, dass Sie gedrückt haben Alles > F4 , zum Beispiel.





Auswahl eines Schalters

Es gibt verschiedene Variationen von Schaltern der MX-Serie. Diese Internetseite bietet eine hervorragende Einführung, aber es geht im Wesentlichen um Lärm und Druck. Einige Modelle erfordern mehr Kraft zum Drücken, und einige Modelle machen beim Drücken ein mechanisches „Klickgeräusch“. Ich habe Cherry MX Browns verwendet, die beim Drücken keine Geräusche machen. Sie haben alle die gleichen Abmessungen, also wählen Sie ohne Sorgen ein beliebiges Modell aus (oder kombinieren Sie es miteinander).

Sie müssen natürlich auch einige Tastenkappen kaufen, und es gibt eine Welt von Sonderanfertigungen da draußen zur Auswahl - wir haben gekauft bei KeyboardCo in Großbritannien





Der Fall

Ich habe diese Hülle in 3D gedruckt, und Sie können die herunterladen .STL Dateien von Thingiverse . Machen Sie sich keine Sorgen, wenn Sie keinen 3D-Drucker besitzen, Sie können diesen trotzdem bauen. Viele Websites bieten 3D-Druckdienste an, wie z 3D-Hubs oder Shapeways . Alternativ ist dies ein sehr einfacher Fall, Sie können Ihren eigenen aus Plastik, Plexiglas, Holz oder sogar Pappe herstellen. Wenn Sie wirklich sparsam sein möchten, verkaufen Sie bei Cherry MX ein Switch-Tester/Sampler-Set auf Amazonas ( Vereinigtes Königreich ). Sie benötigen 4 M5 x 35 mm Schrauben und 4 M5 Muttern. Sie können diese natürlich durch eine geeignete Alternative ersetzen, die Sie haben.

Max Keyboard Keycap, Cherry MX Switch, Tester Kit (9 Schalter Pro Sampler Tester Kit) JETZT BEI AMAZON KAUFEN

Wenn Sie Ihr eigenes Gehäuse herstellen, müssen Sie ein wichtiges Detail wissen: Cherry MX-Schalter werden in ihre Befestigungslöcher gesteckt. Sie benötigen ein quadratisches Montageloch von 14 x 14 mm (0,551 Zoll), wobei die Platte nicht dicker als 1,5 mm (0,059 Zoll) ist. Wenn Sie zu weit von diesen Abmessungen abweichen, können Ihre Schalter möglicherweise nicht mehr richtig montiert werden.

Das 3D-gedruckte Gehäuse besteht aus zwei Teilen, der Oberseite und der Unterseite. Schieben Sie die Cherry MX-Schalter in die quadratischen Löcher:

Stellen Sie sicher, dass Sie die Schalter richtig herum montieren. Die Oberseite hat die Worte 'CHERRY' und die Unterseite hat eine kleine Kerbe. Setzen Sie eine 3mm LED in diesen kleinen Schlitz ein:

Sie werden vielleicht feststellen, dass die LEDs am besten aussehen, wenn sie „verkehrt herum“ montiert sind. Dies war bei den von mir verwendeten Tastenkappen der Fall und hat keinen Einfluss auf die Schalter.

Sie sollten jetzt neun Schalter mit 9 LEDs haben. Sie müssen keines dieser Teile einkleben. Das Lötmittel hält die LEDs und die Reibung hält die Schalter.

Als nächstes schrauben Sie die LED-Halterung ein (lassen Sie die LED vorerst entfernt). Sie werden die Montage des Gehäuses später beenden, sobald die Schaltung aufgebaut ist.

Die Rennbahn

Diese Schaltung ist auf Stripboard aufgebaut. Dies ist hervorragend für den Aufbau semipermanenter Schaltkreise ohne die Kosten einer Leiterplatte (PCB) geeignet. Es ist einfach ein Stück Glasfaser mit Kupferbahnen, die parallel in eine Richtung verlaufen. Diese Spuren können sowohl angelötet als auch geschnitten werden. Das Schneiden einer Spur kann mit einem Spezialwerkzeug oder einem kleinen Bohrer erfolgen.

Sie sind beim Löten nicht so sicher? Schauen Sie sich zuerst diese einfachen Projekte an.

Hier ist das Stripboard-Layout (ohne nachlaufende Leitungen):

Stellen Sie sicher, dass Sie die Spuren unter den Widerständen und dem Arduino schneiden. Da es sehr schwierig sein kann, eine Stripboard-Schaltung zu lesen, ist hier eine Breadboard-Version:

Alle Komponenten auf so kleinem Raum zusammenzupressen ist eine enge Passform. Schneiden Sie die Ecken Ihres Stripboards wie folgt ab:

Dies sollte ordentlich in den Boden des Gehäuses passen:

Stellen Sie sicher, dass die Spuren vertikal verlaufen.

Schließen Sie die Anode an ( langes Bein, positiv ) der LED an den 200 Ohm Widerstand und dann an +5 V. Verbinden Sie die Kathode ( kurzes Bein, negativ ) grundieren. Die Beine mit Schrumpfschlauch abdecken und dann in die LED-Halterung schieben. Es ist kein Kleber erforderlich, jedoch ist Ihr LED-Halter möglicherweise nicht aufsteckbar, sodass Sie diese Anleitung möglicherweise anpassen müssen.

Vielleicht möchten Sie hier stattdessen eine zweifarbige LED verwenden -- dies ermöglicht Ihnen, zwei oder mehr Schalterbänke einzurichten, mit einer unterschiedlichen farbigen Status-LED für jede Bank.

Jetzt ist es Zeit, alle LEDs für die Tastenkappen zu löten. Diese werden ausschließlich verwendet, um die Tasten zum Leuchten zu bringen, sodass Sie sie überspringen können, wenn Sie möchten, und sie müssen nicht an einen digitalen Pin angeschlossen werden, sondern nur an die Stromversorgung. Verbinden Sie alle Anoden miteinander und alle Kathoden miteinander. Lernen Sie aus meinem Fehler - es ist viel einfacher, dies zu tun, bevor Sie die Schalter verdrahten! Verbinden Sie die Anoden über einen 220-Ohm-Widerstand mit +5 V und die Kathoden mit Masse. Diese LEDs sind parallel geschaltet. Hier ist die Schaltung nur für diese LEDs:

Verwenden Sie ein kleines Stück Schrumpfschlauch, um die Verbindung zwischen den LEDs und dem Arduino abzudecken:

Schalten Sie den Arduino ein, um alle LEDs zu testen. Sie müssen keinen Code hochladen. Wenn LEDs nicht funktionieren, überprüfen Sie Ihre Verkabelung.

Verdrahten Sie nun die Schalter. Diese müssen über einen 10k-Widerstand verbunden werden, sonst stirbt der Arduino. Dies wird als toter Kurzschluss bezeichnet - +5 V gehen direkt in den Boden, und alles, was von Ihrem Arduino übrig bleibt, ist eine Rauchwolke (vertrau mir, ich habe bereits einen getötet, damit Sie es nicht müssen). Hier ist die Schaltung für einen Schalter:

Diese Schaltung ist für alle neun Schalter gleich. Verbinden Sie die Schalter mit den digitalen Pins zwei bis zehn, jeder mit einem eigenen 10K-Widerstand gegen Masse. Seien Sie vorsichtig beim Löten von Cherry MX-Schaltern, sie können ein wenig zerbrechlich sein, ich hatte mehrere Pins bei mir gebrochen. Vielleicht möchten Sie diese direkt auf weitere Stripboards löten, aber Schleppkabel sind immer noch geeignet.

Das wars für die Verkabelung. Möglicherweise möchten Sie eine USB-Buchse vom Typ B montieren, aber die winzigen Stifte darauf können oft ziemlich schwierig zu löten sein. Wenn Sie dies nicht möchten, machen Sie sich keine Sorgen. Der Micro-USB-Anschluss des Arduino passt genau in das Loch im Gehäuse. Wenn Sie etwas verwirrt über die verschiedenen USB-Typen sind, stellen Sie sicher, dass Sie die Unterschiede verstehen .

Überprüfen Sie abschließend noch einmal, ob Ihre Schaltung korrekt ist. Ein Kurzschluss kann ein Arduino leicht zerstören, und es kann einfach sein, ein Stripboard zu verwenden.

Der Code

Testen Sie nun, ob die Schaltung korrekt ist. Es ist eine gute Idee, dies zu tun, bevor Sie fortfahren, damit Sie alle Probleme jetzt beheben können, solange Sie können. Laden Sie diesen Testcode hoch (vergessen Sie nicht, das richtige Board und den richtigen Port aus dem Werkzeuge > Planke und Werkzeuge > Hafen Menüs):

const int buttons[] = {2,3,4,5,6,7,8,9,10}; // array of all button pins
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(2, INPUT);
pinMode(3, INPUT);
pinMode(4, INPUT);
pinMode(5, INPUT);
pinMode(6, INPUT);
pinMode(7, INPUT);
pinMode(8, INPUT);
pinMode(9, INPUT);
pinMode(10, INPUT);
}
void loop() {
// put your main code here, to run repeatedly:
for(int i = 2; i <11; ++i) {
if(digitalRead(i) == HIGH) {
// software de-bounce improves accuracy
delay(10);
if(digitalRead(i) == HIGH) {
// check switches
Serial.print ('input');
Serial.println(i);
delay(250);
}
}
}
}

Möglicherweise müssen Sie die Pins ändern, wenn Sie die Schaltung geändert haben.

Öffnen Sie nach dem Hochladen den seriellen Monitor ( oben rechts > Serieller Monitor ). Drücken Sie nacheinander jede Taste. Auf dem seriellen Monitor sollte die Nummer der gedrückten Taste angezeigt werden. Genau wie bei der LED: Wenn sich Ihr Computer über zu viel Strom beschwert oder die LEDs erlöschen, wenn Sie eine Taste drücken, trennen Sie sofort die Verbindung! Sie haben irgendwo im Stromkreis einen Kurzschluss, überprüfen Sie, ob der Stromkreis korrekt ist und es keine Kurzschlüsse zwischen den Anschlüssen gibt.

Wenn alles funktioniert, fahren Sie fort und legen Sie die Schaltung in die Box. Vielleicht möchten Sie einen Klecks Klebstoff verwenden, um die Schaltung an Ort und Stelle zu halten (obwohl die Drähte meine in Ordnung hielten). Schrauben Sie auch den Deckel fest.

Das Arduino als Tastatur erscheinen zu lassen, ist sehr einfach. Wenn Sie einen Nano oder UNO verwenden, werden Sie Ihren Arduino neu programmieren mit Geräte-Firmware-Update (DFU). Dies wird normalerweise verwendet, um neue Firmware auf den Arduino zu flashen. Sie werden es verwenden, um das Arduino mit einer neuen Firmware zu flashen, die es wie eine Tastatur funktionieren lässt. Dies wird hier nicht behandelt, da es sich um eine recht komplexe Aufgabe handelt. Die Arduino-Website hat dafür eine gute Anleitung.

Das Arduino Pro Micro macht diesen Schritt sehr einfach. Die zum Emulieren einer USB-Tastatur erforderliche Logik ist bereits in den Prozessor integriert, es ist also so einfach wie Code zu schreiben!

Richten Sie zuerst die Schlüssel ein:

int keys[] = {2, 3, 4, 5, 6, 7, 8, 9, 10};

Dies ist ein Array, das alle Pins enthält, mit denen die Tasten verbunden sind. Wenn Sie mehr oder weniger Tasten oder andere Pins verwendet haben, ändern Sie die Werte hier.

Ein Array ist eine Sammlung von gleichgesinnten Dingen. Computer können Ihren Code optimieren, um schnell darauf zuzugreifen, und sie beschleunigen den Code-Schreibprozess.

Initialisieren Sie nun alle Pins als Eingänge:

void setup() {
// put your setup code here, to run once:
Keyboard.begin(); // setup keyboard
for (int i = 2; i <11; ++i) {
// initilize pins
pinMode(i, INPUT);
}
}

Dies teilt dem Arduino mit, dass alle Pins im Array Eingänge sind. Dazu wird eine Schleife verwendet, also anstatt zu schreiben pinMode(2, EINGANG) neunmal musst du es nur einmal schreiben. Das ruft auch Tastatur.begin . Dadurch wird eine in die Arduino-Bibliothek integrierte Funktion eingerichtet, die speziell zum Emulieren einer Tastatur entwickelt wurde.

Erstellen Sie eine Methode namens readButton :

boolean readButton(int pin) {
// check and debounce buttons
if (digitalRead(pin) == HIGH) {
delay(10);
if (digitalRead(pin) == HIGH) {
return true;
}
}
return false;
}

Dies nimmt einen Stift und prüft, ob er gedrückt wurde oder nicht. Es kehrt einfach zurück WAHR oder FALSCH . Es enthält auch einige Software-Entprellung -- eine einfache Verzögerung und erneute Überprüfung des Schalters stellt sicher, dass die Taste wirklich gedrückt wurde.

Nun wird innen eine weitere for-Schleife aufgerufen Leere Schleife () :

void loop() {
// put your main code here, to run repeatedly:
for (int i = 2; i <11; ++i) {
// check buttons
if(readButton(i)) {
doAction(i);
}
}
}

Auch dies geht über jedes Element im Array und prüft, ob es gedrückt wurde. Es tut dies, indem es genannt wird readButton Methode, die Sie zuvor erstellt haben. Wenn eine Taste gedrückt wurde, übergibt sie diese PIN-Nummer an eine andere Methode namens doAction :

void doAction(int pin) {
// perform tasks
switch (pin) {
case 2:
Keyboard.println('drive.google.com');
break;
case 3:
Keyboard.println('makeuseof.com');
break;
case 4:
// CMD + T (new tab, Chrome)
Keyboard.press(KEY_LEFT_GUI);
Keyboard.press('t');
delay(100);
Keyboard.releaseAll();
break;
case 5:
// your task here
break;
case 6:
// your task here
break;
case 7:
// your task here
break;
case 8:
// your task here
break;
case 9:
// your task here
break;
}
}

Dies überprüft die PIN-Nummer mit a Schalter Stellungnahme. Switch-Anweisungen (manchmal auch . genannt Schaltergehäuse ) sind ähnlich wie an wenn Sie sind jedoch nützlich, um zu überprüfen, ob eine Sache (in diesem Fall die Pin-Nummer) einem von mehreren verschiedenen Ergebnissen entspricht. Im Wesentlichen sind sie viel schneller zu berechnen.

Die Hauptkomponenten befinden sich in dieser switch-Anweisung. Tastatur.println schreibt Text auf den Computer, als ob Sie jeden Schlüssel physisch eingegeben hätten. Tastatur.drücken drückt und hält eine Taste. Vergiss nicht, sie freizugeben mit Keyboard.releaseAll nach kurzer verzögerung!

beste spiele zum emulieren auf android

Hier ist der vollständige Code:

int keys[] = {2, 3, 4, 5, 6, 7, 8, 9, 10};
void setup() {
// put your setup code here, to run once:
Keyboard.begin(); // setup keyboard
for (int i = 2; i <11; ++i) {
// initilize pins
pinMode(i, INPUT);
}
}
void loop() {
// put your main code here, to run repeatedly:
for (int i = 2; i <11; ++i) {
// check buttons
if(readButton(i)) {
doAction(i);
}
}
}
boolean readButton(int pin) {
// check and debounce buttons
if (digitalRead(pin) == HIGH) {
delay(10);
if (digitalRead(pin) == HIGH) {
return true;
}
}
return false;
}
void doAction(int pin) {
// perform tasks
switch (pin) {
case 2:
Keyboard.println('drive.google.com');
break;
case 3:
Keyboard.println('makeuseof.com');
break;
case 4:
// CMD + T (new tab, Chrome)
Keyboard.press(KEY_LEFT_GUI);
Keyboard.press('t');
delay(100);
Keyboard.releaseAll();
break;
case 5:
// your task here
break;
case 6:
// your task here
break;
case 7:
// your task here
break;
case 8:
// your task here
break;
case 9:
// your task here
break;
}
}

Zusätzlich zu allen Ziffern- und Buchstabentasten kann der Arduino die meisten Sondertasten drücken, die als bezeichnet werden Tastaturmodifikatoren . Diese sind besonders nützlich, um Tastenkombinationen zu drücken. Die Arduino-Website hat eine hilfreiche Liste .

Jetzt müssen Sie nur noch einige Verknüpfungen erstellen. Sie können dies vorhandenen Verknüpfungen zuordnen, wie z Alles + F4 (Programm unter Windows schließen) oder Befehlszeile + Q (Programm macOS beenden). Alternativ lesen Sie unbedingt unsere ultimative Anleitung für Tastaturkürzel , wie man Windows-Verknüpfungen erstellt und jede Chromebook-Verknüpfung um mit dem Erstellen eigener Verknüpfungen zu beginnen.

Haben Sie Ihre eigene Shortcut-Box erstellt? Lass es mich in den Kommentaren wissen, ich würde mich über ein paar Bilder freuen!

Wir hoffen, dass Ihnen die von uns empfohlenen und besprochenen Artikel gefallen! MUO hat Partner- und gesponserte Partnerschaften, sodass wir einen Anteil an den Einnahmen aus einigen Ihrer Einkäufe erhalten. Dies hat keinen Einfluss auf den von Ihnen bezahlten Preis und hilft uns, die besten Produktempfehlungen anzubieten.

Teilen Teilen Tweet Email Hier ist der Grund, warum das FBI eine Warnung vor Hive Ransomware herausgegeben hat

Das FBI warnte vor einem besonders bösartigen Ransomware-Stamm. Aus diesem Grund müssen Sie bei Hive-Ransomware besonders vorsichtig sein.

Weiter lesen
Verwandte Themen
  • Heimwerken
  • Klaviatur
  • Tastatürkürzel
  • Arduino
Über den Autor Joe Coburn(136 veröffentlichte Artikel)

Joe hat einen Abschluss in Informatik an der University of Lincoln, Großbritannien. Er ist ein professioneller Softwareentwickler und wenn er nicht gerade Drohnen fliegt oder Musik schreibt, ist er oft beim Fotografieren oder Videoproduzieren anzutreffen.

Mehr von Joe Coburn

Abonniere unseren Newsletter

Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!

Klicken Sie hier, um zu abonnieren