Innholdsfortegnelse:

DIY Bluetooth makrotastatur: 10 trinn (med bilder)
DIY Bluetooth makrotastatur: 10 trinn (med bilder)

Video: DIY Bluetooth makrotastatur: 10 trinn (med bilder)

Video: DIY Bluetooth makrotastatur: 10 trinn (med bilder)
Video: I Built a Keypad to Control My Entire Desk Setup - OLED TV, USB Switch, Lights, Desk, Macros... 2024, November
Anonim
DIY Bluetooth makrotastatur
DIY Bluetooth makrotastatur

I denne instruksen skal vi ta en titt på bruk av den innebygde Bluetooth-en til ESP32 for å etterligne et Bluetooth-tastatur.

Bluetooth HID (Human Interface Device) er protokollen som brukes av vanlig Bluetooth -tastatur og mus, og det er mulig å etterligne dette med bare en ESP32, noe som er flott!

Med noen ESP32 -utviklingstavler som starter med mindre enn $ 5* levert, er dette en veldig billig og enkel måte å lage trådløse tilpassede tastaturer som et makrotastatur. Makrotastatur kan brukes til å kontrollere forskjellige applikasjoner som videoredigerere eller Photoshop, personlig bruker jeg min til å kontrollere scener i OBS når jeg lager videoer eller streamer.

Vi skal først se på hvordan du bruker ESP32 HID -tastaturbiblioteket, og så vil jeg vise deg hvordan jeg brukte dette til å bygge et batteridrevet Bluetooth makrotastatur.

Rekvisita

  • TinyPICO ESP32 Dev -bord (Alle ESP32 kan fungere)
  • 4*4 Matrisetastatur*

Du trenger også et lipo -batteri, jeg brukte bare et tilfeldig batteri jeg hadde liggende, så jeg kan ikke koble til det!

Hvis din PC ikke har Bluetooth, kan du bruke en dongle som denne:

Amazon.co.uk*:

Amazon.com*:

Amazon.de*:

* = Tilknyttet

Trinn 1: Sjekk ut videoen

Image
Image

Jeg har laget en video som dekker det samme som denne Instructable, så hvis du er interessert, kan du sjekke den ut! Jeg lager også videoer rundt ESP8266- og ESP32 -prosjekter regelmessig, så det er kanskje andre videoer på kanalen min du synes er interessant!

Trinn 2: [Valgfritt] Komme i gang med en ESP32

ESP32 er mikrokontrollere som er kompatible med Arduino IDE og har WiFi og Bluetooth inkludert. De er også ganske billige, så de er veldig nyttige sjetonger for prosjektene dine.

Du må legge til ESP32 -kortdefinisjonen i Arduino IDE, for å følge dette kan du følge trinnene som er oppført på ESP32 Arduino -prosjektene Github -siden

Trinn 3: Installere ESP32 Ble -tastaturbiblioteket

Installere ESP32 Ble Keyboard Library
Installere ESP32 Ble Keyboard Library
Installere ESP32 Ble Keyboard Library
Installere ESP32 Ble Keyboard Library

Det er mulig å bruke Bluethooth HID på ESP32 uten eksternt bibliotek, men Github-bruker T-Vk har skrevet et bibliotek kalt ESP32-BLE-Keyboard som gjør det mer som det vanlige Arduino-tastaturbiblioteket som gjør det mye enklere å bruke.

Dette biblioteket er ikke tilgjengelig i biblioteksjefen, så du må laste det ned fra Github.

  • Gå til prosjektutgivelsessiden og last ned den nyeste ESP32-BLE-Keyboard.zip
  • Når den er lastet ned, kan du legge den til i Arduino IDE, men gå til Sketch-> Inkluder bibliotek og deretter Legg til zip til bibliotek og velg ESP32-BLE-Keyboard.zip fra forrige trinn.

Trinn 4: Se på eksemplet

Ser på eksemplet
Ser på eksemplet
Ser på eksemplet
Ser på eksemplet
Ser på eksemplet
Ser på eksemplet

Når det er lagt til, kan vi åpne opp eksemplet som følger med det. Det er et ganske fint eksempel, da det viser noen forskjellige ting du kan oppnå med biblioteket, men jeg vil også legge til litt mer detaljert der jeg tror det ville være nyttig.

Du får tilgang til eksemplet ved å gå til Fil -> Eksempler -> ESP32 BLE -tastatur -> SendKeyStrokes

Konfigurere en Bluetooth -tilkobling

I oppsettet starter den Bluetooth -tilkoblingen, på dette stadiet bør den være tilgjengelig for sammenkobling med på enheten din.

bleKeyboard.begin ();

