USB регулятор громкости для ПК и не только


USB регулятор громкости для ПК и не только

Здравствуйте, уважаемые читатели. Сегодня я расскажу, как я делал внешний регулятор громкости для компьютера. Устройство подключается к USB-порту компьютера, определяется как стандартное HID-устройство, драйвера устанавливать не нужно. При вращении ручки регулируется громкость, при нажатии происходит приглушение звука. За подробностями прошу под кат…

Предисловие

Девас был сделан чисто из спортивного интереса, просто захотелось сделать такую поделку. В основе устройства энкодер и Digispark — небольшая Arduino-совместимая платка от Digistump на базе микроконтроллера Attiny85. Есть платы c разъемом микро-USB, я использовал вариант с обычным разъемом USB типа А, ссылка:

USB регулятор громкости для ПК и не только

Ну и выше названный инкрементальный энкодер с кнопкой, ссылка:

USB регулятор громкости для ПК и не только

Схема устройства

USB регулятор громкости для ПК и не только

Красный и зеленый провод это кнопка энкодера, замыкается при нажатии на ручку. Синий, черный и коричневый это выход энкодера для отслеживания вращения ручки.

Программная часть

Для работы устройства необходимо прошить микроконтроллер, я использовал готовое решение от Adafruit.

1. Первым делом нужно скачать драйвера для нашей платы Digispark — прямая ссылка

2. Устанавливаем Arduino IDE (я использовал версию 1.6.7) и добавляем ссылку для менеджера плат, в менеджере плат скачиваем «Digistump AVR Boards» и выбираем плату «Digispark (Default — 16.5mhz)». Подробная инструкция как это сделать в Digistump Wiki

USB регулятор громкости для ПК и не только

3. Скачиваем библиотеку Adafruit-Trinket-USB. Из скачанного архива нам нужна папка «TrinketHidCombo», добавляем её в Arduino IDE — копируем в «C:Program Files (x86)Arduinolibraries».

Все готово для прошивки нашей платы, Digispark прошивается немного не так как остальные Arduino платы.

Открываем TrinketVolumeKnobPlus.ino, путь размещения — C:Program Files (x86)ArduinolibrariesTrinketHidComboexamplesTrinketVolumeKnobPlus

Нажимаем «Загрузка», скетч скомпилируется и появится приглашение для подключения Digispark:

USB регулятор громкости для ПК и не только

Вставляем Digispark в USB порт и ожидаем завершения загрузки. По окончании через несколько секунд Digispark переподлючится уже как HID-устройство ввода.

USB регулятор громкости для ПК и не только

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

В данном устройстве программное обеспечение эмулирует нажатие мультимедийных клавиш клавиатуры:

• уменьшить громкость, код:

TrinketHidCombo.pressMultimediaKey(MMKEY_VOL_DOWN)

• увеличить громкость, код:

TrinketHidCombo.pressMultimediaKey(MMKEY_VOL_UP)

• приглушение звука, код:

TrinketHidCombo.pressMultimediaKey(MMKEY_MUTE)

Теоретически можно эмулировать любые клавиши клавиатуры, список клавиш можно посмотреть в библиотеке TrinketHidCombo.h

К сожалению я не сделал фото собранного устройства на макетной плате.

Убедившись что всё работает как задумано, нужно делать самое сложное — корпус.

Печатная плата и корпус

Решил сделать устройство в цилиндрическом корпусе с большой «крутилкой». Из массива бука выточил заготовку под корпус.

USB регулятор громкости для ПК и не только

Такого же диаметра из алюминия выточил ручку для энкодера.

USB регулятор громкости для ПК и не только

По размерам внутреннего диаметра деревяной заготовки нарисовал плату в Sprint-Layout

USB регулятор громкости для ПК и не толькоСсылка для скачивания — тут

С помощью ЛУТ изготовил плату

USB регулятор громкости для ПК и не только

Установил энкодер и разъём USB (выбрал USB типа B для надежности), у платки Digispark немного обрезал «разъем» и припаял ее к основной плате. К энкодеру подключил Digispark проводками.

USB регулятор громкости для ПК и не только

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

USB регулятор громкости для ПК и не только

В деревяном корпусе вырезал прямоугольное отверстие для разъёма USB типа B. Это оказалось самым трудоёмким процессом, корпус относительно мал, пришлось максимально аккуратно работать. После этого дерево обработал льняным маслом

USB регулятор громкости для ПК и не только

Саморезами закрепил внутренности в корпусе

USB регулятор громкости для ПК и не только

Энкодер немного «гулял» внутри корпуса, чтобы его зафиксировать изготовил из текстолита такую пластину

USB регулятор громкости для ПК и не только

Пластина надевается на ось энкодера, фиксируется двумя гайками, её размеры точно по внутреннему диаметру корпуса. Теперь энкодер сидит как влитой

USB регулятор громкости для ПК и не только

Осталось одеть большую алюминиевую «крутилку»

USB регулятор громкости для ПК и не только

Демонстрация работы устройства

USB регулятор громкости для ПК и не только

Вместо эпилога

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

USB регулятор громкости для ПК и не только

Всем спасибо за внимание.

Оцените статью