24 канальная светомузыка с USB управлением

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


Требования:  повторяющий данную конструкцию должен
1)иметь под рукой пк с установленной windows xp или  windows7
с подключением к интернету
2)уметь работать с паяльным инструментом
3)уметь запрограммировать ATMEGA16  готовой программой (это очень просто)
4)уметь компилировать программу  на С# (если потребуется что то изменить)
Найдя в интернете сайт  об управлении портами и другими регистрами микроконтроллера ATMEGA16
http://microsin.ru/content/view/812/44/  у меня появилась идея сделать светомузыку.  
Первое что необходимо — с сайта  скачать архив  090617atmega16-Csharp-class.zip .
Если у вас windows7 не следует устанавливать драйвер из этого архива, какой драйвер и как установить рассказано чуть ниже.
 
Рис.1 
Второе — это скачать и установить библиотеку bass.net   и  скачать файл  bass.dll
Рис. 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-х канальной ЦМУ.
 С уважением, Алексей Заплатин.

Автор публикации

не в сети 5 дней

Radan

0
Комментарии: 890Публикации: 169Регистрация: 30-11--0001
Поделиться

Отправить ответ

Оставьте первый комментарий!

Войти с помощью: 
Подписаться на
Zavspecklass
Участник

А если все небходимые файлы в одном месте выложить!? На каком-нибудь Яндекс диске ?