Inhaltsverzeichnis:

DIY Bluetooth Makro-Tastatur - Gunook
DIY Bluetooth Makro-Tastatur - Gunook

Video: DIY Bluetooth Makro-Tastatur - Gunook

Video: DIY Bluetooth Makro-Tastatur - Gunook
Video: Making Custom Macro Keypad 2024, Juli
Anonim
DIY Bluetooth Makro-Tastatur
DIY Bluetooth Makro-Tastatur

In diesem Instructable werden wir einen Blick auf die Verwendung des eingebauten Bluetooth des ESP32 werfen, um eine Bluetooth-Tastatur zu emulieren.

Bluetooth HID (Human Interface Device) ist das Protokoll, das von normalen Bluetooth-Tastatur und -Mäusen verwendet wird, und es ist möglich, dies mit nur einem ESP32 zu emulieren, was großartig ist!

Da einige ESP32-Entwicklungsboards schon ab weniger als 5 US-Dollar* geliefert werden, ist dies eine wirklich kostengünstige und einfache Möglichkeit, drahtlose benutzerdefinierte Tastaturen wie Makro-Tastaturen zu erstellen. Makro-Tastaturen können zur Steuerung verschiedener Anwendungen wie Video-Editoren oder Photoshop verwendet werden. Ich persönlich verwende meine zum Steuern von Szenen in OBS, wenn ich Videos mache oder streame.

Wir werden uns zuerst ansehen, wie man die ESP32 HID-Tastaturbibliothek verwendet, und dann zeige ich Ihnen, wie ich damit ein batteriebetriebenes Bluetooth-Makro-Keypad erstellt habe.

Lieferungen

  • TinyPICO ESP32 Dev Board (Jeder ESP32 kann funktionieren)
  • 4*4 Matrixtastatur*

Sie benötigen auch eine Lipo-Batterie, ich habe nur eine zufällige verwendet, die ich herumgelegt hatte, damit ich sie nicht verlinken kann!

Wenn Ihr PC kein Bluetooth hat, können Sie einen Dongle wie diesen verwenden:

Amazon.co.uk*:

Amazon.com*:

Amazon.de*:

* = Partner

Schritt 1: Sehen Sie sich das Video an

Image
Image

Ich habe ein Video gemacht, das dasselbe wie dieses Instructable abdeckt, also wenn Sie interessiert sind, schauen Sie es sich bitte an! Ich mache auch regelmäßig Videos zu ESP8266- und ESP32-Projekten, also gibt es vielleicht noch andere Videos auf meinem Kanal, die Sie interessant finden könnten!

Schritt 2: [Optional] Erste Schritte mit einem ESP32

ESP32s sind Mikrocontroller, die mit der Arduino IDE kompatibel sind und mit WiFi und Bluetooth geliefert werden. Sie sind auch recht günstig und daher sehr nützliche Chips für Ihre Projekte.

Sie müssen die ESP32-Board-Definition zu Ihrer Arduino-IDE hinzufügen. Dazu können Sie die Schritte befolgen, die auf der Github-Seite der ESP32 Arduino-Projekte aufgeführt sind

Schritt 3: Installieren der ESP32 Ble-Tastaturbibliothek

Installieren der ESP32 Ble-Tastaturbibliothek
Installieren der ESP32 Ble-Tastaturbibliothek
Installieren der ESP32 Ble-Tastaturbibliothek
Installieren der ESP32 Ble-Tastaturbibliothek

Es ist möglich, Bluethooth HID auf dem ESP32 ohne externe Bibliothek zu verwenden, aber der Github-Benutzer T-Vk hat eine Bibliothek namens ESP32-BLE-Keyboard geschrieben, die es eher wie die Standard-Arduino-Tastaturbibliothek macht, die es viel einfacher zu verwenden macht.

Diese Bibliothek ist im Bibliotheksmanager nicht verfügbar, daher müssen Sie sie von Github herunterladen.

  • Gehen Sie zur Projektversionsseite und laden Sie die neueste ESP32-BLE-Keyboard.zip herunter
  • Nach dem Herunterladen können Sie es zu Ihrer Arduino IDE hinzufügen, aber gehen Sie zu Sketch -> Include Library und dann Add Zip to library und wählen Sie die ESP32-BLE-Keyboard.zip aus dem vorherigen Schritt aus.

Schritt 4: Betrachten des Beispiels

Blick auf das Beispiel
Blick auf das Beispiel
Blick auf das Beispiel
Blick auf das Beispiel
Blick auf das Beispiel
Blick auf das Beispiel

Sobald dies hinzugefügt wurde, können wir das mitgelieferte Beispiel öffnen. Es ist ein ziemlich schönes Beispiel, da es ein paar verschiedene Dinge zeigt, die Sie mit der Bibliothek erreichen können, aber ich werde auch etwas mehr Details hinzufügen, wo ich es für nützlich halte.

Sie können auf das Beispiel zugreifen, indem Sie auf Datei -> Beispiele -> ESP32 BLE-Tastatur -> SendKeyStrokes gehen

Einrichten einer Bluetooth-Verbindung

Im Setup beginnt die Bluetooth-Verbindung, zu diesem Zeitpunkt sollte sie auf Ihrem Gerät zum Koppeln verfügbar sein.

bleKeyboard.begin();

Innerhalb der Schleife prüft es auch, ob es mit einem Gerät verbunden ist

bleKeyboard.isConnected()

Tippen

Das erste, was das Beispiel zeigt, ist, wie Sie Text eingeben können, sobald er verbunden ist

bleKeyboard.print("Hallo Welt");

Einzelner Tastendruck

Es zeigt dann, wie Sie die Return-Taste „schreiben“können. Dies emuliert im Grunde einen einzelnen Tastendruck dieser Taste.

bleKeyboard.write (KEY_RETURN);

Sie können die Datei BleKeyboard.h der Bibliothek öffnen, um alle so definierten Tasten anzuzeigen. Sie können auch ASCII-Zeichen senden, indem Sie sie in einzelne Kommas setzen.

bleKeyboard.write('A');

Medienschlüssel

Es zeigt auch, wie Sie Medienschlüssel senden können, ähnlich wie Sie die Lautstärke regeln oder Titel mit Ihren Bluetooth-Kopfhörern überspringen können. Das Beispiel zeigt die Play/Pause-Taste, aber auch hier können Sie BleKeyboard.h öffnen, um die anderen verfügbaren Optionen anzuzeigen.

bleKeyboard.write(KEY_MEDIA_PLAY_PAUSE);

Tasten drücken und loslassen

Das letzte, was uns das Beispiel zeigt, ist, wie Sie Tasten drücken und halten können. Dies ist nützlich, um Makrotastaturen zu erstellen. Das hier gezeigte Beispiel ist für Strg + Alt + Entf

bleKeyboard.press(KEY_LEFT_CTRL);

bleKeyboard.press(KEY_LEFT_ALT);

bleKeyboard.press(KEY_DELETE);

Es ruft dann releaseAll auf, was, wie Sie wahrscheinlich am Namen erraten können, alle gedrückten Tasten freigibt.

bleKeyboard.releaseAll();

Sie können auch bestimmte Tasten freigeben, wenn Sie möchten, indem Sie den Freigabebefehl mit der Taste verwenden, die Sie freigeben möchten

bleKeyboard.release(KEY_DELETE);

Schritt 5: Weitere Tipps für die Bibliothek

Weitere Tipps für die Bibliothek
Weitere Tipps für die Bibliothek
Weitere Tipps für die Bibliothek
Weitere Tipps für die Bibliothek
Weitere Tipps für die Bibliothek
Weitere Tipps für die Bibliothek

Wir haben die Hauptfunktionen der Bibliothek im vorherigen Schritt behandelt, aber hier sind einige zusätzliche Dinge, die meiner Meinung nach nützlich sein könnten

Verwenden Sie einen externen Trigger

Es ist immer am besten, ein solches HID-Gerät mit einem externen Trigger wie einem Tastendruck zu steuern. Wenn Sie einen Timer verwenden und etwas schief geht, kann es schwierig sein, die Verbindung zu trennen. Stellen Sie sich vor, Sie müssten versuchen, Ihr Bluetooth auszuschalten, wenn Sie es versehentlich so programmiert haben, dass alle 100 ms Strg + Alt + Entf gedrückt wird!

Ändern des Gerätenamens

Standardmäßig wird der Gerätename als „ESP32 BLE Keyboard“angezeigt. Dies kann geändert werden, wenn Sie eine Instanz der Bibliothek erstellen. Sie können den Gerätenamen, den Hersteller und den anfänglichen Batteriestand einstellen.

BleKeyboard bleKeyboard("Bluetooth-Gerätename", "Bluetooth-Gerätehersteller", 100);

Akkustand einstellen (funktioniert zumindest bei mir nicht)

Die Bibliothek behauptet, dass Sie auch den Akkustand einstellen können, aber es hat bei mir auf meinem Windows-PC nicht funktioniert (er blieb bei dem, was der Anfangswert war) und mein Android-Telefon zeigte nicht den Ladestand an. Hier ist der Befehl dafür, falls es für Sie funktioniert

bleKeyboard.setBatteryLevel(50)

Gerätekompatibilität

Ich habe das Beispiel erfolgreich auf meinem Windows 10-PC, Android-Telefon und meinem Mac ausgeführt (obwohl Sierra immer noch irgendwie ausgeführt wird!)

Es kann auch nur mit einem Gerät gleichzeitig verbunden werden.

Fehlerbehebung beim Koppeln

Wenn beim Pairing Probleme auftreten, versuchen Sie, den ESP32 neu zu starten, während Ihr Gerät sucht. Ich musste auch einmal mein Bluetooth an meinem PC ein- und ausschalten, um es zu koppeln.

Schritt 6: Die Makrotastatur

Die Makro-Tastatur
Die Makro-Tastatur
Die Makro-Tastatur
Die Makro-Tastatur
Die Makro-Tastatur
Die Makro-Tastatur
Die Makro-Tastatur
Die Makro-Tastatur

Jetzt, da wir die Grundlagen aus dem Weg geräumt haben, machen wir etwas Praktisches daraus!

In einer früheren Anleitung habe ich gezeigt, wie man aus einem Arduino Pro Micro und einer billigen Tastatur die einfachste Makro-Tastatur macht. Für jede Taste auf der Tastatur sendet es eine andere Tastenkombination, die zur Steuerung von Anwendungen verwendet werden könnte. Ich persönlich benutze es für OBS, die Software, die ich zum Aufnehmen von Videos und zum Streamen verwende. Dies scheint ein gutes Projekt zu sein, um über den ESP32 zu portieren, damit wir eine drahtlose Version erstellen können.

Für diesen Build werde ich das TinyPICO ESP32-Board von Unexpected Maker verwenden. Der Hauptgrund für die Wahl ist eine sehr energieeffiziente Platine und hat die Schaltung zum Betrieb und zum Laden eines Lipo-Akkus eingebaut, so dass ich nur einen Akku anschließen muss.

Ich würde lügen, wenn die Tatsache, dass es den gleichen Reihenabstand wie das Pro Micro hat und ich das bereits hergestellte Breakout-Board verwenden könnte, das ich zuvor gemacht habe, nicht auch ansprechend wäre!

Die Tastatur benötigt 8 GPIO-Pins, um zu funktionieren, und der TinyPICO hat 8 GPIO-Pins in einer Reihe, also werden wir sie verwenden. Sie können die Tastatur einfach wie in der obigen Abbildung gezeigt an den TinyPICO anschließen.

Schritt 7: Code für die Makrotastatur

Code für die Makrotastatur
Code für die Makrotastatur
Code für die Makrotastatur
Code für die Makrotastatur

Den Code für die Macro Keypad-Skizze finden Sie auf meinem Github.

Neben der BleKeyboard-Bibliothek, die in einem vorherigen Schritt installiert wurde, müssen Sie auch die Bibliothek für das Tastenfeld installieren. Sie können dies tun, indem Sie den Bibliotheksmanager öffnen, indem Sie auf Skizze -> Bibliothek einschließen -> Bibliotheken verwalten gehen

Suchen Sie im Bibliotheksmanager nach "Keypad" und installieren Sie das von Mark Stanley und Alexander Brevig

Eine Konfiguration, die Sie möglicherweise vornehmen müssen, wenn Sie einen anderen ESP32 als den TinyPICO verwenden, sind die Tastaturpins, sie werden im rowPins- und colPins-Array festgelegt. Betrachtet man die Vorderseite der Tastatur von links, so sind die ersten 4 Pins die Reihenpins und die zweiten 4 die Spaltenpins.

Sobald dies erledigt ist, laden Sie den Code auf das Board hoch und Sie sollten zu diesem Zeitpunkt testen, ob er funktioniert.

Schritt 8: Machen wir es drahtlos

Machen wir es drahtlos!
Machen wir es drahtlos!
Machen wir es drahtlos!
Machen wir es drahtlos!
Machen wir es drahtlos!
Machen wir es drahtlos!
Machen wir es drahtlos!
Machen wir es drahtlos!

Wie bereits erwähnt, verfügt der TinyPICO über eine integrierte Schaltung für den Umgang mit einem Lipo, sodass wir ihn nur anschließen müssen. Es kommt mit JST-Anschlüssen, die an der Unterseite angelötet werden können, oder Sie können die Bat- und GND-Pins verwenden, wenn Sie dies über die Pins tun möchten.

Wenn Sie die JST-Anschlüsse verwenden, überprüfen Sie bitte, ob die Polarität Ihrer Batterie mit der des TinyPICO übereinstimmt.

Überprüfen Sie die Spannung Ihres Lipo-Akkus, bevor Sie ihn verwenden, ein gesunder Akku sollte 3 V oder höher sein, der Akku, den ich mit dem richtigen JST-Anschluss gefunden habe, zeigte 0 V an!

Am Ende habe ich eine 18650-Zelle in einem Halter verwendet und an den JST-Anschluss der leeren Batterie gelötet.

Der TinyPICO reduziert seinen Stromverbrauch im Batteriebetrieb, indem er keine seiner LEDs mit Strom versorgt. Selbst wenn er nicht aufleuchtet, ist er es hoffentlich! Eine zukünftige Verbesserung des Projekts könnte darin bestehen, die Onboard-Dotstar-LED beim Start zu pulsieren, nur um Sie wissen zu lassen, dass sie tatsächlich eingeschaltet ist und möglicherweise wieder, wenn sie eine Verbindung herstellt. Im Moment können Sie im Bluetooth-Menü Ihres Systems überprüfen, ob es eingeschaltet und in Ordnung ist.

Schritt 9: Testen Sie es

Testen Sie es aus!
Testen Sie es aus!

Lassen Sie es uns testen, wenn ich den Hotkey-Teil von OBS öffne, kann ich auf verschiedene Aktionen klicken, um eine Tastenkombination aufzuzeichnen, die es steuert. Dazu können wir einfach auf die Taste auf unserer Tastatur klicken und sie wird aktualisiert.

Nachdem Sie auf Anwenden geklickt haben, sollten Sie Ihre Szene in OBS nicht mehr mit Ihrem Tastenfeld steuern können.

Schritt 10: Danke fürs Lesen

Hoffentlich fanden Sie dieses Instructable nützlich. Ich würde gerne hören, was Sie mit dieser Art von Setup machen würden. Bitte lass es mich in den Kommentaren unten wissen oder schließe dich mir und ein paar anderen Machern auf meinem Discord-Server an, wo wir dieses Thema oder jedes andere herstellerbezogene Thema diskutieren können. Die Leute sind dort wirklich hilfreich, also ist es ein großartiger Ort zum Abhängen aus

Ein großes Dankeschön möchte ich auch meinen Github-Sponsoren aussprechen, die mir helfen, meine Arbeit zu unterstützen, ich weiß das wirklich zu schätzen. Wenn Sie es nicht wissen, passt Github die Patenschaften für das erste Jahr an. Wenn Sie also eine Patenschaft eingehen, werden sie in den nächsten Monaten zu 100% übereinstimmen.

Danke fürs Lesen!

Empfohlen: