Здравствуйте, уважаемые читатели. Сегодня я расскажу, как я делал внешний регулятор громкости для компьютера. Устройство подключается к USB-порту компьютера, определяется как стандартное HID-устройство, драйвера устанавливать не нужно. При вращении ручки регулируется громкость, при нажатии происходит приглушение звука. За подробностями прошу под кат…
Предисловие
Девас был сделан чисто из спортивного интереса, просто захотелось сделать такую поделку. В основе устройства энкодер и Digispark — небольшая Arduino-совместимая платка от Digistump на базе микроконтроллера Attiny85. Есть платы c разъемом микро-USB, я использовал вариант с обычным разъемом USB типа А,
ссылка:
Ну и выше названный инкрементальный энкодер с кнопкой,
ссылка:
Схема устройства
Красный и зеленый провод это кнопка энкодера, замыкается при нажатии на ручку. Синий, черный и коричневый это выход энкодера для отслеживания вращения ручки.
Программная часть
Для работы устройства необходимо прошить микроконтроллер, я использовал готовое решение от
Adafruit.
1. Первым делом нужно скачать драйвера для нашей платы Digispark —
прямая ссылка
2. Устанавливаем Arduino IDE (я использовал версию 1.6.7) и добавляем ссылку для менеджера плат, в менеджере плат скачиваем «Digistump AVR Boards» и выбираем плату «Digispark (Default — 16.5mhz)». Подробная инструкция как это сделать в
Digistump Wiki
3. Скачиваем библиотеку
Adafruit-Trinket-USB. Из скачанного архива нам нужна папка «TrinketHidCombo», добавляем её в Arduino IDE — копируем в «C:\Program Files (x86)\Arduino\libraries».
Все готово для прошивки нашей платы, Digispark прошивается немного не так как остальные Arduino платы.
Открываем
TrinketVolumeKnobPlus.ino, путь размещения — C:\Program Files (x86)\Arduino\libraries\TrinketHidCombo\examples\TrinketVolumeKnobPlus\
Нажимаем «Загрузка», скетч скомпилируется и появится приглашение для подключения Digispark:
Вставляем Digispark в USB порт и ожидаем завершения загрузки. По окончании через несколько секунд Digispark переподлючится уже как HID-устройство ввода.
Схема заработала сразу, теперь при вращении ручки энкодера против часовой стрелки уменьшается громкость, а при вращении по часовой увеличивается. При нажатии отключается звук, если нажать еще раз включается обратно.
В данном устройстве программное обеспечение эмулирует нажатие мультимедийных клавиш клавиатуры:
• уменьшить громкость, код:
TrinketHidCombo.pressMultimediaKey(MMKEY_VOL_DOWN)
• увеличить громкость, код:
TrinketHidCombo.pressMultimediaKey(MMKEY_VOL_UP)
• приглушение звука, код:
TrinketHidCombo.pressMultimediaKey(MMKEY_MUTE)
Теоретически можно эмулировать любые клавиши клавиатуры, список клавиш можно посмотреть в библиотеке
TrinketHidCombo.h
К сожалению я не сделал фото собранного устройства на макетной плате.
Убедившись что всё работает как задумано, нужно делать самое сложное — корпус.
Печатная плата и корпус
Решил сделать устройство в цилиндрическом корпусе с большой «крутилкой». Из массива бука выточил заготовку под корпус.
Такого же диаметра из алюминия выточил ручку для энкодера.
По размерам внутреннего диаметра деревяной заготовки нарисовал плату в Sprint-Layout
Ссылка для скачивания —
тут
С помощью ЛУТ изготовил плату
Установил энкодер и разъём USB (выбрал USB типа B для надежности), у платки Digispark немного обрезал «разъем» и припаял ее к основной плате. К энкодеру подключил Digispark проводками.
Для того что бы ровно закрепить плату в корпусе, с обратной стороны приклеил шайбы под крепежными отверстиями.
В деревяном корпусе вырезал прямоугольное отверстие для разъёма USB типа B. Это оказалось самым трудоёмким процессом, корпус относительно мал, пришлось максимально аккуратно работать. После этого дерево обработал льняным маслом
Саморезами закрепил внутренности в корпусе
Энкодер немного «гулял» внутри корпуса, чтобы его зафиксировать изготовил из текстолита такую пластину
Пластина надевается на ось энкодера, фиксируется двумя гайками, её размеры точно по внутреннему диаметру корпуса. Теперь энкодер сидит как влитой
Осталось одеть большую алюминиевую «крутилку»
Демонстрация работы устройства
Вместо эпилога
Получилась симпатичная поделка, свой интерес я удовлетворил, пойдет на подарок племяннику, он такие штуки любит. Кстати девайс работает также с андроид устройствами, у кого в автомобиле андроид магнитола, можно сделать для неё подобный выносной регулятор громкости.
Всем спасибо за внимание.
Переделал на arduinoPRO(atmega32u4) с модифицированной библиотекой HID + WiFi ESP8266 + приложение под Android через AppInvertor, еще добавил ИК светодиод.
Так гораздо удобнее, т.к. устройство всегда готово принимать команды по сети, к тому же можно с любого браузера управлять(мне пригодилось только для отладки)
Функциональность:
— можно регулировать звук через приложение, можно через энкодер. Через энкодер не понравилось, то шаги пропускает, то пару шагов не в ту сторону пробегает. Там странная история описывать не буду.
— можно включать/выключать монитор по ИК каналу(предварительно надо считать код посылки от пульта для своей техники)
— добавил мультимедийные кнопки Prev, Next, Play/Pause в приложение. C Play/Pause всё плохо, т.к. для работы с youtube поставил расширение в Хром, если несколько вкладок с контентом что можно запустить, то при нажатии Play/Pause срабатывает сразу для всех вкладок. Надо переделать на пробел. Лень ))
Корпус на 3D принтере, одна из первых распечаток на свежесобранном принтере, посему по виду жуткое гуро.
Хотел выложить проект в открытый доступ, но всякие мелкие особенности моей реализации потребовали слишком много времени для доводки что бы повторить без проблем. Поделка на публикацию не тянет, а бложек не веду. Поэтому пользуюсь сам и не делюсь )))
А после того как увидел красоту автора поста, то моя поделка напоминает стаканчик от йогурта в который насыпали деталек и все обильно залили термоклеем, а в конце примотали usb-кабель лейкопластырем для пяток.
bitbucket.org/Kybb/wifi_hid_ir/
5 за изготовление корпуса! А залить компаундом не вариант?
А я вижу смысл :)
Еще есть минимум Linux, MacOS, Android, iOS.
p.s предрекаю картинку с троллейбусом :)
Это подарок любому, хоть сейчас в производство!
Вот только у меня к корпусу ДУ с пультом шло с люминисцентным дисплеем.Всё с пульта управляется, в том числе вкл. и выкл.ПК.
21 век вроде на дворе…
Надо позиционировать как эксклюзивную дизайнерскую вещь ручной работы. Для аудиофилов, ценителей латуни и т.п. )
за те же деньги.
Имел честь в свое время уничтожить кучу фирменных Майкрософтовых шарикомышей (еще COM-овских) — таки-даже в то время шнур к плате через разъем крепился
Куча USB3-хабов имеют паяные хвосты. Внешние диски, боксы под 2,5 диски, сканеры, картридеры. И много чего еще USB2 и USB3 — имеет паяный хвост…
На фото — «тыл» веб-камеры Microsoft LifeCam Cinema с интерфейсом USB2
А как всем известно — Майкрософт была одним из участников создания спецификации USB2.
Или — что положено
ЮпитеруМайкрософт-у — не положено китайцам? :-)Но по факту — на него положили болт с первых же дней :-)
И проблем от его отсутствия особых и нет
а там внутре разъём…
и ОП, стандарт соблюдён.
не выкручивайся, не в военкомате ©. если стандарт предписывает паять — значит паять. а где будет разъемное соединение — начхать, если оно есть.
Автору- моё рукопожатие и дальнейшего изобретательства… ЗдОрово! Спасибо.
griffintechnology.com/powermate-usb-classic-aluminum
а для подключения наушников / гарнутур / колонок.
Странный ЛУТ. Я рейсфедером ровнее рисовал )))
Девайс конечно бесполезный (как для меня), но мега симпатишный!
Надо делать!
P.S. китайцы делают большую, плюшевую кнопку Enter и продают за бешеные деньги
ru.aliexpress.com/item/Creative-Hand-Pillows-USB-Big-Enter-Key-Computer-Large-Enter-key-Any-Vent-Pillows-Button-Desktop/32833927683.html
[«им» подобная попытка последовать — считается:]
А так громкость лучше крутить аналоговым переменником на УНЧ
(надо лишь уложить всё это в оставшиеся неиспользованными 2к;)
Есть же в этом мире нормальные люди которые делают полезные вещи, а не выкладывают обзор на 1000-й китайский фонарик!
— При его подключении, соседние порты USB не сваливаются в режим USB 1.0, на котором регулятор работает?
После подключения секунд 5 надо было ждать пока загрузчик отработает.
тактильно, наверно, очень хорош.
Китайцы делают подобное в разных вариациях, но не так хорошо
Вещь эта очень удобная. У самого стоит регулятор звука от логитеч/крутилка — пластмассовый.
Поддерживаю тех, кто сказал, что эту весч можно поставить на мелкий поток и успешно продавать на заказ.
Тоже делал такое, но не люблю оверхэд, поэтому ваял сам на VUSB.
Режимы такие:
Крутилка влево/вправо — громкость, если крутануть резко — x3 шаг
Нажатие — выключение динамиков
Нажатие и удержание — громкость 50 процентов
Двойное нажатие — режим работы с музыкой,
в нем:
Крутилка — предыдущий / следующий трэк
Нажатие — играть / пауза
Двойное нажатие — выход в режим громкости
Стоит еще светик индикации режима.
50 процентов делал так — смотрел сколько шагов у громкости всего, делал их в минус, затем прибавлять их кол-во / 2
Работает LMS на апельсинке. Было бы очень в тему.
Немножко доработать, добавить подсветку, как у Edifier s2000v например:
Или лед подсветку внутри, что бы вечером не искать крутилку в темноте:
* выточил бы из бука грубо два цилиндра
* склеил бы их бутербродом, в середину бы всунул лист оргстекла (например, от коробочки CD)
* выточил бы финишный цилиндр, оргстекло бы при этом обточилось заподлицо с деревом и получило матовую поверхность
Таким образом, внутри можно было бы вставить светодиод (например, Neopixel) и играться цветовой индикацией. Свечение через тонкую прорезь смотрится очень стильно.
www.tcelectronic.com/Categories/Tcelectronic/Computer-Audio/Accessories/LEVEL-PILOT/p/P0D71
Очень просто и профессионально-надежно. Пользуюсь больше 10 лет.
Я уж не говорю, про то, что делать с XLR на столе у компьютера.
Работать, если это работа. Или серьезное хобби. :)
Все аналогичные готовые устройства заточены под регулировку громкости, может есть вариант перепрошить назначение скролла?
Год назад покупал клавиатурную матрицу (6x6 или что-то вроде того) и на каждую кнопку вешал свой shotcut.
Название библиотеки не помню (могу поискать если нужно), но всё делалось буквально в пару кликов.
Смысл — нажатием на край крутилки листать треки.
Ну или чисто программно: зажал вниз + провернул крутилку и Preview / Next track. Так даже лучше будет так как ориентироваться по сторонам цилиндра не надо.
А микрокнопок от мертвых ноутов — мешок.
Еслиб я мог мечтать о такой, то хотел-бы её пониже, и шнур без торчащего штекера… Обрезал, впаял, через дырочку вывел… ))
Но автору — мегаРЕСПЕКТ!
Сложилось ощущение что кроме меня это нафиг никому не нужно.
это сколько числом?
но есть PowerMate Bluetooth
griffintechnology.com/products/audio/powermate-bluetooth
out of stock
нет не так, ЧТО ЭТО???
вы лилипут с маленькими ручками?
то что выше лечить нужно.
мало того скобочек наставили а шутку юмора не увидели…
может быть вы и «романтик» но вот что-то мне подсказывает что диагноз ещё и ваш.
вот сейчас сижу и думаю — давно хочется на пару-тройку каналов регулятор громкости и мьютить некоторые каналы + микрофон.
причём чтобы потоки брались из разных приложений — такое вытащить наружу нереально практически, и нужен полноценный микшерский пульт…
но понимаю что такое решение скорее есть, стоит правда скорее всего не одну сотню денег, и по правде, такое решение нужно паре человек.
нет но реально красиво)
осталось ещё туда засунуть ЦАП и простенький усилитель для наушников… стоп… такое уже есть.
Махнуть что ли в настольных бубнелках переменник на систему из обзора?
Задолбало каждые полгода-год их перепаивать :-)
Куда тянуться? — жмякнул на колесико и все — а дальше хошь — регулируй громкость (в режиме mute она вполне себе регулируется), хошь — просто жмякни и все восстановится.
Никаких углублений нафиг не надо — их удел — микшерские пульты — т.к. там они постоянно в работе и крутятся одним пальцем из-за этого и служат указателем позиции, которой в случае как здесь (энкодер) попросту не существует.
это дебелый ЮСБ кабель.
обычный микро-ЮСБ, но в тканевой оболочке — а дальше хочешь коричневый, хочешь жёлтый, какой хочешь в общем…
по поводу разъёма и переламывающегося провода решение простое и элегантное:
так как художества у меня ещё те, то лучше под кат…
тут надеюсь понятно что вид со стороны дна.
сразу три зайца минимум убивается
1. кабель подбирается нужной длины, от 20 см до 2 метров с приличным шагом 20, 50, 75, 100, 150, 200 см. нужного цвета/дизайна.
2. сзади не торчит блямбой огромный разъём который упирается во что-то и кабель который не гнётся не мешает и не стаскивает со стола.
3. переломить кабеля и выломать разъёма невозможно — разъём спрятан а из устройства выходит сразу кабель, который можно к тому же дополнительно защитить.
не пункт — но сильно компактнее получается устройство.
а ещё — такие кабеля есть у всех, и стоят обычно дешевле грязи.
P.S. я прекрасно понимаю преимущества Тип-B. но не в этом случае.
Клавиатура
А я оказывается уже читал Ваш пост на хабре, раз мне сейчас показывают часть каментов как новые.
Вот только разъем USB-B тут действительно великоват, лучше смотрелся бы USB-micro :)
А было бы удобно.
Нет, ну а собственно… а если у тебя 4 звуковых устройства в системе, чью громкость должен регулировать ОДИН регулятор? Все сразу? А если это не нужно пользователю, у него разное назначение каждой из карт…
Только я пилю наклонную панель под углом примерно 30 градусов к поверхности стола. На ней в верхней части диск энкодера высотой 5мм, а в нижней части три кнопки в ряд: назад, плей-пауза и вперёд.
Они такие коварные бывают, провода длинные разомкнутыми держать не стоит — в грозу там наводится ток, который в отсутствие сопротивления переходит в напряжение и когда пробъёт на соседний провод… пипец будет. У меня на 5 метрах собралось столько энергии что микросхему разломило пополам, а до неё было ещё защиты из двух стабилитронов, которые не успели.
Пластик остатки, переэкструзия была по первому слою, посему ручка не очень (дальше убавил), а на верхний корпус вообще закончилась нить, т.е. немного стенки не доходят до своего логического завершения. Ну и ладно, как тестовый вариант за глаза. Отверстия под световод залито соплями. Хвост от мышки припаян к USB A контактам. Надо думать что-то из липкого не дно и надо утяжелять. Сильно утяжелять… Следующая версия будет из норм пластика и со всеми недоработками текущего ) Спасибо за наводку )
тут не обязательны ферритовые кольца.
А то как я понимаю если прикинуться клавиатурой то можно эмулировать кнопки, а вот обратная связь.
Код или ссылку на инструкцию?)
У меня стойкое желание на таком джойстике сделать какой-то девайс для навигации в кад системе или каком Фотошопе. Но постоянно хочется или круто и с менюшками, или нафиг оно надо :( какой-то драйвер или софт писать придется что-ли…
т.е. взял от сюда и прикрутил вместо муты.
Писал для арды первый раз но должно сработать. Сама плата ещё в пути. Если есть ошибки, напишите или как сэмулировать Digispark ATTiny85 так как, чёт не нашёл. Кнопки я ещё поменяю (это так, для примера).