Inhoudsopgave:

DIY Bluetooth-macrotoetsenbord - Ajarnpa
DIY Bluetooth-macrotoetsenbord - Ajarnpa

Video: DIY Bluetooth-macrotoetsenbord - Ajarnpa

Video: DIY Bluetooth-macrotoetsenbord - Ajarnpa
Video: Veeeery useful keyboard #macropad #zmk #nrfmicro #diy 2024, November
Anonim
DIY Bluetooth-macrotoetsenbord
DIY Bluetooth-macrotoetsenbord

In deze Instructable gaan we kijken naar het gebruik van de ingebouwde Bluetooth van de ESP32 om een Bluetooth-toetsenbord te emuleren.

Bluetooth HID (Human Interface Device) is het protocol dat wordt gebruikt door normaal Bluetooth-toetsenbord en -muizen en het is mogelijk om dit te emuleren met alleen een ESP32, wat geweldig is!

Met sommige ESP32-ontwikkelingsborden vanaf minder dan $ 5 * geleverd, is dit een echt goedkope en eenvoudige manier om draadloze aangepaste toetsenborden te maken, zoals een macro-toetsenbord. Macro-toetsenborden kunnen worden gebruikt voor het besturen van verschillende toepassingen, zoals video-editors of Photoshop, persoonlijk gebruik ik de mijne voor het besturen van scènes in OBS wanneer ik video's maak of stream.

We zullen eerst kijken naar het gebruik van de ESP32 HID-toetsenbordbibliotheek en dan zal ik je laten zien hoe ik dit heb gebruikt om een op batterijen werkend Bluetooth-macrotoetsenbord te bouwen.

Benodigdheden

  • TinyPICO ESP32 Dev board (Elke ESP32 kan werken)
  • 4*4 Matrix-toetsenbord*

Je hebt ook een lipo-batterij nodig, ik heb gewoon een willekeurige gebruikt die ik had liggen, dus ik kan er niet naar linken!

Als uw pc geen Bluetooth heeft, kunt u een dongle zoals deze gebruiken:

Amazon.co.uk*:

Amazon.com*:

Amazon.de*:

* = Affiliate

Stap 1: Bekijk de video

Image
Image

Ik heb een video gemaakt die hetzelfde behandelt als deze Instructable, dus als je geïnteresseerd bent, bekijk het dan alsjeblieft! Ik maak ook regelmatig video's rond ESP8266- en ESP32-projecten, dus misschien zijn er andere video's op mijn kanaal die je misschien interessant vindt!

Stap 2: [Optioneel] Aan de slag met een ESP32

ESP32's zijn microcontrollers die compatibel zijn met de Arduino IDE en worden geleverd met WiFi en Bluetooth. Ze zijn ook vrij goedkoop, dus het zijn zeer nuttige chips voor je projecten.

U moet de ESP32-kaartdefinitie toevoegen aan uw Arduino IDE, hiervoor kunt u de stappen volgen die worden vermeld op de ESP32 Arduino-projecten Github-pagina

Stap 3: De ESP32 Ble-toetsenbordbibliotheek installeren

De ESP32 Ble-toetsenbordbibliotheek installeren
De ESP32 Ble-toetsenbordbibliotheek installeren
De ESP32 Ble-toetsenbordbibliotheek installeren
De ESP32 Ble-toetsenbordbibliotheek installeren

Het is mogelijk om Bluethooth HID te gebruiken op de ESP32 zonder externe bibliotheek, maar Github-gebruiker T-Vk heeft een bibliotheek geschreven met de naam ESP32-BLE-Keyboard, waardoor het meer lijkt op de standaard Arduino-toetsenbordbibliotheek, waardoor het veel gemakkelijker te gebruiken is.

