Двадцати четырех канальная светомузыка с USB управлением от ПК.

Требования: повторяющий данную конструкцию должен
1)иметь под рукой пк с установленной windows xp или windows7
с подключением к интернету
2)уметь работать с паяльным инструментом
3)уметь запрограммировать ATMEGA16 готовой программой (это очень просто)
4)уметь компилировать программу на С# (если потребуется что то изменить)
Найдя в интернете сайт об управлении портами и другими регистрами микроконтроллера ATMEGA16
http://microsin.ru/content/view/812/44/ у меня появилась идея сделать светомузыку.
Первое что необходимо — с сайта скачать архив 090617atmega16-Csharp-class.zip .
Если у вас windows7 не следует устанавливать драйвер из этого архива, какой драйвер и как установить рассказано чуть ниже.

Рис.1

Рис. 2 Ссылка на BASS.NET

Рис.3 Ссылка на загрузку bass.dll
При изготовлении светомузыки требуется запрограммировать микроконтроллер ATMEGA16 файлом fwsC#-mega16-16MHz.hex и установить биты конфигурации микроконтроллера для работы с кварцевым генератором.
Третий шаг- собирается схема , приведенная на рисунке 4
Рис 4 Принципиальная схема светомузыки
Чертеж печатной платы сделан в SprintLayot. Вид платы показан на рисунке 5. На каждый луч запаивается по 4 светодиода одинакового цвета свечения.
Суммарный ток для микроконтроллера зависит от типа корпуса
DC Current VCC and GND Pins……………………. 200.0 mA and 400.0 mA TQFP/MLF
Для корпуса PDIP максимальный ток 200 мили Ампер, следовательно резисторы R6-R29 ограничивают ток на светодиод до 7 мили Ампер. Если использовать корпус TQFT ток может быть в два раза больше, то есть 14 мили Ампер. От этого зависит яркость свечения. Максимальный ток USB2.0 500 мили Ампер.




Рис. 5 Вид печатной платы
Четвертое, после того как плата собрана и проверена на отсутствие ошибок необходимо правильно и лучше с первого раза установить драйвер.
Папку с установщиком драйверов необходимо загрузить http://sourceforge.net/projects/libusb-win32/files/
,кликнув мышкой по ссылке Download libusb-win32-bin-1.2.5.0.zip (913.8 kB).

Рис. 6 Ссылка на драйвер
Мною опробован и точно работает именно этот вариант установщика драйвера.
Для системы windows XP особых трудностей это не вызывает, просто указывается папка с драйвером и система сама устанавливает драйвер.
После подключения устройства к USB в windows7 появится сообщение, что драйвер на устройство не установлен. Запускам из папки \libusb-win32-bin-1.2.5.0\libusb-win32-bin-1.2.5.0\bin файл inf-wizard и выбираем устройство светомузыки.

Рис. 7

Рис. 8
После этого необходимо нажать Install Now

Рис. 9
Драйвер не имеет цифровой подписи поэтому будет предупреждение.

Рис. 10

Рис. 11
После этого в диспетчере устройств появляется драйвер для светомузыки, как видно на рисунке 12.

Рис. 12 Драйвер установленный для светомузыки на WINDOWS7
Можно проверить работоспособность исполнительного устройства светомузыки , запустив из архива 090617atmega16-Csharp-class.zip файл управления одним светодиодом LedTest.exe
При нажатии на кнопку должен включаться либо выключатся светодиод на порте B.
Пятое, необходимо включить STEREO MIX или подключить микрофон к ПК.
Эксперименты проводились с ПК где звуковые устройства REALTEK и SOUNDMAX.
REALTEK требует включения STEREOMIX, если необходимо брать звук который идет на колонки.
Для этого требуется кликнуть правой кнопкой мыши на изображении динамика в правом нижнем углу WINDOWS и перейти на вкладку Recording devices

Рис. 13 Recording devices
И там выбрать enable у stereo Mix.

Рис. 14 Включение Stereo Mix
Если этого не сделать программа управления светомузыки не сможет работать с «выходным” звуком , а будет работать со звуком с микрофона, или вообще выдаст ошибку о недоступности записывающего устройства.
Следует отметить что установка драйвера и включение Stereo Mix выполняются всего один раз, после выключения или перезагрузке ПК Stereo Mix останется включенным .
Если при подключении у вас установился драйвер и вы включили Stereo Mix , можно запустить программу управления светомузыкой .
При запуске программы должны на пару секунд зажечься и погаснуть все светодиоды .
Далее работа будет продолжена под музыку.
На каждую полосу частот выведен свой регулятор и так же имеется общий для всех регулятор чувствительности.
Все управление реализовано в программе, на языке C#express 2010.
Если необходимо вносить изменения в проект, то лучше всего создать проект заново и подключить bass.net для той версии windows, какая установлена на ПК.
Следует учитывать, что программа ,скомпилированная на windows7 не работает на windowsXP и наоборот.
В свойствах проекта необходимо изменить все, как показано на рисунке
Рис. 15 Настройка свойств проекта
На вкладке Build разрешить использование unsafe code ( это необходимо для работы класса atmega16)

Рис. 16 Настройка свойств проекта
На форму в конструкторе необходимо добавить таймер, выбрать интервал срабатывания 1.
Рис. 17 Настройка таймера
Далее добавить 24 элемента pictureBox .
Рис.18 Настройка pictureBox
Далее добавить 6 одинаковых trackBar и сделать для них настройки как показано на рисунке.
После добавить еще один trackBar и сделать для него настройки как показано на рисунке
Рис. 19 Настройка trackBar
Рис. 20 Настройка trackBar
Затем добавить компонент bass.net
Рис. 21 Подключение bass.net к проекту
После этого два раза кликнув левой кнопкой мыши на форме зайти в исполняемый код и скопировать весь код из проекта в свой проект.
Рис. 22 Код проекта
После этого необходимо в папки проекта bin\DEBUGи bin\RELEASE скопировать bass.dll.
Программа по таймеру получает частоты , используя библиотеку bass
Bass.BASS_ChannelGetData(_recHandle, buffer_bass, (int)BASSData.BASS_DATA_FFT4096);
После этого у нас есть массив Buffer_bass[2048] с значениями амплитуд для каждой частоты.
Сравнив значения с определенным уровнем выставленным на регуляторах , программа либо устанавливает бит порта либо сбрасывает его.
Для уменьшения количества передаваемой информации передаются 3 байта для каждого порта один раз при срабатывании таймера.
Ps Есть возможность программного включения Stereo Mix пока не реализовал.
EXE файл из папки EXE_win7_32_64 работает на windows7 professional -64 bit- English и на windows7 начальная- 32- bit- русская.
Но!!! Вместо светодиодов используем твердотельные реле – и они будут включать лампы 220 Вольт!
Собрал силовую версию на 220В и отдал в школу.




Видео работы 24-х канальной ЦМУ.
С уважением, Алексей Заплатин.
А если все небходимые файлы в одном месте выложить!? На каком-нибудь Яндекс диске ?