Innehållsförteckning:

DIY Bluetooth -makrotangentbord: 10 steg (med bilder)
DIY Bluetooth -makrotangentbord: 10 steg (med bilder)

Video: DIY Bluetooth -makrotangentbord: 10 steg (med bilder)

Video: DIY Bluetooth -makrotangentbord: 10 steg (med bilder)
Video: 💦Blackview BV9200 ЧЕСТНЫЙ ОБЗОР ПРОТИВОУДАРНОГО 2024, Juli
Anonim
DIY Bluetooth makrotangentbord
DIY Bluetooth makrotangentbord

I den här instruktionsboken kommer vi att ta en titt på att använda den inbyggda Bluetooth i ESP32 för att emulera ett Bluetooth-tangentbord.

Bluetooth HID (Human Interface Device) är det protokoll som används av vanligt Bluetooth -tangentbord och möss och det är möjligt att efterlikna detta med bara en ESP32, vilket är bra!

Med några ESP32 -utvecklingsbrädor som börjar på mindre än $ 5* levereras, är detta ett riktigt billigt och enkelt sätt att skapa trådlösa anpassade tangentbord som en makroknappsats. Makroknappsatser kan användas för att styra olika applikationer som videoredigerare eller Photoshop, personligen använder jag min för att styra scener i OBS när jag gör videor eller strömmar.

Vi ska först titta på hur du använder ESP32 HID -tangentbordsbiblioteket och sedan kommer jag att visa dig hur jag använde detta för att bygga ett batteridrivet Bluetooth -makrotangentbord.

Tillbehör

  • TinyPICO ESP32 Dev -kort (valfri ESP32 kan fungera)
  • 4*4 Matris -knappsats*

Du kommer också att behöva ett lipobatteri, jag använde bara ett slumpmässigt batteri som jag hade lagt runt så jag kan inte länka till det!

Om din dator inte har Bluetooth kan du använda en dongel som den här:

Amazon.co.uk*:

Amazon.com*:

Amazon.de*:

* = Affiliate

Steg 1: Kolla in videon

Image
Image

Jag har gjort en video som täcker samma sak som denna Instructable, så om du är intresserad, kolla in den! Jag gör också videor kring ESP8266- och ESP32 -projekt regelbundet så kanske det finns andra videor på min kanal som du kan tycka är intressant!

Steg 2: [Valfritt] Komma igång med en ESP32

ESP32 är mikrokontroller som är kompatibla med Arduino IDE och har WiFi och Bluetooth. De är också ganska billiga så de är mycket användbara marker för dina projekt.

Du måste lägga till ESP32 -kortdefinitionen till din Arduino IDE, till detta kan du följa stegen som anges på ESP32 Arduino -projekt Github -sida

Steg 3: Installera ESP32 Ble Keyboard Library

Installera ESP32 Ble Keyboard Library
Installera ESP32 Ble Keyboard Library
Installera ESP32 Ble Keyboard Library
Installera ESP32 Ble Keyboard Library

Det är möjligt att använda Bluethooth HID på ESP32 utan externt bibliotek, men Github-användare T-Vk har skrivit ett bibliotek som heter ESP32-BLE-Keyboard som gör det mer som det vanliga Arduino-tangentbordsbiblioteket vilket gör det mycket lättare att använda.

Detta bibliotek är inte tillgängligt i bibliotekshanteraren så du måste ladda ner det från Github.

  • Gå till projektsläppssidan och ladda ner den senaste ESP32-BLE-Keyboard.zip
  • När du har laddat ner kan du lägga till den i din Arduino IDE men gå till Sketch-> Inkludera bibliotek och sedan Lägg till zip till bibliotek och välj ESP32-BLE-Keyboard.zip från föregående steg.

Steg 4: Titta på exemplet

Tittar på exemplet
Tittar på exemplet
Tittar på exemplet
Tittar på exemplet
Tittar på exemplet
Tittar på exemplet

När det har lagts till kan vi öppna exemplet som följer med det. Det är ett ganska trevligt exempel eftersom det visar några olika saker du kan uppnå med biblioteket men jag kommer också att lägga till lite mer detaljer där jag tror att det skulle vara användbart.

Du kommer åt exemplet genom att gå till Arkiv -> Exempel -> ESP32 BLE -tangentbord -> SendKeyStrokes

Konfigurera en Bluetooth -anslutning

I installationen startar den Bluetooth -anslutningen, i detta skede bör den vara tillgänglig att koppla ihop med på din enhet.

bleKeyboard.begin ();

Inuti slingan kontrollerar den också om den är ansluten till en enhet

bleKeyboard.isConnected ()

Skriver

Det första exemplet visar är hur du kan skriva ut text när den är ansluten kommer den först att skriva "Hej världen" med

bleKeyboard.print ("Hej världen");

En knapptryckning

Det visar sedan hur du kan "skriva" returknappen, det här är i princip att efterlikna ett enda knapptryck på den här knappen.

bleKeyboard.write (KEY_RETURN);

Du kan öppna BleKeyboard.h -filen i biblioteket för att se alla nycklar som definieras så här. Du kan också skicka ascii -tecken genom att lägga dem i enstaka kommatecken.

bleKeyboard.write ('A');

Medieknappar

Det visar också hur du kan skicka medieknappar, det här liknar hur du kan styra volymen eller hoppa över spår med dina Bluetooth -hörlurar. Exemplet visar uppspelning/paus -tangenten, men igen kan du öppna BleKeyboard.h för att se de andra tillgängliga alternativen.

bleKeyboard.write (KEY_MEDIA_PLAY_PAUSE);

Tryck och släpp knapparna

Det sista som exemplet visar oss är hur du kan trycka och hålla ned tangenterna, det här är användbart för att skapa makrotangentbord. Exemplet som visas här är för Ctrl + Alt + Delete

bleKeyboard.press (KEY_LEFT_CTRL);

bleKeyboard.press (KEY_LEFT_ALT);

bleKeyboard.press (KEY_DELETE);

Det kallar sedan releaseAll, som du säkert kan gissa med namnet släpper alla tryckta knappar.

bleKeyboard.releaseAll ();

Du kan också släppa specifika nycklar om du vill antingen genom att använda kommandot release med den nyckel du vill släppa

bleKeyboard.release (KEY_DELETE);

Steg 5: Andra tips för biblioteket

Andra tips för biblioteket
Andra tips för biblioteket
Andra tips för biblioteket
Andra tips för biblioteket
Andra tips för biblioteket
Andra tips för biblioteket

Vi täckte bibliotekets huvudfunktionalitet i föregående steg, men här är några extra saker som jag tror kan vara användbara att veta

Använd en extern utlösare

Det är alltid bäst att styra en HID -enhet så här med en extern utlösare, till exempel en knapptryckning. Om du använder en timer och något går fel kan det bli besvärligt att koppla från. Tänk dig att du måste försöka stänga av din Bluetooth om du av misstag programmerade den till att trycka på Ctrl+Alt+Del var 100: e ms!

Ändra enhetsnamn

Som standard visas enhetsnamnet som "ESP32 BLE Keyboard", detta kan ändras när du skapar en instans av biblioteket. Du kan ställa in enhetens namn, tillverkare och den ursprungliga batterinivån.

BleKeyboard bleKeyboard ("Bluetooth -enhetsnamn", "Bluetooth -enhetstillverkare", 100);

Ställa in batterinivån (fungerar inte för mig åtminstone)

Biblioteket hävdar att du också kan ställa in batterinivån men det fungerade inte för mig på min Windows -dator (det stannade med vad det ursprungliga värdet var) och min Android -telefon visade inte nivån på det hela. Här är kommandot för det om det fungerar för dig

bleKeyboard.setBatteryLevel (50)

Enhetskompatibilitet

Jag sprang framgångsrikt och körde exemplet på min Windows 10 -dator, Android -telefon och min Mac (även om det fortfarande kör Sierra på något sätt!)

Det kan också bara anslutas till en enhet i taget.

Felsökning Parning

Om du har några problem med att para ihop, försök starta om ESP32 medan din enhet söker. Jag var också tvungen att slå på och stänga av min bluetooth på datorn för att få den att kopplas ihop.

Steg 6: Makrotangentbordet

Makrotangentbordet
Makrotangentbordet
Makrotangentbordet
Makrotangentbordet
Makrotangentbordet
Makrotangentbordet
Makrotangentbordet
Makrotangentbordet

Nu när vi har grunderna ur vägen, låt oss göra något praktiskt av det!

I en tidigare guide visade jag hur man gör det enklaste makrotangentbordet från en Arduino pro Micro och billig knappsats. För varje knapp på knappsatsen skickar den en annan kombination av knappar som kan användas för att styra applikationer, personligen använder jag den för OBS, programvaran jag använder för att spela in videor och för när jag streamer. Det här verkar som ett bra projekt att överföra ESP32 så att vi kan göra en trådlös version.

För detta bygge kommer jag att använda Unexpected Makers TinyPICO ESP32 -kort. Den främsta anledningen till att välja det är ett mycket energieffektivt kort och har kretsar för att köra av och ladda ett Lipo -batteri, så allt jag behöver göra är att koppla in ett batteri.

Jag skulle ljuga om det faktum att det har samma radavstånd som Pro Micro och jag skulle kunna använda den redan gjorda breakout -brädan jag gjorde tidigare inte också var tilltalande!

Knappsatsen kräver 8 GPIO -stift för att fungera, och TinyPICO har 8 GPIO -stift i rad så vi använder dem. Du kan enkelt ansluta knappsatsen till TinyPICO enligt bilden ovan.

Steg 7: Kod för makrotangentbordet

Kod för makrotangentbordet
Kod för makrotangentbordet
Kod för makrotangentbordet
Kod för makrotangentbordet

Koden för Macro -knappsatsskissen finns på min Github.

Förutom BleKeyboard -biblioteket som installerades i ett tidigare steg måste du också installera biblioteket för knappsatsen, du kan göra detta genom att öppna bibliotekshanteraren genom att gå till Sketch -> Inkludera bibliotek -> Hantera bibliotek

Inne i bibliotekschefen, sök efter "knappsats" och installera den av Mark Stanley och Alexander Brevig

En konfiguration du kan behöva göra om du använder en annan ESP32 än TinyPICO är knappsatsstiften, de är inställda i rowPins och colPins -arrayen. När du tittar på knappsatsens framsida och börjar från vänster är de första 4 stiften radstiften och de andra 4 är kolpinnarna.

När det är klart, ladda upp koden till tavlan och du bör testa i det här skedet det fungerar.

Steg 8: Låt oss göra det trådlöst

Låt oss göra det trådlöst!
Låt oss göra det trådlöst!
Låt oss göra det trådlöst!
Låt oss göra det trådlöst!
Låt oss göra det trådlöst!
Låt oss göra det trådlöst!
Låt oss göra det trådlöst!
Låt oss göra det trådlöst!

Som nämnts tidigare har TinyPICO kretsar för hantering av en Lipo inbyggd så allt vi behöver göra är att ansluta den. Den levereras med JST -kontakter som kan lödas i botten, eller så kan du använda Bat- och GND -stiften om du ville göra det via stiften.

Om du använder JST -kontakterna, dubbelkolla att batteriets polaritet matchar TinyPICO, det finns ingen standard för hur dessa ska kopplas så det finns en god chans att ditt batteri kanske inte matchar.

Kontrollera spänningen på ditt lipobatteri innan du använder det, en frisk smet bör vara 3V eller högre, batteriet jag hittade med rätt JST -kontakt läste 0V!

Jag slutade använda en 18650 -cell i en hållare och lödde den till JST -kontakten på det döda batteriet.

TinyPICO minskar sin strömförbrukning när batteriet går ur genom att inte slå på någon av dess lysdioder, så även om det inte lyser, förhoppningsvis är det så! En framtida förbättring av projektet kan vara att pulsera den inbyggda dotstar -lysdioden vid start bara för att meddela att den faktiskt är på och kanske igen när den ansluter. För tillfället kan du kontrollera i systemets Bluetooth -meny att den är på och ansluten ok.

Steg 9: Testa det

Testar det!
Testar det!

Låt oss testa det, om jag öppnar snabbtangenterna i OBS kan jag klicka på olika åtgärder för att spela in en knappkombination som styr den. För detta kan vi bara klicka på knappen på vårt knappsats så uppdateras den.

När du har klickat på Apply ska du inte kunna använda din knappsats för att styra din scen i OBS.

Steg 10: Tack för att du läste

Förhoppningsvis tyckte du att den här instruerbara var användbar. Jag skulle gärna vilja höra om vad du skulle göra med den här typen av inställningar. Låt mig veta i kommentarerna nedan, eller gå med mig och ett gäng andra tillverkare på min Discord -server, där vi kan diskutera detta ämne eller någon annan makerrelaterad sådan du har, människor är verkligen hjälpsamma där så det är ett bra ställe att hänga på ut

Jag vill också rikta ett stort tack till mina Github -sponsorer som hjälper till att stödja det jag gör, jag uppskattar det verkligen. Om du inte vet matchar Github sponsring det första året, så om du gör en sponsring matchar de det 100% under de närmaste månaderna.

Tack för att du läser!

Rekommenderad: