Урок 15.2 Управление громкостью Windows приложений при помощи энкодера
Опубликовано: 05.09.2018
Полиглот. Выучим английский за 16 часов! Урок №15 / Телеканал Культура
Данная статья, скорее не урок, а демонстрация возможностей устройств, изученных нами ранее. Речь пойдет о том, как управлять громкостью в Windows 7 (для Xp не актуально) при помощи энкодера, обрабатываемого AVR микроконтроллером.
Уроки игры на гитаре (15 урок) учимся играть совмещенный бой на примере Вот пуля просвистела/Звезда
Нам понадобятся знания из уроков про энкодер и передачу данных по UART. Код обработки энкодера взят из предыдущего урока. Выкинуто все, что касается lcd и добавлена обработка передачи данных по UART. Структурная схема выглядит так:
Из кода видно, что с каждым щелчком энкодера передается 2 символа. Если нужно увеличить громкость передается ‘1’, если уменьшить ‘0’ и признак окончания строки ‘\n’. Окончание строки передается, чтобы со стороны компьютера понимать, что передача строки закончена. Передача данных осуществляется преобразователем UART-USB на микросхеме FTDI, о которой я писал ранее.
Все самое сложное было в написании программы со стороны компьютера. Писал, как обычно, в Visual Studio на C#. С самого начала не везло с примерами. Дело в том, что для Xp рабочих примеров много, для Windows 7 все обстояло немного сложнее.
В конце концов проблема решилась. Долгие поиски привели меня к проекту под названием «Vista Core Audio API Master Volume Control», который представляет собой готовый регулятор звука. Дело осталось за малым, добавил в форму возможность приема данных по UART и все готово.
Результат:
Размышления привели меня к мыслям о различных вариациях. Например, регулировать можно не энкодером, а кнопками. Регулировать можно что угодно, в том числе запуск программ. Можно сделать некое подобие обыкновенной клавиатуры — передавать по UART данные, а прогой имитировать нажатие клавиш. Таким образом, простор для фантазий безграничен.
Проект для Atmega8 доступен здесь, исходники для VS2010 C# доступны тут .