USB регулятор громкости на энкодере и микроконтроллере AVR. Вот решил снова сотворить что-нибудь полезное и поделится со всеми кто в теме.. Этот регулятор при подключении к компу сразу определяется как мультимедийная клавиатура и начинает управлять громкостью системного микшера, а нажатие на крутилку заменяет кнопку Mute. После того как мне довелось по пользоваться подобным регулятором шедшим в комплекте с видюхой, теперь отошедшей на тот свет, я долго искал по магазинам готовое заводское устройство, но все поиски были тщетны.. Так прошло года 2, но тут я наткнулся на одну СТАТЕЙКУ где рассказывалось как же сделать такой регулятор. Итак, что понадобится: USB проводок (я взял от дохлой мышки); Энкодер с кнопкой; Чуток конденсаторов и резисторов; Микроконтроллер (взял какой был, ATtiny85); Ну и само собой то, чем его прошивать и на что это всё припаивать)) А в конце добавим корпус по вкусу)) Схема девайса:
Что хочется сказать по схеме.. Для стабильной работы лучше не выкидывать никаких деталей. По сравнению с оригинальной схемой добавлен резистор на вывод reset. На энкодер я ставил конденсаторы 0,1мкФ, с меньшими номиналами, бывало, проскакивали шаги при регулировке. Теперь о не приятном.. Обшарив сайт первоисточника я так и не нашёл как же устанавливать FUSE биты при программировании, после некоторых ковыряний со схожими устройствами добился коннекта с компом. В общем fuse вот так вот прошиваем: 0xС1 - low fuse byte 0xDF - high fuse byte 0xFF - ext fuse byte. Для тех кто не понял, идём например, сюда и преобразуем это в привычный вид. Теперь немного о процессе сборки. Как спаять платку по схеме думаю рассказывать не стоит, я вообще всё на макетке собрал, а вот корпус это главная проблема) За основу корпуса я взял цоколь от сгоревшей энергосберигайки, только отпилил всё лишнее, получилось именно то, что я хотел) а посмотрев как это выглядит в собранном виде, не удержался и сделал подсветку, а чтоб корпус не просвечивался, вспрыснул его серебристой краской. Получилось в начале как то так: То, что внутри: А так выглядит крашеный вариант в темноте: Прошивку с исходником качаем с первоисточника или от сюда. В качестве OSD оповещалки об уровне громкости была установлена программка Volume². Шаг регулировки громкости в winXP устанавливаем в таблице громкости, которая располагается в реестре здесь: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Multimedia\Audio\VolumeControl\ там же включаем эту самую таблицу поставив единичку в EnableVolumeTable. Теперь о самой таблице, она состоит из 8 столбцов шеснадцатиричных данных, громкость меняем во втором и шестом столбце, слева направо и сверху вниз, минимальное значение громкости соответствует 00, а максимальное FF. Надеюсь это кому-нибудь поможет. В win7 этого параметра нет, но там и так всё нормально работает без шаманства)
|