Deze bibliotheek is niet beschikbaar in de bibliotheekbeheerder, dus u moet deze downloaden van Github.

  • Ga naar de releases-pagina van projecten en download de nieuwste ESP32-BLE-Keyboard.zip
  • Eenmaal gedownload, kun je het toevoegen aan je Arduino IDE, maar ga naar Sketch -> Bibliotheek opnemen en vervolgens Zip toevoegen aan bibliotheek en selecteer de ESP32-BLE-Keyboard.zip uit de vorige stap.

Stap 4: Kijkend naar het voorbeeld

Kijkend naar het voorbeeld
Kijkend naar het voorbeeld
Kijkend naar het voorbeeld
Kijkend naar het voorbeeld
Kijkend naar het voorbeeld
Kijkend naar het voorbeeld

Zodra dat is toegevoegd, kunnen we het bijbehorende voorbeeld openen. Het is een aardig voorbeeld omdat het een paar verschillende dingen laat zien die je met de bibliotheek kunt bereiken, maar ik zal ook wat meer details toevoegen waar ik denk dat het nuttig zou zijn.

U kunt het voorbeeld openen door naar Bestand -> Voorbeelden -> ESP32 BLE-toetsenbord -> SendKeyStrokes. te gaan

Een Bluetooth-verbinding instellen

In de installatie begint het de Bluetooth-verbinding, in dit stadium zou het beschikbaar moeten zijn om mee te koppelen op uw apparaat.

bleKeyboard.begin();

Binnen de lus controleert het ook of het is verbonden met een apparaat

bleKeyboard.isConnected()

Typen

Het eerste dat het voorbeeld laat zien, is hoe u tekst kunt typen zodra deze is verbonden, het zal eerst "Hallo wereld" typen met

bleKeyboard.print("Hallo wereld");

Enkele druk op de knop

Het laat vervolgens zien hoe u de return-toets kunt "schrijven", dit is in feite het emuleren van een enkele toetsdruk op deze knop.

bleKeyboard.write(KEY_RETURN);

U kunt het BleKeyboard.h-bestand van de bibliotheek openen om alle sleutels te zien die op deze manier zijn gedefinieerd. U kunt ook ascii-tekens verzenden door ze tussen enkele komma's te plaatsen.

bleKeyboard.write('A');

Mediatoetsen

Het laat ook zien hoe je mediasleutels kunt verzenden, dit is vergelijkbaar met hoe je het volume kunt regelen of nummers kunt overslaan met je Bluetooth-hoofdtelefoon. Het voorbeeld toont de play/pause-toets, maar nogmaals, u kunt BleKeyboard.h openen om de andere beschikbare opties te zien.

bleKeyboard.write(KEY_MEDIA_PLAY_PAUSE);

Toetsen indrukken en loslaten

Het laatste dat het voorbeeld ons laat zien, is hoe u toetsen kunt ingedrukt houden, dit is handig voor het maken van macro-toetsenborden. Het hier getoonde voorbeeld is voor Ctrl + Alt + Delete

bleKeyboard.press(KEY_LEFT_CTRL);

bleKeyboard.press(KEY_LEFT_ALT);

bleKeyboard.press(KEY_DELETE);

Het roept dan releaseAll aan, wat, zoals je waarschijnlijk kunt raden aan de naam, alle ingedrukte toetsen vrijgeeft.

bleKeyboard.releaseAll();

U kunt desgewenst ook specifieke toetsen vrijgeven door de opdracht vrijgeven te gebruiken met de toets die u wilt vrijgeven

bleKeyboard.release(KEY_DELETE);

Stap 5: Andere tips voor de bibliotheek

Andere tips voor de bibliotheek
Andere tips voor de bibliotheek
Andere tips voor de bibliotheek
Andere tips voor de bibliotheek
Andere tips voor de bibliotheek
Andere tips voor de bibliotheek

We hebben de hoofdfunctionaliteit van de bibliotheek in de vorige stap behandeld, maar hier zijn enkele extra dingen waarvan ik denk dat ze nuttig kunnen zijn om te weten

Gebruik een externe trigger

Het is altijd het beste om een HID-apparaat als dit te bedienen met een externe trigger, zoals een druk op de knop. Als je een timer gebruikt en er gaat iets mis, kan het lastig zijn om de verbinding te verbreken. Stel je voor dat je moet proberen je Bluetooth uit te schakelen als je het per ongeluk hebt geprogrammeerd om elke 100 mS op Ctrl+Alt+Del te drukken!

De apparaatnaam wijzigen

Standaard wordt de apparaatnaam weergegeven als "ESP32 BLE Keyboard", dit kan worden gewijzigd wanneer u een instantie van de bibliotheek maakt. U kunt de apparaatnaam, fabrikant en het initiële batterijniveau instellen.

BleKeyboard bleKeyboard ("Bluetooth-apparaatnaam", "Bluetooth-apparaatfabrikant", 100);

Het batterijniveau instellen (werkt bij mij tenminste niet)

De bibliotheek beweert dat je ook het batterijniveau kunt instellen, maar het werkte niet voor mij op mijn Windows-pc (het bleef bij wat de oorspronkelijke waarde ook was) en mijn Android-telefoon liet het niveau niet zien. Hier is de opdracht voor het geval het voor u werkt

bleKeyboard.setBatteryLevel(50)

Apparaatcompatibiliteit

Ik heb het voorbeeld met succes uitgevoerd op mijn Windows 10-pc, Android-telefoon en mijn Mac (hoewel het op de een of andere manier nog steeds Sierra draait!)

Het kan ook slechts op één apparaat tegelijk worden aangesloten.

Problemen met koppelen oplossen

Als u problemen ondervindt bij het koppelen, kunt u proberen de ESP32 opnieuw op te starten terwijl uw apparaat aan het zoeken is. Ik moest ook ooit mijn bluetooth op mijn pc in- en uitschakelen om hem te koppelen.

Stap 6: Het macrotoetsenbord

Het macrotoetsenbord
Het macrotoetsenbord
Het macrotoetsenbord
Het macrotoetsenbord
Het macrotoetsenbord
Het macrotoetsenbord
Het macrotoetsenbord
Het macrotoetsenbord

Nu we de basis uit de weg hebben, gaan we er iets praktisch van maken!

In een eerdere gids liet ik zien hoe je het eenvoudigste macro-toetsenbord kunt maken van een Arduino pro Micro en een goedkoop toetsenbord. Voor elke knop op het toetsenbord stuurt het een andere combinatie van knop die kan worden gebruikt om applicaties te bedienen, persoonlijk gebruik ik het voor OBS, de software die ik gebruik voor het opnemen van video's en voor wanneer ik stream. Dit lijkt een goed project om over de ESP32 te porten, zodat we een draadloze versie kunnen maken.

Voor deze build ga ik het TinyPICO ESP32-bord van Unexpected Maker gebruiken. De belangrijkste reden om ervoor te kiezen is een zeer energiezuinig bord en heeft het circuit voor het weglopen en opladen van een Lipo-batterij ingebouwd, dus ik hoef alleen maar een batterij aan te sluiten.

Ik zou liegen als het feit dat het dezelfde rijafstand heeft als de Pro Micro en ik gebruik kon maken van het reeds gemaakte breakout-bord dat ik eerder maakte niet ook aantrekkelijk zou zijn!

Het toetsenbord heeft 8 GPIO-pinnen nodig om te werken, en de TinyPICO heeft 8 GPIO-pinnen op een rij, dus we zullen ze gebruiken. U kunt het toetsenbord eenvoudig aansluiten op de TinyPICO zoals weergegeven in de bovenstaande afbeelding.

Stap 7: Code voor het macrotoetsenbord

Code voor het macrotoetsenbord
Code voor het macrotoetsenbord
Code voor het macrotoetsenbord
Code voor het macrotoetsenbord

De code voor de Macro Keypad-schets is te vinden op mijn Github.