Inne i sløyfen sjekker den også om den er koblet til en enhet

bleKeyboard.isConnected ()

Skriving

Det første eksemplet viser er hvordan du kan skrive ut tekst når den først er koblet til, og den vil først skrive "Hei verden" ved å bruke

bleKeyboard.print ("Hei verden");

Trykk på én knapp

Den viser deretter hvordan du kan "skrive" returtasten, dette er i utgangspunktet å etterligne et enkelt tastetrykk på denne knappen.

bleKeyboard.write (KEY_RETURN);

Du kan åpne BleKeyboard.h -filen i biblioteket for å se alle nøklene som er definert slik. Du kan også sende ascii -tegn ved å sette dem i enkle kommaer.

bleKeyboard.write ('A');

Medietaster

Det viser også hvordan du kan sende medietaster, dette ligner på hvordan du kan kontrollere volumet eller hoppe over spor med Bluetooth -hodetelefonene. Eksemplet viser play/pause -tasten, men igjen kan du åpne BleKeyboard.h for å se de andre tilgjengelige alternativene.

bleKeyboard.write (KEY_MEDIA_PLAY_PAUSE);

Trykk og slipp tastene

Det siste eksemplet viser oss er hvordan du kan trykke og holde nøkler. Dette er nyttig for å lage makrotastaturer. Eksemplet som vises her er for Ctrl + Alt + Delete

bleKeyboard.press (KEY_LEFT_CTRL);

bleKeyboard.press (KEY_LEFT_ALT);

bleKeyboard.press (KEY_DELETE);

Den kaller deretter releaseAll, som du sannsynligvis kan gjette etter navnet, slipper alle de trykte tastene.

bleKeyboard.releaseAll ();

Du kan også slippe spesifikke nøkler hvis du vil enten ved å bruke utgivelseskommandoen med nøkkelen du vil slippe

bleKeyboard.release (KEY_DELETE);

Trinn 5: Andre tips for biblioteket

Andre tips for biblioteket
Andre tips for biblioteket
Andre tips for biblioteket
Andre tips for biblioteket
Andre tips for biblioteket
Andre tips for biblioteket

Vi dekket hovedfunksjonaliteten til biblioteket i forrige trinn, men her er noen ekstra ting som jeg tror kan være nyttig å vite

Bruk en ekstern utløser

Det er alltid best å kontrollere en HID -enhet som denne ved hjelp av en ekstern utløser, for eksempel et knappetrykk. Hvis du bruker en timer og noe går galt, kan det være vanskelig å koble fra. Tenk deg å måtte prøve å slå av Bluetooth hvis du ved et uhell programmerte den til å trykke Ctrl+Alt+Del hver 100 ms!

Endre enhetsnavnet

Som standard vises enhetsnavnet som "ESP32 BLE Keyboard", dette kan endres når du oppretter en forekomst av biblioteket. Du kan angi enhetsnavn, produsent og det opprinnelige batterinivået.

BleKeyboard bleKeyboard ("Bluetooth -enhetsnavn", "Bluetooth -enhetsprodusent", 100);

Innstilling av batterinivå (fungerer ikke for meg i det minste)

Biblioteket hevder at du også kan angi batterinivået, men det fungerte ikke for meg på min Windows -PC (den holdt seg med den opprinnelige verdien) og Android -telefonen min viste ikke nivået på det hele. Her er kommandoen for det i tilfelle det fungerer for deg

bleKeyboard.setBatteryLevel (50)

Enhetskompatibilitet

Jeg kjørte eksemplet på min Windows 10 -PC, Android -telefon og Mac (men det kjører Sierra på en eller annen måte!)

Den kan også bare kobles til én enhet om gangen.

Feilsøking Paring

Hvis du har problemer med sammenkoblingen, kan du prøve å starte ESP32 på nytt mens enheten søker. Jeg måtte også slå av og på bluetoothen min på PCen en gang for å få den til å koble seg til.

Trinn 6: Makrotastaturet

Makrotastaturet
Makrotastaturet
Makrotastaturet
Makrotastaturet
Makrotastaturet
Makrotastaturet
Makrotastaturet
Makrotastaturet

Nå som vi har det grunnleggende ute av veien, la oss gjøre noe praktisk ut av det!

I en tidligere guide viste jeg hvordan du lager det enkleste makrotastaturet fra et Arduino pro Micro og billig tastatur. For hver knapp på tastaturet sender den en annen kombinasjon av knapper som kan brukes til å kontrollere applikasjoner, personlig bruker jeg den til OBS, programvaren jeg bruker til å ta opp videoer og til når jeg streamer. Dette virker som et godt prosjekt å portere over ESP32, slik at vi kan lage en trådløs versjon.

For denne bygningen kommer jeg til å bruke Unexpected Makers TinyPICO ESP32 -kort. Hovedårsaken til å velge det er et veldig energieffektivt kort og har kretser for å løpe av og lade et Lipo -batteri, så alt jeg trenger å gjøre er å koble til et batteri.

Jeg ville lyve hvis det faktum at det har samme radavstand som Pro Micro og jeg kunne bruke det allerede laget breakout -brettet jeg laget tidligere ikke også var tiltalende!

Tastaturet krever 8 GPIO -pinner for å fungere, og TinyPICO har 8 GPIO -pinner på rad, så vi bruker dem. Du kan enkelt koble tastaturet til TinyPICO som vist på bildet ovenfor.

Trinn 7: Kode for makrotastaturet

Kode for makrotastaturet
Kode for makrotastaturet
Kode for makrotastaturet
Kode for makrotastaturet

Koden for Macro -tastaturskissen finner du på min Github.

I tillegg til BleKeyboard -biblioteket som ble installert i et tidligere trinn, må du også installere biblioteket for tastaturet, du kan gjøre dette ved å åpne biblioteksjefen ved å gå til Sketch -> Include Library -> Manage Libraries

Inne i biblioteksjefen, søk etter "tastatur" og installer den av Mark Stanley og Alexander Brevig

En konfigurasjon du kanskje må gjøre hvis du bruker en annen ESP32 enn TinyPICO er tastaturpinnene, de er satt i rowPins og colPins array. Når du ser på fronten av tastaturet og starter fra venstre, er de fire første pinnene radpinnene og de andre 4 er kolpinnene.

Når det er gjort, last opp koden til tavlen og du bør teste på dette stadiet den fungerer.

Trinn 8: La oss gjøre det trådløst

La oss gjøre det trådløst!
La oss gjøre det trådløst!
La oss gjøre det trådløst!
La oss gjøre det trådløst!
La oss gjøre det trådløst!
La oss gjøre det trådløst!
La oss gjøre det trådløst!
La oss gjøre det trådløst!

Som nevnt tidligere har TinyPICO kretser for håndtering av en Lipo innebygd, så alt vi trenger å gjøre er å koble den til. Den leveres med JST -kontakter som kan loddes til bunnen, eller du kan bruke Bat- og GND -pinnene hvis du ville gjøre det via pinnene.

Hvis du bruker JST -kontaktene, vennligst dobbeltsjekk om polariteten til batteriet ditt stemmer overens med TinyPICO, det er ingen standard for hvordan disse skal kobles til, så det er en god sjanse for at batteriet ditt ikke stemmer overens.

Kontroller spenningen på lipo -batteriet før du bruker det. En sunn røre skal være 3V eller høyere, batteriet jeg fant med riktig JST -kontakt leste 0V!

Jeg endte opp med å bruke en 18650 celle i en holder og lodde den til JST -kontakten på det døde batteriet.

TinyPICO reduserer strømforbruket når batteriet går av ved å ikke slå på noen av LED -ene, så selv om det ikke ser ut, så er det forhåpentligvis det! En fremtidig forbedring av prosjektet kan være å pulsere den innebygde dotstar -LED -en ved oppstart bare for å fortelle deg at den faktisk er slått på og kanskje igjen når den kobles til. For nå kan du sjekke i systemets Bluetooth -meny at den er på og tilkoblet ok.

Trinn 9: Test det ut

Tester det ut!
Tester det ut!

La oss teste det, hvis jeg åpner hurtigtastene i OBS, kan jeg klikke på forskjellige handlinger for å spille inn en knappekombinasjon som styrer den. For dette kan vi bare klikke på knappen på tastaturet vårt, og den oppdateres.

Etter at du har klikket på bruk, bør du ikke kunne bruke tastaturet til å kontrollere scenen i OBS.

Trinn 10: Takk for at du leste

Forhåpentligvis fant du denne Instructable nyttig. Jeg vil gjerne høre om hva du vil gjøre med denne typen oppsett. Gi meg beskjed i kommentarene nedenfor, eller bli med meg og en haug med andre beslutningstakere på Discord -serveren min, hvor vi kan diskutere dette emnet eller en annen makerrelatert en du har, folk er veldig hjelpsomme der, så det er et flott sted å henge ute

Jeg vil også rette en stor takk til mine Github -sponsorer som hjelper meg med å støtte det jeg gjør, jeg setter virkelig pris på det. Hvis du ikke vet det, matcher Github sponsorater det første året, så hvis du lager et sponsing, vil de matche det 100% de neste månedene.

Takk for at du leste!

Anbefalt: