Klawiatura makro DIY Bluetooth: 10 kroków (ze zdjęciami)
Klawiatura makro DIY Bluetooth: 10 kroków (ze zdjęciami)
Anonim
DIY klawiatura makro Bluetooth
DIY klawiatura makro Bluetooth

W tej instrukcji przyjrzymy się użyciu wbudowanego Bluetooth ESP32 do emulacji klawiatury Bluetooth.

Bluetooth HID (Human Interface Device) to protokół używany przez zwykłą klawiaturę i myszy Bluetooth i można go emulować tylko za pomocą ESP32, co jest świetne!

Z niektórymi płytami rozwojowymi ESP32 w cenie poniżej 5 USD*, jest to naprawdę niedrogi i prosty sposób na tworzenie bezprzewodowych niestandardowych klawiatur, takich jak klawiatury makro. Klawiatury makro mogą być używane do kontrolowania różnych aplikacji, takich jak edytory wideo lub Photoshop, osobiście używam mojej do kontrolowania scen w OBS podczas tworzenia filmów lub przesyłania strumieniowego.

Najpierw przyjrzymy się, jak korzystać z biblioteki klawiatury ESP32 HID, a następnie pokażę, jak użyłem tego do zbudowania zasilanej bateryjnie klawiatury makro Bluetooth.

Kieszonkowe dzieci

  • Płyta rozwojowa TinyPICO ESP32 (każdy ESP32 może działać)
  • Klawiatura matrycowa 4*4*

Będziesz także potrzebować baterii lipo, właśnie użyłem losowej baterii, którą leżałem, więc nie mogę się z nią połączyć!

Jeśli Twój komputer nie jest wyposażony w Bluetooth, możesz użyć klucza sprzętowego takiego jak ten:

Amazon.co.uk*:

Amazon.com*:

Amazon.de*:

* = Współpracownik

Krok 1: Sprawdź wideo

Image
Image

Zrobiłem film, który obejmuje to samo, co ten Instruktaż, więc jeśli jesteś zainteresowany, sprawdź to! Regularnie tworzę również filmy dotyczące projektów ESP8266 i ESP32, więc może są inne filmy na moim kanale, które mogą Cię zainteresować!

Krok 2: [Opcjonalnie] Pierwsze kroki z ESP32

ESP32 to mikrokontrolery kompatybilne z Arduino IDE i wyposażone w Wi-Fi i Bluetooth. Są również dość tanie, więc są bardzo przydatnymi układami do twoich projektów.

Będziesz musiał dodać definicję płyty ESP32 do swojego Arduino IDE, do tego możesz wykonać kroki wymienione na stronie Github projektów Arduino ESP32

Krok 3: Instalowanie biblioteki klawiatury ESP32 Ble

Instalowanie biblioteki klawiatury ESP32 Ble
Instalowanie biblioteki klawiatury ESP32 Ble
Instalowanie biblioteki klawiatury ESP32 Ble
Instalowanie biblioteki klawiatury ESP32 Ble

Możliwe jest użycie Bluethooth HID na ESP32 bez zewnętrznej biblioteki, ale użytkownik Github T-Vk napisał bibliotekę o nazwie ESP32-BLE-Keyboard, która bardziej przypomina standardową bibliotekę klawiatury Arduino, co czyni ją znacznie łatwiejszą w użyciu.

Ta biblioteka nie jest dostępna w menedżerze bibliotek, więc musisz ją pobrać z Github.

  • Przejdź na stronę z wydaniami projektów i pobierz najnowszy plik ESP32-BLE-Keyboard.zip
  • Po pobraniu możesz dodać go do swojego Arduino IDE, ale przechodząc do Szkic -> Dołącz bibliotekę, a następnie Dodaj Zip do biblioteki i wybierz ESP32-BLE-Keyboard.zip z poprzedniego kroku.

Krok 4: Patrząc na przykład

Patrząc na przykład
Patrząc na przykład
Patrząc na przykład
Patrząc na przykład
Patrząc na przykład
Patrząc na przykład

Po dodaniu możemy otworzyć przykład, który jest z nim dołączony. To całkiem fajny przykład, ponieważ pokazuje kilka różnych rzeczy, które można osiągnąć dzięki bibliotece, ale dodam też trochę więcej szczegółów, gdzie myślę, że byłoby to przydatne.

Możesz uzyskać dostęp do przykładu, przechodząc do Plik -> Przykłady -> Klawiatura ESP32 BLE -> SendKeyStrokes

Konfigurowanie połączenia Bluetooth

W konfiguracji rozpoczyna połączenie Bluetooth, na tym etapie powinno być dostępne do sparowania z urządzeniem.

bleKeyboard.begin();

Wewnątrz pętli sprawdza również, czy jest podłączony do urządzenia

bleKeyboard.isConnected()

Pisanie na maszynie

Pierwszą rzeczą, którą pokazuje przykład, jest to, jak możesz wpisać tekst po połączeniu, najpierw wpisze „Hello world” za pomocą

bleKeyboard.print("Witaj świecie");

Pojedyncze naciśnięcia przycisku

Następnie pokazuje, jak można „napisać” klawisz powrotu, jest to w zasadzie emulacja pojedynczego naciśnięcia tego przycisku.

bleKeyboard.write(KEY_RETURN);

Możesz otworzyć plik BleKeyboard.h biblioteki, aby zobaczyć wszystkie klucze zdefiniowane w ten sposób. Możesz także wysyłać znaki ascii, umieszczając je w pojedynczych przecinkach.

bleKeyboard.write('A');

Klawisze multimedialne

Pokazuje również, w jaki sposób można wysyłać klawisze multimedialne, podobnie jak można kontrolować głośność lub pomijać utwory za pomocą słuchawek Bluetooth. Przykład pokazuje klawisz odtwarzania / pauzy, ale ponownie możesz otworzyć BleKeyboard.h, aby zobaczyć inne dostępne opcje.

bleKeyboard.write(KEY_MEDIA_PLAY_PAUSE);

Naciskanie i zwalnianie klawiszy

Ostatnią rzeczą, jaką pokazuje nam przykład, jest to, jak można naciskać i przytrzymywać klawisze, co jest przydatne do tworzenia klawiatur makr. Przykład pokazany tutaj dotyczy Ctrl + Alt + Delete

bleKeyboard.press(KEY_LEFT_CTRL);

bleKeyboard.press(KEY_LEFT_ALT);

bleKeyboard.press(KEY_DELETE);

Następnie wywołuje releaseAll, które jak można się domyślić po nazwie zwalnia wszystkie wciśnięte klawisze.

bleKeyboard.releaseAll();

Możesz także zwolnić określone klawisze, jeśli chcesz, używając polecenia zwolnienia z klawiszem, który chcesz zwolnić

bleKeyboard.release(KEY_DELETE);

Krok 5: Inne wskazówki dla biblioteki

Inne wskazówki dla Biblioteki
Inne wskazówki dla Biblioteki
Inne wskazówki dla Biblioteki
Inne wskazówki dla Biblioteki
Inne wskazówki dla Biblioteki
Inne wskazówki dla Biblioteki

W poprzednim kroku omówiliśmy główne funkcje biblioteki, ale oto kilka dodatkowych rzeczy, które moim zdaniem mogą być przydatne

Użyj zewnętrznego wyzwalacza

Zawsze najlepiej jest sterować takim urządzeniem HID za pomocą zewnętrznego wyzwalacza, takiego jak naciśnięcie przycisku. Jeśli używasz timera i coś pójdzie nie tak, rozłączenie może być niezręczne. Wyobraź sobie, że musisz spróbować wyłączyć Bluetooth, jeśli przypadkowo zaprogramowałeś go tak, aby naciskał Ctrl + Alt + Del co 100 ms!

Zmiana nazwy urządzenia

Domyślnie nazwa urządzenia będzie wyświetlana jako „Klawiatura ESP32 BLE”, można to zmienić podczas tworzenia instancji biblioteki. Możesz ustawić nazwę urządzenia, producenta i początkowy poziom naładowania baterii.

BleKeyboard bleKeyboard("Nazwa urządzenia Bluetooth", "Producent urządzenia Bluetooth", 100);

Ustawianie poziomu baterii (przynajmniej dla mnie nie działa)

Biblioteka twierdzi, że możesz również ustawić poziom naładowania baterii, ale nie działało to dla mnie na moim komputerze z systemem Windows (pozostało bez względu na początkową wartość), a mój telefon z Androidem nie pokazywał poziomu tego wszystkiego. Oto polecenie na wypadek, gdyby zadziałało dla ciebie

bleKeyboard.setBatteryLevel(50)

Kompatybilność urządzenia

Udało mi się uruchomić przykład na moim komputerze z systemem Windows 10, telefonie z Androidem i moim Macu (chociaż nadal jakoś działa Sierra!)

Może być również podłączony tylko do jednego urządzenia na raz.

Rozwiązywanie problemów z parowaniem

Jeśli masz problemy z parowaniem, spróbuj ponownie uruchomić ESP32 podczas wyszukiwania urządzenia. Musiałem też raz włączyć i wyłączyć bluetooth na moim komputerze, aby go sparować.

Krok 6: Klawiatura makro

Klawiatura makro
Klawiatura makro
Klawiatura makro
Klawiatura makro
Klawiatura makro
Klawiatura makro
Klawiatura makro
Klawiatura makro

Teraz, gdy mamy już podstawy, zróbmy z tego coś praktycznego!

W poprzednim przewodniku pokazałem, jak zrobić najprostszą klawiaturę Macro z Arduino pro Micro i taniej klawiatury. Dla każdego przycisku na klawiaturze wysyła inną kombinację przycisków, które mogą być używane do sterowania aplikacjami, osobiście używam go do OBS, oprogramowania, którego używam do nagrywania filmów i do przesyłania strumieniowego. Wydaje się, że to dobry projekt do przeniesienia przez ESP32, abyśmy mogli stworzyć wersję bezprzewodową.

Do tej kompilacji użyję płytki TinyPICO ESP32 firmy Unexpected Maker. Głównym powodem wyboru jest bardzo energooszczędna płyta i ma wbudowane obwody do uruchamiania i ładowania baterii Lipo, więc wszystko, co muszę zrobić, to podłączyć baterię.

Skłamałbym, gdyby fakt, że ma takie same odstępy między rzędami jak Pro Micro i mogę skorzystać z już wykonanej deski breakout, którą zrobiłem wcześniej, również nie był atrakcyjny!

Klawiatura wymaga do działania 8 pinów GPIO, a TinyPICO ma 8 pinów GPIO z rzędu, więc ich użyjemy. Możesz łatwo podłączyć klawiaturę do TinyPICO, jak pokazano na powyższym obrazku.

Krok 7: Kod dla klawiatury makro

Kod dla klawiatury makro
Kod dla klawiatury makro
Kod dla klawiatury makro
Kod dla klawiatury makro

Kod szkicu Macro Keypad można znaleźć na moim Github.

Oprócz biblioteki BleKeyboard, która została zainstalowana w poprzednim kroku, będziesz musiał również zainstalować bibliotekę dla klawiatury, możesz to zrobić otwierając menedżera biblioteki, przechodząc do Szkic -> Dołącz bibliotekę -> Zarządzaj bibliotekami

W menedżerze biblioteki wyszukaj „klawiaturę” i zainstaluj tę autorstwa Marka Stanleya i Alexandra Brevig

Jedną z konfiguracji, którą możesz potrzebować, jeśli używasz innego ESP32 niż TinyPICO, są piny klawiatury, są one ustawione w tablicy rowPins i colPins. Patrząc na przód klawiatury i zaczynając od lewej, pierwsze 4 styki to szpilki rzędu, a drugie 4 to szpilki kol.

Gdy to zrobisz, prześlij kod na tablicę i powinieneś przetestować na tym etapie, że działa.

Krok 8: Zróbmy to bezprzewodowo

Zróbmy to bezprzewodowo!
Zróbmy to bezprzewodowo!
Zróbmy to bezprzewodowo!
Zróbmy to bezprzewodowo!
Zróbmy to bezprzewodowo!
Zróbmy to bezprzewodowo!
Zróbmy to bezprzewodowo!
Zróbmy to bezprzewodowo!

Jak wspomniano wcześniej, TinyPICO ma wbudowane obwody do obsługi Lipo, więc wszystko, co musimy zrobić, to go podłączyć. Jest wyposażony w złącza JST, które można przylutować od spodu, lub możesz użyć pinów Bat i GND, jeśli chcesz to zrobić za pomocą pinów.

Jeśli używasz złącz JST, sprawdź dokładnie, czy biegunowość baterii pasuje do TinyPICO, nie ma standardu, jak powinny być one podłączone, więc istnieje duża szansa, że bateria może nie pasować.

Sprawdź napięcie baterii lipo przed jej użyciem, zdrowe ciasto powinno wynosić 3 V lub więcej, bateria, którą znalazłem z prawidłowym złączem JST, wskazywała 0 V!

Skończyło się na użyciu ogniwa 18650 w uchwycie i przylutowaniu go do złącza JST rozładowanego akumulatora.

TinyPICO zmniejsza zużycie energii podczas pracy z akumulatorem, nie zasilając żadnej z jego diod LED, więc nawet jeśli nie patrzy, miejmy nadzieję, że tak! Przyszłym ulepszeniem projektu może być pulsowanie wbudowanej diody LED dotstar podczas uruchamiania, aby poinformować, że faktycznie się włączyła, a może ponownie, gdy się połączy. Na razie możesz sprawdzić w menu Bluetooth swojego systemu, czy jest włączony i podłączony w porządku.

Krok 9: Testowanie

Testuję to!
Testuję to!

Przetestujmy to, jeśli otworzę część skrótów klawiszowych OBS, mogę kliknąć różne akcje, aby nagrać kombinację przycisków, która będzie ją kontrolować, w tym celu możemy po prostu kliknąć przycisk na naszej klawiaturze i zaktualizuje się.

Po kliknięciu przycisku Zastosuj nie powinieneś być w stanie używać klawiatury do sterowania sceną w OBS.

Krok 10: Dzięki za przeczytanie

Mam nadzieję, że ta instrukcja okazała się przydatna. Chciałbym usłyszeć o tym, co byś zrobił z tego typu konfiguracją. Daj mi znać w komentarzach poniżej lub dołącz do mnie i kilku innych twórców na moim serwerze Discord, gdzie możemy omówić ten temat lub inny związany z twórcą, ludzie są tam bardzo pomocni, więc jest to świetne miejsce do spędzania czasu na zewnątrz

Chciałbym również bardzo podziękować moim Sponsorom Github, którzy pomagają we wspieraniu tego, co robię, naprawdę to doceniam. Jeśli nie wiesz, Github dopasowuje sponsoring przez pierwszy rok, więc jeśli dokonasz sponsoringu, dopasują go w 100% przez następne kilka miesięcy.

Dziękuje za przeczytanie!