Werbung
Das bescheidene Arduino kann viele Dinge, aber wussten Sie, dass es 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 Anleitung Erste Schritte mit Arduino: Ein Leitfaden für AnfängerArduino ist eine Open-Source-Elektronik-Prototyping-Plattform, 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. Weiterlesen zuerst.
Was du brauchst
Folgendes benötigen Sie, um dieses Projekt zu erstellen:
- 1 x Arduino Pro Micro.
- 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.
Für dieses Projekt benötigen Sie ein ganz bestimmtes Arduino. Ich benutze ein
Pro MicroDa sie so klein und billig sind, benötigen Sie ein Arduino, in das USB-Serial (Atmega32u4) integriert ist. Es ist möglich, dieses Projekt mit anderen Arduinos wie einer UNO oder Nano zu erstellen. Es erfordert jedoch viel harte Arbeit, um das BIOS neu zu flashen und herumzuspielen, 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-reihigem Stiftkopf für Arduino Leonardo Ersetzen Sie ATmega328 Pro MiniOSOYOO Pro Micro ATmega32U4 5V / 16MHz Modulplatine mit 2-reihigem Stiftkopf für Arduino Leonardo Ersetzen Sie ATmega328 Pro Mini Jetzt bei Amazon kaufen $10.99
Sie benötigen eine Momenttaste, einen 10K-Ohm-Widerstand und einen geeigneten Anschlussdraht für jede Taste, die Sie verwenden möchten. Ich verwende jedoch mechanische Cherry MX-Tastaturschalter für die eigentlichen Tastenkombinationen irgendein Der Schalter reicht aus, vorausgesetzt, er ist vorübergehend und rastet nicht ein.
Je nachdem, wie Sie dies erstellen, benötigen Sie möglicherweise einige andere Elemente. Wenn Sie einen Prototyp erstellen möchten, benötigen Sie einen lötfreies Steckbrett. Es lohnt sich, das Geld für einen guten auszugeben - sie können manchmal sehr unzuverlässig sein. Wenn Sie dies einpacken möchten, sollten Sie ein Stripboard kaufen.
Bauplan
So funktioniert das Das Arduino wird so programmiert, dass es sich wie eine USB-Tastatur verhält - für Ihren Computer ist dies der Fall. Mehrere mit dem Arduino verbundene Tasten senden Schlüsselbefehle an Ihren Computer. Sie werden nur eine Taste drücken, aber Ihr Computer wird denken, dass Sie gedrückt haben Alt > F4, zum Beispiel.
Schalter auswählen
Es gibt verschiedene Varianten von Switches der MX-Serie. Diese Internetseite bietet eine hervorragende Einführung, jedoch sind sie im Wesentlichen auf Lärm und Druck zurückzuführen. Einige Modelle erfordern mehr Kraft zum Drücken, und einige Modelle geben beim Drücken ein mechanisches Klicken ab. Ich habe Cherry MX Browns verwendet, die beim Drücken kein Geräusch machen. Sie haben alle die gleichen Abmessungen. Wählen Sie also ohne Bedenken ein beliebiges Modell aus (oder kombinieren Sie es).
Natürlich müssen Sie auch einige Tastenkappen kaufen, und es gibt eine Welt von Sonderanfertigungen da draußen zur Auswahl - wir haben bei gekauft KeyboardCo in Großbritannien
Der Fall
Ich habe diesen Fall in 3D gedruckt und Sie können ihn herunterladen .STL Dateien von Thingiverse. Machen Sie sich keine Sorgen, wenn Sie keinen 3D-Drucker besitzen. Sie können diesen dennoch erstellen. Viele Websites bieten 3D-Druckdienste an, wie z 3D Hubs oder Formen. Alternativ ist dies ein sehr einfacher Fall. Sie können Ihren eigenen Fall aus Plastik, Plexiglas, Holz oder sogar Pappe herstellen. Wenn Sie wirklich sparsam sein möchten, verkauft Cherry MX einen eingeschalteten Switch-Tester / Sampler 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.
Max Keyboard Keycap, Cherry MX-Schalter, Tester-Kit (9 Schalter Pro Sampler Tester Kit)Max Keyboard Keycap, Cherry MX-Schalter, Tester-Kit (9 Schalter Pro Sampler Tester Kit) Jetzt bei Amazon kaufen $14.99
Wenn Sie Ihren eigenen Koffer herstellen, müssen Sie ein wichtiges Detail kennen: Cherry MX-Schalter lassen sich in ihre Befestigungslöcher einstecken. Sie erfordern ein quadratisches Befestigungsloch von 14 x 14 mm (0,551 Zoll), wobei die Platte nicht dicker als 1,5 mm (0,059 Zoll) sein darf. Wenn Sie sich zu weit von diesen Abmessungen entfernen, werden Ihre Schalter möglicherweise nicht mehr richtig montiert.
Das 3D-gedruckte Gehäuse besteht aus zwei Teilen, dem oberen und dem unteren. 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 "KIRSCHE" auf, und die Unterseite hat eine kleine Kerbe. Setzen Sie eine 3-mm-LED in diesen kleinen Steckplatz ein:
Möglicherweise sehen die LEDs am besten „verkehrt herum“ montiert aus. Dies war bei den von mir verwendeten Tastenkappen der Fall und hat keinerlei Auswirkungen auf die Schalter.
Sie sollten jetzt neun Schalter mit 9 LEDs haben. Es ist nicht erforderlich, eines dieser Teile einzukleben. Das Lot hält die LEDs und die Reibung hält die Schalter.
Schrauben Sie als nächstes 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 eignet sich hervorragend zum Aufbau semipermanenter Schaltkreise ohne die Kosten einer Leiterplatte. Es ist einfach ein Stück Glasfaser mit parallel in eine Richtung verlaufenden Kupferbahnen. Diese Spuren können sowohl verlötet als auch geschnitten werden. Das Schneiden einer Spur kann mit einem Spezialwerkzeug oder einem kleinen Bohrer erfolgen.
Nicht zu sicher beim Löten? Schau es dir an diese einfachen Projekte Erfahren Sie mit diesen einfachen Tipps und Projekten, wie Sie lötenSind Sie ein wenig eingeschüchtert von dem Gedanken an ein heißes Eisen und geschmolzenes Metall? Wenn Sie mit Elektronik arbeiten möchten, müssen Sie das Löten lernen. Lasst uns helfen. Weiterlesen zuerst.
Hier ist das Stripboard-Layout (ohne nachfolgende Leads):
Stellen Sie sicher, dass Sie die Spuren unter den Widerständen und dem Arduino abschneiden. Da es sehr schwierig sein kann, eine Stripboard-Schaltung zu lesen, ist hier eine Breadboard-Version:
Es ist eine enge Passform, alle Komponenten auf so kleinem Raum zusammenzudrücken. Schneiden Sie die Ecken Ihres Stripboards wie folgt ab:
Dies sollte genau 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. Schließen Sie die Kathode an (kurzes Bein, negativ) grundieren. Decken Sie die Beine mit einem Schrumpfschlauch ab und drücken Sie sie dann in den LED-Halter. Es ist kein Klebstoff erforderlich, Ihr LED-Halter ist jedoch möglicherweise nicht aufsteckbar. Daher müssen Sie diese Anweisungen möglicherweise anpassen.
Möglicherweise möchten Sie hier stattdessen eine zweifarbige LED verwenden. Auf diese Weise können Sie zwei oder mehr Schalterbänke mit einer andersfarbigen Status-LED für jede Bank einrichten.
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. Sie können sie also überspringen, 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 aus meinem Fehler - es ist viel einfacher, dies zu tun, bevor Sie die Schalter verkabeln! 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 zu testen, ob alle LEDs funktionieren. 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 angeschlossen 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 eine getötet, damit du es nicht musst). 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, von denen jeder seinen eigenen 10K-Widerstand gegen Masse hat. Seien Sie vorsichtig beim Löten von Cherry MX-Schaltern, sie können etwas zerbrechlich sein. Ich hatte mehrere Stifte an mir. Möglicherweise möchten Sie diese direkt auf ein weiteres Stripboard löten, jedoch sind nachlaufende Kabel weiterhin geeignet.
Das war's für die Verkabelung. Möglicherweise möchten Sie eine USB-Buchse vom Typ B anschließen, die winzigen Stifte sind jedoch oft nur schwer zu verlöten. Wenn Sie dies nicht möchten, machen Sie sich keine Sorgen. Der Micro-USB-Anschluss am Arduino passt genau in das Loch im Gehäuse. Wenn Sie über die verschiedenen USB-Typen etwas verwirrt sind, stellen Sie sicher, dass Sie die Unterschiede verstehen Verstehen der USB-Kabeltypen und der zu verwendendenWarum gibt es so viele verschiedene USB-Kabeltypen? Erfahren Sie, welche Unterschiede zwischen den USB-Steckertypen bestehen und wie Sie das beste Kabel kaufen. Weiterlesen .
Überprüfen Sie abschließend, ob Ihre Schaltung korrekt ist. Ein Kurzschluss kann ein Arduino leicht zerstören, und es kann leicht sein, 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, die richtige Karte und den richtigen Port aus dem auszuwählen Werkzeuge > Tafel und Werkzeuge > Hafen Menüs):
const int button [] = {2,3,4,5,6,7,8,9,10}; // Array aller Schaltflächenstifte void setup () {// Gib deinen Setup-Code hier ein, um ihn einmal auszuführen: 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 () {// Gib deinen Hauptcode hier ein, um ihn wiederholt auszuführen: for (int i = 2; i <11; ++ i) {if (digitalRead (i) == HIGH) {// Software-De-Bounce verbessert die Genauigkeitsverzögerung (10); if (digitalRead (i) == HIGH) {// Schalter prüfen Serial.print ("input"); Serial.println (i); Verzögerung (250); } } } }
Möglicherweise müssen Sie die Pins wechseln, 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 Taste angezeigt werden, die Sie gedrückt haben. Genau wie bei der LED, wenn Ihr Computer sich über zu viel Strom beschwert oder die LEDs beim Drücken einer Taste erlöschen, trennen Sie sofort die Verbindung! Sie haben irgendwo im Stromkreis einen Kurzschluss, überprüfen Sie noch einmal, ob der Stromkreis korrekt ist und es keine Kurzschlüsse zwischen den Verbindungen gibt.
Wenn alles funktioniert, legen Sie den Stromkreis in die Box. Vielleicht möchten Sie einen Tupfer Kleber verwenden, um den Stromkreis an Ort und Stelle zu halten (obwohl die Drähte meinen in Ordnung hielten). Schrauben Sie auch den Deckel auf.
Es ist sehr einfach, das Arduino als Tastatur erscheinen zu lassen. Wenn Sie einen Nano oder UNO verwenden, werden Sie Ihr Arduino mit neu programmieren Geräte-Firmware-Update (DFU). Dies wird normalerweise verwendet, um neue Firmware auf das Arduino zu flashen. Sie werden es verwenden, um das Arduino mit einer neuen Firmware zu flashen, mit der es wie eine Tastatur funktioniert. Dies wird hier nicht behandelt, da es sich um eine recht komplexe Aufgabe handelt. Das Arduino Website hat ein gutes Tutorial dafür.
Das Arduino Pro Micro macht diesen Schritt sehr einfach. Die zum Emulieren einer USB-Tastatur erforderliche Logik ist bereits in den Prozessor integriert. Sie ist also so einfach wie das Schreiben von Code!
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. Computer können Ihren Code optimieren, um schnell auf sie zuzugreifen, und sie beschleunigen den Code-Schreibprozess.
Initialisieren Sie nun alle Pins als Eingänge:
void setup () {// Gib deinen Setup-Code hier ein, um ihn einmal auszuführen: Keyboard.begin (); // Tastatur einrichten für (int i = 2; i <11; ++ i) {// Pins initiieren pinMode (i, INPUT); } }
Dies teilt dem Arduino mit, dass alle Pins im Array Eingänge sind. Dazu wird eine Schleife verwendet, anstatt zu schreiben PinMode (2, INPUT) neunmal muss man es nur einmal schreiben. Dies ruft auch Keyboard.begin. 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) {// Schaltflächen prüfen und entprellen if (digitalRead (pin) == HIGH) {delay (10); if (digitalRead (pin) == HIGH) {return true; } } falsch zurückgeben; }
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-Debouncing - Eine einfache Verzögerung und anschließende Überprüfung des Schalters stellt sicher, dass die Taste wirklich gedrückt wurde.
Jetzt wird eine weitere for-Schleife im Inneren aufgerufen void loop ():
void loop () {// Gib deinen Hauptcode hier ein, um ihn wiederholt auszuführen: for (int i = 2; i <11; ++ i) {// Schaltflächen prüfen if (readButton (i)) {doAction (i); } } }
Dies geht wiederum über jedes Element im Array und prüft, ob es gedrückt wurde. Es tut dies, indem es das genannt wird readButton Methode, die Sie zuvor erstellt haben. Wenn eine Taste gedrückt wurde, wird diese PIN-Nummer an eine andere Methode übergeben doAction:
void doAction (int pin) {// Aufgabenwechsel durchführen (pin) {Fall 2: Keyboard.println ("drive.google.com"); brechen; Fall 3: Keyboard.println ("makeuseof.com"); brechen; Fall 4: // CMD + T (neuer Tab, Chrome) Keyboard.press (KEY_LEFT_GUI); Keyboard.press ('t'); Verzögerung (100); Keyboard.releaseAll (); brechen; Fall 5: // Ihre Aufgabe hier brechen; Fall 6: // Ihre Aufgabe hier brechen; Fall 7: // Ihre Aufgabe hier brechen; Fall 8: // Ihre Aufgabe hier brechen; Fall 9: // Ihre Aufgabe hier brechen; } }
Dies überprüft die PIN-Nummer mit a Schalter Erklärung. Switch-Anweisungen (manchmal aufgerufen) Schaltergehäuse) ähneln einem wenn Sie sind jedoch nützlich, um zu überprüfen, ob eine Sache (in diesem Fall die PIN-Nummer) einem von mehreren unterschiedlichen 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 hätten Sie jede Taste physisch eingegeben. Keyboard.press drückt und hält eine Taste. Vergessen Sie nicht, sie mit freizugeben Keyboard.releaseAll nach kurzer Verzögerung!
Hier ist der vollständige Code:
int keys [] = {2, 3, 4, 5, 6, 7, 8, 9, 10}; void setup () {// Gib deinen Setup-Code hier ein, um ihn einmal auszuführen: Keyboard.begin (); // Tastatur einrichten für (int i = 2; i <11; ++ i) {// Pins initiieren pinMode (i, INPUT); } } void loop () {// Gib deinen Hauptcode hier ein, um ihn wiederholt auszuführen: for (int i = 2; i <11; ++ i) {// Schaltflächen prüfen if (readButton (i)) {doAction (i); } } } boolean readButton (int pin) {// Schaltflächen prüfen und entprellen if (digitalRead (pin) == HIGH) {delay (10); if (digitalRead (pin) == HIGH) {return true; } } falsch zurückgeben; } void doAction (int pin) {// Aufgaben ausführen switch (pin) {case 2: Keyboard.println ("drive.google.com"); brechen; Fall 3: Keyboard.println ("makeuseof.com"); brechen; Fall 4: // CMD + T (neuer Tab, Chrome) Keyboard.press (KEY_LEFT_GUI); Keyboard.press ('t'); Verzögerung (100); Keyboard.releaseAll (); brechen; Fall 5: // Ihre Aufgabe hier brechen; Fall 6: // Ihre Aufgabe hier brechen; Fall 7: // Ihre Aufgabe hier brechen; Fall 8: // Ihre Aufgabe hier brechen; Fall 9: // Ihre Aufgabe hier brechen; } }
Zusätzlich zu allen Ziffern- und Buchstabentasten kann der Arduino die meisten der angerufenen Spezialtasten drücken Tastaturmodifikatoren. Diese sind besonders nützlich zum Drücken von Tastaturkürzeln. 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, z Alt + F4 (Programm in Windows schließen) oder Cmd + Q. (Beenden Sie das Programm macOS). Alternativ lesen Sie auch unsere ultimative Tastenkombination Windows-Tastaturkürzel 101: Das ultimative HandbuchTastaturkürzel können Ihnen Stunden Zeit sparen. Beherrschen Sie die universellen Windows-Tastaturkürzel, Tastaturtricks für bestimmte Programme und einige andere Tipps, um Ihre Arbeit zu beschleunigen. Weiterlesen , So erstellen Sie Windows-Verknüpfungen So erstellen Sie auf einfache Weise Windows Desktop-VerknüpfungenIntelligente Desktop-Verknüpfungen ersparen Ihnen das sinnlose Durchsuchen von Menüs und Ordnern. Wir zeigen Ihnen schnelle und einfache Möglichkeiten, sie zu erstellen. Weiterlesen , und jede Chromebook-Verknüpfung Jede Chromebook-Tastaturkürzel, die Sie jemals brauchen werdenBeherrschen Sie Chrome OS mit dieser Liste aller wichtigen Chromebook-Tastaturkürzel, die Sie jemals benötigen werden. Weiterlesen um loszulegen und eigene Verknüpfungen zu erstellen.
Haben Sie eine eigene Verknüpfungsbox erstellt? Lass es mich in den Kommentaren wissen, ich würde gerne ein paar Bilder sehen!
Joe hat einen Abschluss in Informatik von der University of Lincoln, UK. Er ist ein professioneller Softwareentwickler, und wenn er keine Drohnen fliegt oder Musik schreibt, macht er oft Fotos oder produziert Videos.