Der bescheidene Arduino kann eine Menge Dinge tun, aber wussten Sie, dass es eine USB-Tastatur emulieren kann? Sie können diese schwer zu merkenden langen Tastenkombinationen mit dieser einfachen Schaltung zu einer einzigen benutzerdefinierten Tastenkombination kombinieren. Hier ist das Endergebnis:
Niemals zuvor einen Arduino benutzt? Erste Schritte mit Arduino: Ein Anfängerhandbuch Erste Schritte mit Arduino: Ein Anfängerhandbuch Arduino ist eine Open-Source-Prototyping-Plattform für Elektronik, die auf flexibler, benutzerfreundlicher Hardware und Software basiert. Es richtet sich an Künstler, Designer, Bastler und alle, die interaktive Objekte oder Umgebungen erstellen möchten. Lesen Sie zuerst.
Was du brauchst
Hier ist, was Sie brauchen, um dieses Projekt zu machen:
- 1 x Arduino Pro Micro.
- Momentan Tasten oder Tastaturtasten.
- 10K Ohm Widerstände.
- Assorted Hookup Drähte.
- 1 x 220 Ohm Widerstände.
- 1 x 5 mm (0, 197 Zoll) LED.
- 1 x 5mm LED Halter.
Sie werden ein sehr spezifisches Arduino für dieses Projekt benötigen. Ich benutze ein Pro-Mikro, da sie so klein und billig sind, benötigen Sie ein Arduino, das USB-Serial in den Prozessor (Atmega32u4) integriert hat. Es ist möglich, dieses Projekt mit anderen Arduinos, wie einem UNO oder Nano, zu bauen, aber es erfordert viel harte Arbeit, um das BIOS neu zu flashen und herumzufummeln, um 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-reihigen Stiftleiste für arduino Leonardo Ersetzen ATmega328 Pro Mini OSOYOO Pro Micro ATmega32U4 5V / 16MHz Modulplatine mit 2-reihigen Stiftleiste für arduino Leonardo Ersetzen ATmega328 Pro Mini Jetzt Kaufen bei Amazon 8, 99 €
Sie benötigen eine momentane Taste, einen 10K Ohm Widerstand und eine geeignete Anschlussleitung für jede Taste, die Sie verwenden möchten. Ich benutze Cherry MX mechanische Tastaturschalter für die eigentlichen Tastenkombinationen, obwohl jeder Schalter es tun wird, vorausgesetzt, es ist momentan und nicht rastend.
Je nachdem, wie Sie das erstellen, benötigen Sie möglicherweise einige andere Elemente. Wenn Sie es prototypieren möchten, benötigen Sie ein lötfreies Steckbrett. Es lohnt sich, das Geld für ein gutes auszugeben - sie können manchmal sehr unzuverlässig sein. Wenn Sie dies auffüllen wollen, werden Sie einige Stripboard kaufen wollen.
Bauplan
So funktioniert das. Der Arduino wird so programmiert, dass er wie eine USB-Tastatur funktioniert - was Ihren Computer betrifft. 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 zum Beispiel Alt > F4 gedrückt haben.
Auswählen eines Schalters
Es gibt verschiedene Varianten der Switches der MX-Serie. Diese Website bietet eine hervorragende Einführung, aber im Wesentlichen Lärm und Druck. Einige Modelle erfordern mehr Kraft zum Drücken, und einige Modelle geben beim Drücken ein mechanisches "Klicken" von sich. Ich habe Cherry MX Browns verwendet, die beim Drücken kein Geräusch machen. Sie haben alle die gleichen Abmessungen, also wählen Sie jedes Modell, das Sie mögen (oder mischen und zusammenpassen), ohne sich Sorgen zu machen.
Sie müssen natürlich auch einige Tastenkappen kaufen, und es gibt eine Welt von benutzerdefinierten Designs zur Auswahl - wir haben sie von KeyboardCo in Großbritannien gekauft
Der Fall
Ich habe diesen Fall in 3D gedruckt und Sie können die .STL- Dateien von Thingiverse herunterladen. Machen Sie sich keine Sorgen, wenn Sie keinen 3D-Drucker besitzen, können Sie dies dennoch erstellen. Viele Websites bieten 3D-Druckdienste wie 3D Hubs oder Shapeways. Alternativ ist dies ein sehr einfacher Fall, den Sie aus Plastik, Plexiglas, Holz oder sogar Pappe herstellen können. Wenn Sie wirklich sparsam sein wollen, verkaufen Cherry MX einen Schalter Tester / Sampler Set auf Amazon (UK). Sie benötigen 4 M5 x 35mm Schrauben und 4 M5 Muttern. Sie können diese natürlich durch eine geeignete Alternative ersetzen.
Max Tastatur Keycap, Kirsche MX Schalter, O-Ring Pro Sampler Tester Kit Max Tastatur Keycap, Kirsche MX Schalter, O-Ring Pro Sampler Tester Kit Jetzt Kaufen bei Amazon $ 19, 99
Wenn Sie Ihr eigenes Gehäuse machen, gibt es ein wichtiges Detail, das Sie wissen müssen: Cherry MX-Schalter sind ein Push-Fit in ihre Befestigungslöcher. Sie benötigen ein quadratisches Befestigungsloch von 14 x 14 mm (0, 551 Zoll), wobei die Platte nicht dicker als 1, 5 mm (0, 059 Zoll) ist. Streuen Sie zu weit von diesen Dimensionen entfernt, und Ihre Switches werden möglicherweise nicht mehr ordnungsgemäß installiert.
Das 3D-bedruckte Gehäuse besteht aus zwei Teilen, der Ober- und 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 Wörter "CHERRY" auf, und der Boden hat eine kleine Kerbe. Setzen Sie eine 3mm LED in diesen kleinen Steckplatz ein:
Sie werden feststellen, dass die LEDs am besten "auf dem Kopf" montiert sind. Dies war der Fall für die Tastenkappen, die ich verwendet habe, und es wirkt sich nicht auf die Schalter aus.
Sie sollten jetzt neun Schalter mit 9 LEDs haben. Es ist nicht notwendig, irgendwelche dieser Teile einzukleben. Das Lot hält die LEDs und die Reibung hält die Schalter fest.
Als nächstes schrauben Sie die LED-Halterung ein (lassen Sie die LED für jetzt entfernt). Sie werden das Gehäuse später fertigstellen, sobald die Schaltung gebaut ist.
Die Rennbahn
Diese Schaltung ist auf Stripboard aufgebaut. Dies ist hervorragend zum Aufbau von semi-permanenten Schaltungen ohne die Kosten einer gedruckten Leiterplatte (PCB). Es ist einfach ein Stück Fiberglas mit Kupferbahnen, die in einer Richtung parallel verlaufen. Diese Spuren können sowohl gelötet als auch geschnitten werden. Das Schneiden eines Tracks kann mit einem speziellen Werkzeug oder einem kleinen Bohrer erfolgen.
Nicht zu sicher beim Löten? Werfen Sie einen Blick auf diese einfachen Projekte Erfahren Sie, wie man Löten, mit diesen einfachen Tipps und Projekten Lernen Sie, wie man Löten, mit diesen einfachen Tipps und Projekten Sind Sie ein wenig eingeschüchtert durch den Gedanken an ein heißes Eisen und geschmolzenes Metall? Wenn Sie mit Elektronik arbeiten wollen, müssen Sie lernen, zu löten. Lasst uns helfen. Lesen Sie zuerst.
Hier ist das Stripboard-Layout (ohne abschließende Leads):
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:
Es ist eine enge Passung, um alle Komponenten auf so kleinem Raum zusammenzudrücken. Schneide die Ecken deines Stripboards wie folgt:
Dies sollte ordentlich in den Boden des Gehäuses passen:
Stellen Sie sicher, dass die Tracks vertikal verlaufen.
Verbinden Sie die Anode ( langer Schenkel, positiv ) der LED mit dem 200 Ohm Widerstand und dann mit +5 V. Schließen Sie die Kathode ( kurzer Schenkel, negativ ) an Masse an. Bedecken Sie die Beine mit einem Schrumpfschlauch und drücken Sie sie in den LED-Halter. Es ist kein Kleber erforderlich, jedoch kann es sein, dass der LED-Halter nicht aufgesteckt ist. Daher müssen Sie diese Anweisungen möglicherweise anpassen.
Möglicherweise möchten Sie stattdessen eine zweifarbige LED verwenden, um zwei oder mehr Schalterbänke einzurichten, wobei für jede Bank eine andere farbige Status-LED angezeigt wird.
Jetzt ist es an der Zeit, alle LEDs für die Tasten zu löten. Diese werden nur verwendet, um die Tasten leuchten zu lassen, 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 und alle Kathoden miteinander. Lernen Sie von meinem Fehler - es ist viel einfacher, dies vor dem Verdrahten der Schalter zu tun! Verbinden Sie die Anoden über einen 220 Ohm Widerstand mit +5 V und die Kathoden mit Erde. Diese LEDs sind parallel verdrahtet. 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 irgendwelche LEDs nicht funktionieren, überprüfen Sie Ihre Verkabelung.
Jetzt verdrahten Sie die Schalter. Diese müssen über einen 10k Widerstand verbunden sein, sonst wird der Arduino sterben. Das nennt man einen toten Kurzschluss - +5 V geht direkt in den Boden und alles, was von deinem Arduino übrig bleibt, wird eine Rauchwolke sein (vertrau mir, ich habe schon einen getötet, also musst du nicht). 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, wobei jeder seinen eigenen 10K-Widerstand gegen Masse hat. Sei vorsichtig beim Löten von Cherry MX Schaltern, sie können ein wenig zerbrechlich sein, ich hatte mehrere Stifte, die mich brechen. Möglicherweise möchten Sie diese direkt an einige mehr Stripboard löten, jedoch sind nachlaufende Leads immer noch geeignet.
Das war's für die Verkabelung. Vielleicht möchten Sie eine USB Typ B Buchse installieren, aber die winzigen Pins an ihnen können oft ziemlich schwierig zu löten sein. Wenn Sie dies nicht tun möchten, machen Sie sich keine Sorgen. Der Micro-USB-Anschluss des Arduino passt sauber in das Loch im Gehäuse. Wenn Sie ein wenig verwirrt über die verschiedenen USB-Typen sind, vergewissern Sie sich, dass Sie die Unterschiede verstehen. USB-Kabeltypen und welche zu verwenden USB-Kabeltypen und welche zu verwenden Die Welt der USB-Kabel kann ein wenig verwirrend sein, weil es so ist viele verschiedene Verbindungstypen. Hier ist alles, was Sie wissen müssen, um nicht länger verwirrt zu sein. Weiterlesen .
Überprüfen Sie abschließend, ob Ihre Schaltung korrekt ist. Ein Kurzschluss kann einen Arduino leicht zerstören, und es kann leicht sein, mit Stripboard zu tun.
Der Code
Jetzt testen Sie die Schaltung ist korrekt. Es ist eine gute Idee, dies zu tun, bevor Sie fortfahren, damit Sie alle Probleme beheben können, solange Sie können. Laden Sie diesen Testcode hoch (vergessen Sie nicht, die richtige Karte und den richtigen Port aus den Menüs Tools > Board und Tools > Port auszuwählen):
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. Sie sollten sehen, dass der serielle Monitor die Nummer der gedrückten Taste anzeigt. Genau wie bei der LED, wenn Ihr Computer beschwert, zu viel Strom zu ziehen, oder die LEDs erlöschen, wenn Sie einen Knopf drücken, trennen Sie sofort! Sie haben einen Kurzschluss irgendwo in der Schaltung, überprüfen Sie die Schaltung ist korrekt und es gibt keine Kurzschlüsse zwischen Verbindungen.
Wenn alles funktioniert, leg los und lege die Schaltung in die Box. Vielleicht möchten Sie einen Klecks Kleber verwenden, um die Schaltung an Ort und Stelle zu halten (obwohl die Drähte meine in Ordnung hielten). Schrauben Sie den Deckel auch fest.
Das Arduino als eine Tastatur erscheinen zu lassen, ist sehr einfach. Wenn Sie einen Nano oder UNO verwenden, werden Sie Ihren Arduino mit Device Firmware Update (DFU) neu programmieren. Dies wird normalerweise verwendet, um neue Firmware auf dem 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 eine ziemlich komplexe Aufgabe ist. Die Arduino-Website hat dazu ein gutes Tutorial.
Der Arduino Pro Micro macht diesen Schritt sehr einfach. Die Logik zum Emulieren einer USB-Tastatur ist bereits in den Prozessor integriert, so dass es einfach ist, etwas Code zu schreiben!
Richte 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 Schaltflächen verwendet oder andere Pins verwendet haben, ändern Sie die Werte hier.
Ein Array ist eine Sammlung von Gleichgesinnten. Computer können Ihren Code optimieren, um schnell darauf zugreifen zu können, und sie beschleunigen den Code-Erstellungsprozess.
Jetzt initialisieren Sie 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. Dafür wird eine Schleife verwendet. Anstatt also neunmal pinMode (2, INPUT) zu schreiben, müssen Sie es nur einmal schreiben. Dies ruft auch Keyboard.begin auf . Dadurch wird eine in die Arduino-Bibliothek integrierte Funktion eingerichtet, die speziell für die Emulation 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 eine Nadel und prüft, ob sie gedrückt wurde oder nicht. Es gibt einfach TRUE oder FALSE zurück . Es enthält auch eine gewisse Entprellung der Software - eine einfache Verzögerung und erneutes Überprüfen des Schalters stellt sicher, dass die Taste wirklich gedrückt wurde.
Nun wird eine weitere for-Schleife in void loop () aufgerufen:
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 überprüft, ob es gedrückt wurde. Dies wird durch die readButton- Methode erreicht, die Sie zuvor erstellt haben. Wenn eine Schaltfläche 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 einer switch- Anweisung. Switch-Anweisungen (manchmal Switch-Case genannt ) ähneln einer if- Anweisung, 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. Keyboard.println schreibt Text auf den Computer, als ob Sie jeden Schlüssel physisch eingegeben hätten. Keyboard.press drückt und hält eine Taste gedrückt. Vergessen Sie nicht, sie nach einer kurzen Verzögerung mit Keyboard.releaseAll zu veröffentlichen !
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 Zahlen- und Buchstabentasten kann der Arduino die meisten Sondertasten mit der Bezeichnung Keyboard Modifiers drücken. Diese sind besonders nützlich, um Tastaturkürzel zu drücken. Die Arduino-Website hat eine hilfreiche Liste.
Jetzt müssen nur noch einige Verknüpfungen erstellt werden. Sie können dies auf vorhandene Verknüpfungen wie Alt + F4 (Programm in Windows schließen) oder Cmd + Q (Programm macOS beenden) abbilden. Alternativ können Sie auch unser ultimatives Tastaturkürzel-Handbuch lesen. Windows-Tastaturkürzel 101: Das ultimative Handbuch Windows-Tastaturkürzel 101: Das ultimative Handbuch Tastaturkürzel können Ihnen viele Stunden Zeit sparen. Meistern Sie die universellen Windows-Tastaturkürzel, Tastaturtricks für bestimmte Programme und einige andere Tipps, um Ihre Arbeit zu beschleunigen. Weitere Informationen zum Erstellen von Windows-Verknüpfungen Erstellen von Windows-Desktopverknüpfungen auf einfache Weise So erstellen Sie Windows-Desktopverknüpfungen auf einfache Weise Mithilfe intelligenter Desktopverknüpfungen können Sie sinnlos durch Menüs und Ordner blättern. Wir zeigen Ihnen schnelle und einfache Möglichkeiten, sie zu erstellen. Weitere Informationen und jede Chromebook-Verknüpfung Hier finden Sie alle Chromebook-Verknüpfungen, die Sie benötigen. Hier finden Sie alle Chromebook-Verknüpfungen, die Sie jemals benötigen werden Sie suchen nach einer Master-Liste mit Tastenkombinationen für Ihr Chromebook? Hier ist jede Tastenkombination, die Sie für Chrome OS benötigen! Lesen Sie mehr, um eigene Abkürzungen zu erstellen.
Haben Sie Ihre eigene Verknüpfungsbox erstellt? Lass mich in den Kommentaren wissen, ich würde gerne einige Bilder sehen!