Съдържание:

DIY Bluetooth макро клавиатура: 10 стъпки (със снимки)
DIY Bluetooth макро клавиатура: 10 стъпки (със снимки)

Видео: DIY Bluetooth макро клавиатура: 10 стъпки (със снимки)

Видео: DIY Bluetooth макро клавиатура: 10 стъпки (със снимки)
Видео: 32 Секретные Комбинации Для Вашей Клавиатуры 2024, Юли
Anonim
DIY Bluetooth макро клавиатура
DIY Bluetooth макро клавиатура

В тази инструкция ще разгледаме използването на вградения Bluetooth на ESP32 за емулиране на Bluetooth клавиатура.

Bluetooth HID (Human Interface Device) е протоколът, използван от обикновената Bluetooth клавиатура и мишки и е възможно да се подражава на това само с ESP32, което е страхотно!

С някои доставени платки за разработка на ESP32, започващи от по -малко от $ 5*, това е наистина евтин и лесен начин за създаване на безжични персонализирани клавиатури, като например клавиатури за макроси. Макро клавиатурите могат да се използват за управление на различни приложения като видео редактори или Photoshop, лично аз използвам моята за контролиране на сцени в OBS, когато правя видео или стрийминг.

Първо ще разгледаме как да използваме библиотеката на клавиатурата ESP32 HID и след това ще ви покажа как използвах това за изграждане на базова батерия с макро клавиатура.

Консумативи

  • TinyPICO ESP32 Dev платка (всеки ESP32 може да работи)
  • 4*4 матрична клавиатура*

Ще ви трябва и липо батерия, току -що използвах произволна, която бях сложил наоколо, така че не мога да се свържа с нея!

Ако вашият компютър няма Bluetooth, можете да използвате ключ като този:

Amazon.co.uk*:

Amazon.com*:

Amazon.de*:

* = Партньор

Стъпка 1: Вижте видеото

Image
Image

Направих видеоклип, който обхваща същото като този Instructable, така че ако се интересувате, моля, проверете го! Редовно правя и видеоклипове около проекти ESP8266 и ESP32, така че може би има и други видеоклипове в канала ми, които може да ви се сторят интересни!

Стъпка 2: [По избор] Първи стъпки с ESP32

ESP32 са микроконтролери, които са съвместими с Arduino IDE и се предлагат с включени WiFi и Bluetooth. Те също са доста евтини, така че са много полезни чипове за вашите проекти.

Ще трябва да добавите дефиницията на платката ESP32 към вашата Arduino IDE, към това можете да следвате стъпките, изброени на страницата Github на проектите ESP32 Arduino

Стъпка 3: Инсталиране на ESP32 Ble Keyboard Library

Инсталиране на ESP32 Ble Keyboard Library
Инсталиране на ESP32 Ble Keyboard Library
Инсталиране на ESP32 Ble Keyboard Library
Инсталиране на ESP32 Ble Keyboard Library

Възможно е да използвате Bluethooth HID на ESP32 без външна библиотека, но потребителят на Github T-Vk е написал библиотека, наречена ESP32-BLE-Keyboard, която я прави по-скоро като стандартната библиотека на клавиатурата Arduino, което я прави много по-лесна за използване.

Тази библиотека не е налична в мениджъра на библиотеката, така че ще трябва да я изтеглите от Github.

  • Отворете страницата за издания на проекти и изтеглете най-новата ESP32-BLE-Keyboard.zip
  • След като го изтеглите, можете да го добавите към вашата Arduino IDE, но отидете на Sketch-> Include Library и след това Add Zip to library и изберете ESP32-BLE-Keyboard.zip от предишната стъпка.

Стъпка 4: Разглеждане на примера

Разглеждайки Примера
Разглеждайки Примера
Разглеждайки Примера
Разглеждайки Примера
Разглеждайки Примера
Разглеждайки Примера

След като това бъде добавено, можем да отворим примера, който идва с него. Това е доста хубав пример, тъй като демонстрира няколко различни неща, които можете да постигнете с библиотеката, но също така ще добавя малко по -подробно, където смятам, че би било полезно.

Можете да получите достъп до примера, като отидете на File -> Examples -> ESP32 BLE Keyboard -> SendKeyStrokes

Настройка на Bluetooth връзка

При настройката той започва Bluetooth връзката, на този етап тя трябва да е налична за сдвояване с вашето устройство.

bleKeyboard.begin ();

Вътре в контура той също така проверява дали е свързан с устройство

bleKeyboard.isConnected ()

Въвеждане на текст

Първото нещо, което примерът показва, е как можете да въведете текст, след като той е свързан, той първо ще напише „Hello world“с помощта

bleKeyboard.print ("Здравей свят");

Натискане на един бутон

След това показва как можете да "напишете" клавиша за връщане, това по същество е емулация на едно натискане на клавиш на този бутон.

bleKeyboard.write (KEY_RETURN);

Можете да отворите файла BleKeyboard.h на библиотеката, за да видите всички ключове, които са дефинирани по този начин. Можете също да изпращате символи ascii, като ги поставяте в единични запетаи.

bleKeyboard.write ('A');

Мултимедийни ключове

Той също така демонстрира как можете да изпращате медийни ключове, това е подобно на това как можете да контролирате силата на звука или да пропускате песни с вашите Bluetooth слушалки. Примерът показва клавиша за възпроизвеждане/пауза, но отново можете да отворите BleKeyboard.h, за да видите другите налични опции.

bleKeyboard.write (KEY_MEDIA_PLAY_PAUSE);

Натискане и отпускане на клавишите

Последното нещо, което примерът ни показва, е как можете да натиснете и задържите клавишите, това е полезно за създаване на макро клавиатури. Примерът, показан тук, е за Ctrl + Alt + Delete

bleKeyboard.press (KEY_LEFT_CTRL);

bleKeyboard.press (KEY_LEFT_ALT);

bleKeyboard.press (KEY_DELETE);

След това извиква releaseAll, който, както вероятно се досещате по името, освобождава всички натиснати клавиши.

bleKeyboard.releaseAll ();

Можете също да освободите конкретни ключове, ако искате, като използвате командата за освобождаване с ключа, който искате да освободите

bleKeyboard.release (KEY_DELETE);

Стъпка 5: Други съвети за библиотеката

Други съвети за библиотеката
Други съвети за библиотеката
Други съвети за библиотеката
Други съвети за библиотеката
Други съвети за библиотеката
Други съвети за библиотеката

Покрихме основната функционалност на библиотеката в предишната стъпка, но ето някои допълнителни неща, които смятам, че може да е полезно да знаете

Използвайте външен тригер

Винаги е най -добре да управлявате HID устройство като това с помощта на външен спусък, като например натискане на бутон. Ако използвате таймер и нещо се обърка, прекъсването на връзката може да стане неудобно. Представете си, че трябва да опитате да изключите вашия Bluetooth, ако случайно сте го програмирали да натиска Ctrl+Alt+Del на всеки 100 mS!

Промяна на името на устройството

По подразбиране името на устройството ще се показва като „ESP32 BLE Keyboard“, това може да се промени, когато създавате екземпляр на библиотеката. Можете да зададете името на устройството, производителя и първоначалното ниво на батерията.

BleKeyboard bleKeyboard ("Име на Bluetooth устройство", "Производител на Bluetooth устройства", 100);

Настройка на нивото на батерията (поне не работи при мен)

Библиотеката твърди, че можете също да зададете нивото на батерията, но не работи при мен на моя компютър с Windows (остава с каквато и да е първоначална стойност) и телефонът ми с Android не показва нивото на всичко това. Ето командата за него, в случай че работи за вас

bleKeyboard.setBatteryLevel (50)

Съвместимост на устройството

Изпълних успешно примера на моя компютър с Windows 10, телефон с Android и моя Mac (въпреки че все още работи по някакъв начин Sierra!)

Също така може да се свързва само с едно устройство наведнъж.

Отстраняване на проблеми при сдвояване

Ако имате проблеми при сдвояването, опитайте да рестартирате ESP32, докато устройството ви търси. Също така веднъж трябваше да включвам и изключвам Bluetooth на компютъра си, за да го сдвоя.

Стъпка 6: Макро клавиатурата

Макро клавиатурата
Макро клавиатурата
Макро клавиатурата
Макро клавиатурата
Макро клавиатурата
Макро клавиатурата
Макро клавиатурата
Макро клавиатурата

Сега, когато имаме основите на пътя, нека направим нещо практично от това!

В предишно ръководство показах как да направите най -простата макро клавиатура от Arduino pro Micro и евтина клавиатура. За всеки бутон на клавиатурата той изпраща различна комбинация от бутони, която може да се използва за управление на приложения, лично аз го използвам за OBS, софтуера, който използвам за запис на видеоклипове и за когато стриймвам. Това изглежда като добър проект за пренасяне през ESP32, така че можем да направим безжична версия.

За тази компилация ще използвам дъската TinyPICO ESP32 на Unexpected Maker. Основната причина за избора му е много енергийно ефективна платка и има вградена схема за изтичане и зареждане на Lipo батерия, така че всичко, което трябва да направя, е да включа батерия.

Ще излъжа, ако фактът, че има същото междуредово разстояние като Pro Micro и можех да използвам вече направената пробивна дъска, която направих преди, също не беше привлекателен!

Клавиатурата изисква 8 GPIO пина за работа, а TinyPICO има 8 GPIO пина подред, така че ще ги използваме. Можете просто да свържете клавиатурата към TinyPICO, както е показано на горното изображение.

Стъпка 7: Код за макро клавиатурата

Код за макро клавиатурата
Код за макро клавиатурата
Код за макро клавиатурата
Код за макро клавиатурата

Кодът за скицата на макро клавиатурата може да се намери на моя Github.

Освен библиотеката BleKeyboard, която е била инсталирана в предишна стъпка, ще трябва да инсталирате и библиотеката за клавиатурата, можете да направите това, като отворите мениджъра на библиотеката, като отидете на Sketch -> Include Library -> Manage Libraries

В мениджъра на библиотеката потърсете „клавиатура“и инсталирайте тази от Марк Стенли и Александър Бревиг

Може да се наложи да направите една конфигурация, ако използвате различен ESP32, отколкото TinyPICO са щифтовете на клавиатурата, те са зададени в масива rowPins и colPins. Когато гледате отпред на клавиатурата и започнете отляво, първите 4 пина са щифтовете на реда, а вторите 4 са щифтовете за колони.

След като това стане, качете кода на дъската и трябва да тествате на този етап дали работи.

Стъпка 8: Нека го направим безжичен

Нека го направим безжичен!
Нека го направим безжичен!
Нека го направим безжичен!
Нека го направим безжичен!
Нека го направим безжичен!
Нека го направим безжичен!
Нека го направим безжичен!
Нека го направим безжичен!

Както бе споменато по -рано, TinyPICO има вградени схеми за работа с Lipo, така че всичко, което трябва да направим, е да го свържем. Той идва с JST конектори, които могат да бъдат запоени до дъното, или можете да използвате щифтовете Bat и GND, ако искате да го направите чрез щифтовете.

Ако използвате JST конекторите, моля, проверете отново полярността на батерията си в съответствие с TinyPICO, няма стандарт за това как те трябва да бъдат свързани, така че има голяма вероятност батерията ви да не съвпада.

Проверете напрежението на вашата lipo батерия, преди да я използвате, здравословното тесто трябва да е 3V или по -високо, батерията, която открих с правилния JST конектор, четеше 0V!

В крайна сметка използвах 18650 клетка в държач и я запоявах към JST конектора на изтощената батерия.

TinyPICO намалява консумацията си на енергия при изтощаване на батерията, като не захранва нито един от светодиодите, така че дори и да не свети, дано е така! Бъдещо подобрение на проекта може да бъде пулсирането на вградения светодиод dotstar при стартиране, само за да ви уведоми, че действително е включен и може би отново, когато се свърже. Засега можете да проверите в менюто на вашите системи Bluetooth дали е включено и свързано добре.

Стъпка 9: Изпробвайте го

Тествайте го!
Тествайте го!

Нека го изпробваме, ако отворя клавишните клавиши на OBS, мога да кликна върху различни действия, за да запиша комбинация от бутони, която ще го контролира, за това можем просто да кликнете върху бутона на нашата клавиатура и той ще се актуализира.

След като щракнете върху приложи, не би трябвало да можете да използвате клавиатурата си, за да контролирате сцената си в OBS.

Стъпка 10: Благодаря за четенето

Надяваме се, че сте намерили тази инструкция за полезна. Бих искал да чуя какво бихте направили с този тип настройка. Моля, уведомете ме в коментарите по -долу или се присъединете към мен и куп други производители на моя сървър Discord, където можем да обсъдим тази тема или всяка друга, свързана с производителя, която имате, хората са наистина полезни там, така че това е чудесно място за окачване навън

Бих искал също да изразя огромна благодарност към моите спонсори от Github, които помагат да подкрепят това, което правя, наистина го оценявам. Ако не знаете, Github съвпадат със спонсорството за първата година, така че ако направите спонсорство, те ще го сравнят на 100% през следващите няколко месеца.

Благодаря за четенето!

Препоръчано: