Оглавление:

Макро-клавиатура DIY Bluetooth: 10 шагов (с изображениями)
Макро-клавиатура DIY Bluetooth: 10 шагов (с изображениями)

Видео: Макро-клавиатура DIY Bluetooth: 10 шагов (с изображениями)

Видео: Макро-клавиатура DIY Bluetooth: 10 шагов (с изображениями)
Видео: Bluetooth клавиатура на ESP32. Lilygo T-Keyboard. 2024, Ноябрь
Anonim
Макро-клавиатура DIY Bluetooth
Макро-клавиатура DIY Bluetooth

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

Bluetooth HID (Human Interface Device) - это протокол, используемый обычной клавиатурой и мышью Bluetooth, и его можно эмулировать с помощью только ESP32, и это здорово!

При поставке некоторых плат для разработки ESP32 по цене менее 5 долларов * это действительно недорогой и простой способ создания беспроводных пользовательских клавиатур, таких как макроклавиатуры. Макроклавиатуры можно использовать для управления различными приложениями, такими как видеоредакторы или Photoshop, лично я использую свою для управления сценами в OBS, когда я делаю видео или транслирую потоковую передачу.

Сначала мы рассмотрим, как использовать библиотеку клавиатуры ESP32 HID, а затем я покажу вам, как я использовал ее для создания макроклавиатуры Bluetooth с питанием от батареи.

Запасы

  • Плата TinyPICO ESP32 Dev (может работать любой ESP32)
  • 4 * 4 матричная клавиатура *

Вам также понадобится липо-аккумулятор, я просто использовал случайный, который у меня лежал, поэтому я не могу подключиться к нему!

Если на вашем компьютере нет Bluetooth, вы можете использовать такой ключ:

Amazon.co.uk *:

Amazon.com *:

Amazon.de *:

* = Партнер

Шаг 1. Посмотрите видео

Image
Image

Я сделал видео, в котором рассказывается о том же, что и в этом руководстве, поэтому, если вам интересно, посмотрите его! Я также регулярно снимаю видеоролики о проектах ESP8266 и ESP32, так что, возможно, на моем канале есть другие видеоролики, которые могут вас заинтересовать!

Шаг 2. [Необязательно] Начало работы с ESP32

ESP32 - это микроконтроллеры, которые совместимы с Arduino IDE и поставляются с WiFi и Bluetooth. Они также довольно дешевы, поэтому являются очень полезными фишками для ваших проектов.

Вам нужно будет добавить определение платы ESP32 в вашу Arduino IDE, для этого вы можете выполнить шаги, перечисленные на странице проектов ESP32 Arduino на Github.

Шаг 3. Установка библиотеки клавиатуры ESP32 Ble

Установка библиотеки клавиатуры ESP32 Ble
Установка библиотеки клавиатуры ESP32 Ble
Установка библиотеки клавиатуры ESP32 Ble
Установка библиотеки клавиатуры ESP32 Ble

Можно использовать 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: Посмотрите на пример

Глядя на пример
Глядя на пример
Глядя на пример
Глядя на пример
Глядя на пример
Глядя на пример

После того, как это добавлено, мы можем открыть пример, который идет с ним. Это довольно хороший пример, поскольку он демонстрирует несколько разных вещей, которых можно достичь с помощью библиотеки, но я также добавлю немного больше деталей, которые, на мой взгляд, были бы полезны.

Вы можете получить доступ к примеру, перейдя в Файл -> Примеры -> Клавиатура ESP32 BLE -> SendKeyStrokes.

Настройка Bluetooth-соединения

В процессе настройки он запускает соединение Bluetooth, на этом этапе оно должно быть доступно для сопряжения на вашем устройстве.

bleKeyboard.begin ();

Внутри цикла он также проверяет, подключен ли он к устройству.

bleKeyboard.isConnected ()

Набор текста

Первое, что показывает пример, - это то, как вы можете набирать текст после подключения, он сначала набирает «Hello world», используя

bleKeyboard.print («Привет, мир»);

Нажатие одной кнопки

Затем он показывает, как вы можете «написать» клавишу возврата, это в основном имитация нажатия одной клавиши на эту кнопку.

bleKeyboard.write (KEY_RETURN);

Вы можете открыть файл библиотеки BleKeyboard.h, чтобы увидеть все ключи, которые определены таким образом. Вы также можете отправлять символы ascii, помещая их в одиночные запятые.

bleKeyboard.write ('А');

Медиа-ключи

Он также демонстрирует, как вы можете отправлять мультимедийные ключи, это похоже на то, как вы можете регулировать громкость или пропускать треки с помощью наушников 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 мсек!

Изменение имени устройства

По умолчанию имя устройства будет отображаться как «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: Код для макроклавиатуры

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

Код для скетча Macro Keypad можно найти на моем Github.

Помимо библиотеки BleKeyboard, которая была установлена на предыдущем шаге, вам также потребуется установить библиотеку для клавиатуры, вы можете сделать это, открыв диспетчер библиотек, перейдя в Sketch -> Include Library -> Manage Libraries.

Внутри диспетчера библиотеки найдите "клавиатура" и установите клавиатуру Марка Стэнли и Александра Бревига.

Одна конфигурация, которую вам может потребоваться, если вы используете ESP32, отличный от TinyPICO, - это контакты клавиатуры, они устанавливаются в массиве rowPins и colPins. Если смотреть на переднюю часть клавиатуры и начинать слева, первые 4 контакта являются выводами ряда, а вторые 4 - выводами столбца.

Как только это будет сделано, загрузите код на доску, и вы должны проверить на этом этапе, что он работает.

Шаг 8: Сделаем это беспроводным

Сделаем это беспроводным!
Сделаем это беспроводным!
Сделаем это беспроводным!
Сделаем это беспроводным!
Сделаем это беспроводным!
Сделаем это беспроводным!
Сделаем это беспроводным!
Сделаем это беспроводным!

Как упоминалось ранее, TinyPICO имеет встроенную схему для работы с Lipo, поэтому все, что нам нужно сделать, это подключить его. Он поставляется с разъемами JST, которые можно припаять ко дну, или вы можете использовать контакты Bat и GND, если хотите сделать это через контакты.

Если вы используете разъемы JST, пожалуйста, дважды проверьте полярность вашей батареи, соответствует TinyPICO, нет стандарта на то, как они должны быть подключены, поэтому есть большая вероятность, что ваша батарея может не соответствовать.

Перед использованием проверьте напряжение вашей липо-батареи, в здоровом тесте должно быть 3 В или выше, батарея, которую я обнаружил с правильным разъемом JST, показывала 0 В!

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

TinyPICO снижает энергопотребление при работе от батареи, не запитывая ни один из светодиодов, поэтому, даже если он не горит, надеюсь, это так! В будущем улучшением проекта может стать включение встроенного светодиода dotstar при запуске, чтобы вы знали, что он действительно включился, а может быть, снова при подключении. На данный момент вы можете проверить в меню Bluetooth вашей системы, что он включен и подключен нормально.

Шаг 9: Проверка

Испытание!
Испытание!

Давайте проверим, если я открою часть OBS с горячими клавишами, я могу нажимать на различные действия, чтобы записать комбинацию кнопок, которая будет управлять им, для этого мы можем просто нажать кнопку на нашей клавиатуре, и она обновится.

После того, как вы нажмете «Применить», вы не сможете использовать клавиатуру для управления сценой в OBS.

Шаг 10: Спасибо за чтение

Надеюсь, вы нашли это руководство полезным. Я хотел бы услышать о том, что бы вы сделали с таким типом установки. Пожалуйста, дайте мне знать в комментариях ниже или присоединитесь ко мне и к группе других производителей на моем сервере Discord, где мы можем обсудить эту тему или любого другого создателя, связанного с вашим, люди действительно полезны там, так что это отличное место, чтобы повесить из

Я также хотел бы поблагодарить моих спонсоров Github, которые помогают поддерживать то, что я делаю, я действительно ценю это. Если вы не знаете, Github подбирает спонсорство в течение первого года, поэтому, если вы сделаете спонсорство, они будут соответствовать ему на 100% в течение следующих нескольких месяцев.

Спасибо за прочтение!

Рекомендуемые: