USB Регулятор громкости
и Caps Lock LED
Я не первый человек, который пишит об устройствах для регулировки громкости USB, но тем не менее просто и дешево можно расширить различные другие функции, такие как:
- Mute, Play, Pause и различные другие мультимедийные кнопки
- Светодиоды клавиатуры, такие как Caps Lock, Scroll Lock и Num Lock
- кнопки запуска приложений, таких как браузер, электронная почта, калькулятор и т.д.
- Браузер навигации и другие кнопки управления приложениями
- кнопки Gamepad
- Системные кнопки для таких функций, как сон, спящий режим, Wake, Power Down
- Кнопки мыши и движения
и многое другое, при условии поддержки, предоставляемой вашей операционной системы.
Устройство основано на Arduino Pro Micro (5V версия). Другие ATMEGA устройства 32u4 также могут использоваться, но не на основе ATmega328, таких как Nano или Pro Mini.
Остальные части:
- Micro USB кабель
- Светодиоды (если требуется) и 330Ω резистор для каждого светодиода
- 1 кнопочный переключатель (или больше для дополнительных функций)
- Подключение провода, паяльник, припой, проволока для зачистки и фрезы и т.д.
Вы, возможно, заметили, что многие USB клавиатуры имеют мультимедийные клавиши, такие как громкость вверх и вниз, отключение звука, воспроизведение / пауза. Некоторые из них имеют ключи приложения, такие как электронная почта, браузер или калькулятор, а некоторые даже имеют системные клавиши, такие как сон и спящий режим. Обычные буквенно-цифровые клавиши со стрелками представляют скан-код, определяющий ключевую позицию. Поэтому я рассудил, что можно запрограммировать Arduino. Leonardo и Pro Micro могут эмулировать клавиатуру или мышь через USB порт. Но вскоре появилась загвоздка. Я быстро обнаружил, что библиотека Keyboard Arduino только позволяет отправлять найденные коды стандартной IBM PC клавиатуры. Мультимедийные коды системы включают в себя полностью отдельные наборы, которые не поддерживаются. Движения мыши и щелчки входят в набор библиотеки Arduino Mouse. Тем не менее, существует огромное множество функций, которые не реализуются Windows, или другими операционными системами.
Порывшись нашел библиотеку HID-Project, которая помогла в решении вопроса.
Я использовал коробку, она имеет размеры 50x50x20cm.Arduino и кнопочный переключатель смонтированы на листе stripboard подогнанного под коробку. (Кнопка необходима для сброса Arduino для программирования.). Некоторые провода используются для крепления Arduino. Светодиоды и резисторы смонтированы на второй части stripboard.
Далее вам необходимо скачать и установить Arduino IDE. В вашей папке Arduino (по умолчанию под Windows, это в папке Мои документы) создаем папку с именем VolumeCtrl. Скопируйте файл VolumeCtrl.ino в эту папку. Теперь запустите Arduino IDE и найдите эскиз VolumeCtrl в своем альбоме.
Теперь установливаем библиотеку HID-Project. Это легко:
Нажмите на эскиз - Включить библиотеку - Управление библиотеками. В поле Фильтр введите HID-Project. Это должно дать вам расширенные функции HID для Arduino. Нажмите на кнопку Установить. Вы также должны убедиться, что у вас установлено определение платы Pro Micro. Нажмите на Tools - Board - Board Manager. Проверьте, правильно ли уже показано SparkFun Pro Micro. Если нет, то в поле фильтра введите Pro Micro. Выбрать и установить пакет, который включает в себя SparkFun Pro Micro в списке поддерживаемых плат. Теперь, в разделе Инструменты , выберите SparkFun Pro Micro, и процессор ATMega32u4 (5V, 16МГц).
Примечание: если вы попытаетесь запрограммировать устройство подключив на неправильный борт, вы скорее всего , убьете загрузчик!
Есть 3 способа программирования Pro Micro, и, прежде чем приступить вы должны решить, какой вы собираетесь использовать:
- USB-программирования через USB-порт Pro Micro,
- ISP программирования с помощью программатора AVR ISP
- Программирование с использованием другого Arduino в качестве программатора ISP.
Они описаны в следующих шагах.
Программирование через MicroUSB порт Pro Micro, зависит от наличия рабочего загрузчика. Если вы уже убили его вам нужно будет использовать метод 2 или 3 (который также может быть использован для восстановления сломанного загрузчика). Подключите Pro Micro к USB-порту компьютера. На Arduino IDE, нажмите эскиз - Загрузить (не Загрузка с помощью программатора). Смотрите черную панель в нижней части IDE. При компиляции и компоновки завершения вы увидите, что сканирование портов COM ищет для Pro Micro. Сделайте двойное нажатие кнопки сброса. Затем он должен быть запрограммирован, с индикатором прогресса, состоящей из "#" символов. Затем устройство сбросится и начнет работать в качестве регулятора громкости.
Программирование USB зависит от наличия начального загрузчика предварительно установленого. ISP программирование, с другой стороны, использует специальную логику на самом чипе, так как загрузчик загружается производителем.
Подключите ISP к stripboard и Pro Micro следующим образом:
Pin ISP |
Pro Micro контактный |
|
1 |
12 |
MISO |
2 |
Vcc |
|
3 |
13 |
SCK |
4 |
11 |
MOSI |
5 |
10 |
RST |
6 |
Gnd |
В разделе Инструменты - программатор, необходимо выбрать тип программатора, который вы используете. В качестве альтернативы вы можете использовать другой Arduino, чтобы сделать ту же работу (метод 3). Это может быть дешевый Nano, с FTDI USB / последовательный адаптер. В среде IDE выберите в меню Файл - Примеры - ArduinoISP. Блок комментарий на передней части эскиза говорит вам, как подключить его. Это зависит от того, имеет ли ваш дополнительный Arduino заголовок ISP. Если нет, то вам придется раскомментировать строку
#ifdef USE_OLD_STYLE_WIRING
На Arduino используется для программирования,светодиод и 330Ω от каждого из выводов 7, 8 и 9 к земле. Они указывают на режим программирования, ошибки. Подключите другие контакты к ISP или непосредственно к Pro Micro.
Осмотрите эскиз VolumeCtrl. Функция кнопочный на кодирующем определяется как ROTARY_C. Вы можете определить дополнительные кнопки, если хотите таким же образом и использовать ту же логику, чтобы обнаружить нужную кнопку. Вместо линии Consumer.write (MEDIA_VOL_MUTE); Вы пишете подобную линию для выполнения требуемой функции.
В среде IDE выберите в меню Файл - Примеры - HID-проект для примеров, показывающих, как используются различные типы. Полный набор элементов управления для каждого типа приведен в файле заголовка, расположенной в библиотеках \ HID-Project \ SRC \ HID-интерфейсы в вашей папке Arduino (которая, как правило лежит в Мои документы).