Naast de BleKeyboard-bibliotheek die in een vorige stap is geïnstalleerd, moet u ook de bibliotheek voor het toetsenbord installeren. U kunt dit doen door de bibliotheekbeheerder te openen door naar Sketch -> Inclusief bibliotheek -> Bibliotheken beheren te gaan

Zoek in de bibliotheekmanager naar "toetsenbord" en installeer die van Mark Stanley en Alexander Brevig

Een configuratie die u mogelijk moet maken als u een andere ESP32 gebruikt dan de TinyPICO, zijn de toetsenbordpinnen, deze worden ingesteld in de rijPins en colPins-array. Als je naar de voorkant van het toetsenbord kijkt en vanaf links begint, zijn de eerste 4 pinnen de rij-pinnen en de tweede 4 de col-pinnen.

Zodra dat is gebeurd, uploadt u de code naar het bord en moet u in dit stadium testen of het werkt.

Stap 8: Laten we het draadloos maken

Laten we het draadloos maken!
Laten we het draadloos maken!
Laten we het draadloos maken!
Laten we het draadloos maken!
Laten we het draadloos maken!
Laten we het draadloos maken!
Laten we het draadloos maken!
Laten we het draadloos maken!

Zoals eerder vermeld, heeft de TinyPICO een ingebouwde schakeling voor het verwerken van een Lipo, dus we hoeven hem alleen maar aan te sluiten. Het wordt geleverd met JST-connectoren die aan de onderkant kunnen worden gesoldeerd, of je kunt de Bat- en GND-pinnen gebruiken als je het via de pinnen wilt doen.

Als u de JST-connectoren gebruikt, controleer dan nogmaals of de polariteit van uw batterij overeenkomt met de TinyPICO. Er is geen standaard voor hoe deze moeten worden aangesloten, dus de kans is groot dat uw batterij niet overeenkomt.

Controleer de spanning van uw lipo-batterij voordat u deze gebruikt, een gezond beslag moet 3V of hoger zijn, de batterij die ik vond met de juiste JST-connector gaf 0V aan!

Ik heb uiteindelijk een 18650-cel in een houder gebruikt en deze aan de JST-connector van de lege batterij gesoldeerd.

De TinyPICO vermindert het stroomverbruik wanneer de batterij leeg raakt door geen van zijn LED's van stroom te voorzien, dus zelfs als hij er niet uitziet, is hij dat hopelijk wel! Een toekomstige verbetering van het project zou kunnen zijn om de ingebouwde dotsstar-LED bij het opstarten te pulseren om je te laten weten dat het daadwerkelijk is ingeschakeld en misschien opnieuw wanneer het verbinding maakt. Voor nu kun je in het Bluetooth-menu van je systeem controleren of het is ingeschakeld en goed is verbonden.

Stap 9: het testen

Test het uit!
Test het uit!

Laten we het testen, als ik het sneltoetsengedeelte van OBS open, kan ik op verschillende acties klikken om een knopcombinatie op te nemen die het zal besturen, hiervoor kunnen we gewoon op de knop op ons toetsenbord klikken en het wordt bijgewerkt.

Nadat u op toepassen hebt geklikt, zou u uw toetsenbord niet meer moeten kunnen gebruiken om uw scène in OBS te besturen.

Stap 10: Bedankt voor het lezen

Hopelijk vond je dit Instructable nuttig. Ik zou graag willen weten wat je zou maken met dit type opstelling. Laat het me weten in de reacties hieronder, of sluit je aan bij mij en een aantal andere makers op mijn Discord-server, waar we dit onderwerp of een andere maker-gerelateerde die je hebt kunnen bespreken, mensen zijn daar erg behulpzaam, dus het is een geweldige plek om te hangen uit

Ik wil ook mijn Github-sponsors enorm bedanken die helpen bij het ondersteunen van wat ik doe, ik waardeer het echt. Als je het niet weet, matcht Github sponsoring voor het eerste jaar, dus als je een sponsoring doet, zullen ze deze de komende maanden 100% matchen.

Bedankt voor het lezen!

Aanbevolen: