Программирование BASCOM
Меню сайта
Категории каталога
Мои статьи [113]
Наш опрос
Оцените мой сайт
Всего ответов: 1158
Главная » Статьи » Мои статьи

RGB_CMU
RGB_CMU


ВЕРСИЯ 1.

 сделал светомузыку из светодиодной RGB ленты. Убрал вывод на LCD индикатор, вместо него 8 RGB каналов. 

Видео зесь, правда звук тихий получился. 


Аналоговую входную часть оставил как есть, только использовал входы ADC4 и ADC5. 


Входные цепи в отличии от оригинала немного изменены - конденсаторы на входе АЦП стоят, и сопротивления, чтобы при отсутствии сигнала не наводился фон. Без конденсаторов, со 
средней точкой 2,5в у меня не получилось нормальной работы, каналы засвечивались.

На видео не используется восьмой канал, так как изначально я собирался сделать анализ спектра на BA3834, она должна разделять звук на 7 полос по очереди, но результат был плохой, разделение спектра вообще видно не было. Потом я занялся поиском алгоритма Фурье, и начал осваивать для этих целей Bascom, так как только на нём и на ассемблере можно было такое сваять, да ещё к тому же тут был готовый исходник. Тем более asm тяжёл для больших программ, а Bascom мне понравился, всё доступно и просто! До этого я пользовался Flowcode. Но восьмой канал есть в исходнике (на самые верхние частоты), просто у меня светодиодная ленточка отрезана на 7. Когда буду монтировать дома основательно, подключу все 8. Да, ещё забыл сказать, у светодиодной ленточки я просто вырезал края где общая + шинка идёт, и от каждого канала припаял отводы.

Исходник хорошо откомментирован, чтобы было понятно что, для чего и откуда.
Основной код по получению замеров АЦП, расчёту Фурье и вычислению уровней каналов оставлен без изменений.

Автоматическая регулировка чувствительности программная (меняется множитель на выходе DFT преобразования). 
Прерывания таймера 0 работают на динамическую развёртку каналов светодиодной ленты (предделитель 8). Частота обработки сигнала получается около 200 гц. Цвета 
каналов фиксированые, не придумал ещё как их менять в зависимости от музыки... 

Обьясню алгоритм работы АРУ:
Идёт счёт количества каналов где уровень сигнала < 6, когда количество в счётчике превышает 20 идёт увеличение уровня на 0,1 (на 10%)
То же самое на уменьшение, только счёт идёт когда уровень >8.

Реализация ШИМ 3Х8:
Шим реализован на подпрограмме обработки прерывания Pwm, которая включается по таймеру TMR0.
Переменная Tik, по которой контролируется ширина импульса ШИМ начинается с 16 и убавляется по началу подпрограммы. Когда Tik = 0, она снова сбрасывается на 16, выключаются 
выхода R,G,B и в порт D передаётся значение переменной Razv (динамическая развёртка по каналам, каналы последовательно переключаются с 1 по 8). 
Когда значение текущей яркости цвета текущего канала (R_out, G_out, B_out) сравнивается с переменной Tik, цветовой выход(R,G,B) отключается.
Резонный вопрос, почему у меня переменная идёт на убывание? Ответ: Если переменную сделать на возрастание, то прийдётся включать выход, а по сравниванию значений выключать. И 
при значении мощности = 0 светодиод будет включен на время нескольких тактов микроконтроллера, а если учесть что используются ещё и другие прерывания то и на большее время. 
Визуально это выглядит как слабое хаотичное мерцание каналов, при уменьшении переменной и включении выхода по сравнению  - такого нет. Я правда подозреваю что мощность будет не 
100%, но визуально это в отличие от мерцания не заметно. Чтобы переключать управление каналами сперва делается развёртка по каналам. Самый простой способ - значение переменной Razv начинается с 1 и умножается на 2 при каждом цикле переменной Tik. По достижению 256 - сбрасывается на 1. в двоичном коде это и получается последовательное переключение каналов порта D. Значение переменной Razv и пересчёт мощности следующих цветовых каналов развёртки происходит при значении переменной Tik = 1. Чтобы когда прийдёт пора переключиться на другой канал (Tik =0) всё было уже посчитано и подпрограмма обработки прерывания Pwm прошла быстрее.
 

Как появятся изменения в программе (что нибудь добавлю или усовершенствую) исходник сразу выложу.

При повторении с этого исходника всё должно заработать абсолютно сразу. 


ВЕРСИЯ 2.

Выкладываю изменённую версию ЦМУ. 
В архиве схема, исходник и hex.
Видео.


Как всегда тихий звук, не пишет у меня телефон видео с нормальным звуком. :((
Вернул на место 10-битные АЦП (ADC0 и ADC1), сделал среднюю точку и доработал польский алгоритм , помог очень MrShilov, спасибо ему! Частотный анализ стал намного лучше!
Место в программе освободил побольше.



Восьмой канал тоже убрал, не вижу в нём необходимости, под бегущие огни всё равно ресурсов не хватает...
Алгоритм работы АРУ немного поменялся (считается общая мощность по всем 7 каналам, затем сравнивается), исполнительное устройство - полевой транзистор с конденсатором на затворе. Экспериментальным путём подобрал такое время задержки, при котором на любой громкости нет плавания уровня (несколько секунд). Конденсатор либо заряжается (Pinb.4  =1) либо разряжается (Pinb.4 = 0), а если уровень в норме, то Pinb.4  работает как input. В паузе чувствительность повышается ( на Pinb.4. = 1). Полностью независимое от контроллера АРУ делать не стал, потому как сложнее и результат, я думаю, визуально хуже будет.

Цветовая гамма каждого канала зависит от переменной cvet, имеется 6 режимов:
1. примерно к-о-ж-з-г-с-ф и сдвиг цвета в каждом канале в зависимости от уровня канала
2. то же самое, только сдвиг больше
3. то же что п.1, только примерно ф-с-г-з-ж-о-к
4. то же что предыдущий, только сдвиг больше
5. все каналы одного цвета, цвет меняется в красную сторону в зависимости от НЧ, в зелёную от СЧ и в синюю от ВЧ, 
всего 4 канала: крайние 1 и 7 - НЧ, 2 и 6 СЧ, 3 и 5 - СЧ2, 4 - ВЧ.
6. Случайный цвет
При включении режим №1, при каждой паузе режим меняется, можно так же кнопкой. 

EEPROM пока не использовал. На данный момент занято в Atmega8 96%. Ещё есть небольшие но возможности.

В общем я чувствую, что чего то не хватает, и можно сделать покрасивее, но до середины января у меня времени больше не будет, так что пока выкладываю на чём остановился. Буду очень рад советам...



ВЕРСИЯ 2 strobo.

Выкладываю изменённую версию ЦМУ - исправлена схема входной части(там, где АРУ), добавлен режим стробоскопа - частота зависит от темпа НЧ. 
В архиве схема, исходник и hex.

ВЕРСИЯ 2а strobo+.
Новая прошивка - ШИМ с развёрткой  по цветам. Как я и предполагал, результат просто отличный. Мерцания не заметно вообще, яркость возросла ощутимо.
В архиве исходник и hex.

Равчев Николай.

От администрации сайта: 
Мы рады, что проект развивается и вы делитесь с обществом. Удачи вам в следующем году и новых успехов в цветомузыкостроении! 
В Новом году нужно Мегу 168 или 328 использовать, без изменения в схеме. Тогда будет где развернуться и можно многое добавить!

P.S.

Юрис cобрал и запустил RGB цму конструкцию и выслал фотки.
Выходного устройства пока никакого, пробовал по каналам одним RGB светодиодом. 









По выходным собрал линейку из таких диодов.




















ВЕРСИЯ 2b strobo+ .



По просьбе Юриса  доработал немного программу и добавил ещё одну кнопку: в режиме музыки - вкл/выкл авто смены режимов ЦМУ, а в режиме паузы - вкл/выкл еффектов паузы.  Также устранил некорректный вывод красного первого канала. Схема с добавленной кнопкой, исходник и hex в архиве.

Появилась печатная плата(проверена!). 
Элементы подписаны - смотрите всплывающую подсказку. Часть элементов - СМД, просто так было удобнее. Но можно переделать полностью под ДИП, основа есть.





Категория: Мои статьи | Добавил: bascom (06.12.2012) | Автор: Radan
Просмотров: 9830 | Комментарии: 83
Всего комментариев: 831 2 3 4 »
83  
очень красиво вот если каждому каналу добавить в верх низ расходящиеся лучи ну типа (на восьмой минуте ролика ) круто мигало бы


82  
Всё работает!Отвалился провод!Спасибо за классную схему!!!!

81  
Идите за обсуждением лучше сюда http://lightportal.at.ua/publ/rgb/rgb_cmu/17-1-0-69 (копия этой статьи на другом сайте Василия), я туда чаще захожу.

80  
При программировании фьюзов USB Basp(Pony Prog ни одной галки ) кристалл пропадает для программатора пишет "ошибка" пришлось параллельно перепрошивать от здоровой ATmega8! Кто-нибудь подскажет причину такой беды?На USBasp установлен кварц 12Мгц для внешнего генератора...

79  
Кристалл лочится при прошивке FUSES (Ни одной галки в Pony Prog...Как ставить фьюзы не известно...

77  
Уважаемые спецы ...Подскажите...Восьмой канал по схеме снимается с 11 ноги TD ,на печатной плате с 16 ,где правильно?Решил переделать печатную плату исходя из имеющихся в статье наработок на DIP ,ну соответственно исключить 8 канал т.к. он по сути отсутствует .Какой максимальный ток дает TD на канал (сколько светодиодов можно повесить?) стоит ли вводить второй корпус TD, ну скажем если использовать 10 светодиодов пиранья в канале?Ну если у кого есть переделанная окончательная плата DIP буду очень благодарен.Прибор привлёк ,жаль только как -то не завершён...,не доведён до конца...Сам не спец,поэтому прошу помощи .Спасибо!

76  
Здравствуйте, коллеги.
Автору устройства благодарность!
Некоторые мои соображения:
1. Конечно, функционал схемы надо использовать по максимуму. Вследствие этого 8-ой канал необходимо вернуть.
2. Режим "стробоскоп" исключить.
3. Включение режима в паузе необходимо сделать мягким, плавным.
4. При использовании линейного входа, необходимости в АРУ нет. При использовании микрофонного усилителя, в нем должено быть реализовано глубокое АРУ.
5. Кнопками надо регулировать не режимы, а плавность (скорость) переключения.
Предлагаю всем, кто заинтересовался данным устройством, подключиться к модификации программы.

75  
Новая конструкция тут http://lightportal.at.ua/publ/rgb/quot_aurora_borealis_quot_severnoe_sijanie/17-1-0-70

68  
Может, у автора какие новые наработки по конструкции? smile Ждём терпеливо, хмм, зачекрнуть. Ждём с нетерпением smile

69  
Вы правы, увлечённо занимаюсь новыми наработками... Правда в новой конструкции... А по поводу просьб по изменению прошивки извините, ещё руки не дошли, дело не в сложности что то изменить, а в том что нужно ведь после этого проверить, на это нужно время и желание. Но всё таки обещаю переключиться и доделать что наобещал.

70  
Желаю успехов в новых конструкциях! Не надо специально отрыватся для модернизации старой smile Я лично пока прошил версией ниже, где не было Стробо. Правда, мерцание диодов более заметно. Если не секрет, что намечаетса в новой разработке? Спасибо!

71  
Посоветовался с Василием, объясню в двух словах про новую СМУ. Будет 21 канальная тоже на RGB ленте,два микроконтроллера Мега8 и Мега 16 и ещё планируется плата индикации
на дисплее от Нокиа1100. В конструкции карта памяти CD для эффектов
бегущих огней (сами эффекты пишуться в "Блокноте"), пульт ДУ RC5,
энкодер для задания режимов без пульта. В самой СМУ алгоритм Аврора,
такое же DFT как в этой конструкции, режимы работы комбинированые. Пример некоторых планируемых режимов работы:
'0 - эффекты отключены, плавно зажигается белая подсветка
'1 - уровень каналов через DFT, цвет фиксированый
'2 - уровень каналов через DFT, цвет случайный
'3 - уровень каналов через DFT, цвет с алгоритма "Авроры"
'4 - уровни через DFT (1,21-НЧ и т.д.;11-ВЧ) цвет всех каналов одинаковый и зависит от уровней частотных составляющих
'5 - При превышении определённого уровня звукового канала (DFT) - включение выхода на полную мощность, цвет из алгоритма "Авроры"
'6 - белый стробоскоп, частота  определяется музыкой (компаратор)
'7 - цветной стробоскоп, частота  определяется музыкой (компаратор), цвет из алгоритма "Авроры" (НЧ канал)
'8 -
'9 -

'------------- использование карты памяти ----------------------------

'10 - уровень каналов через DFT, цвет с файлов эффектов
'11 - уровень каналов из файлов эффектов, цвет из алгоритма "Авроры"
'12 - уровень каналов из файлов эффектов, цвет всех каналов одинаковый и зависит от уровней частотных составляющих (как в "3")
'13 - уровень и цвет из файлов эффектов, темп смены эффектов определяется музыкой (компаратор)
'14 - только эффекты с карты памяти, случайный выбор
'15 - эффекты с карты памяти, последний по кругу
'16 -
'17 -

'----------------------- фон ----------------------------

'20 - постоянно включены все каналы, яркость и цвет регулируются с пульта
'21 - постоянно включены все каналы, яркость регулируются с пульта, цвет медленно меняется (быстро сменить можно с пульта) 
Потом посмотрим что ещё добавить, если у кого какие мысли есть - предлагайте.

72  
О да. Это что-то. Предлагаю название устройства: "ЧМНП" - "Чтоб' Мало Не Показалось"  biggrin Ну это конечно добрая шутка. Я позитивно ошеломнён новостями. Желаю чтобы всё получилось да и собственно я уверен, что получитса smile

73  
Одно размышление / пожелание. Когда конструкция очень многоканальная, как "Кошкин Глаз" и как эта 21-канальная конструкция будущего, появляетса (это я конечно о себе, субъективно) желание в режиме цветомузыки опции с меньшем числом каналов, цветов, как бы более дискретную картину цветового представления. Мне лично симпатизируют количества частотных каналов 4...6. Повторусь - конечно, только как одна из опций. У множества каналов и множества цветов своя привлекательность. 21 мало на что делитса поровну, но навеврное можно хитрить с неодинаковым количеством диодов на условный канал, скажем 4-4-5-4-4.

74  
Ну почему же не делится? На 3 и на 7.
Можно 3 канала(RGB) продублировать 7 раз, можно 7 каналов(Радуга) продублировать 3 раза. Я думаю, что это всё будет реализовано.

66  
Скажите, в схеме и программе ориентировка именно на +2,5 вольт, или половину питающего микросхемы? У меня там питание подаётса через диод Шотки, для защиты от меня же smile (от обратного включения), ну и половинка соответственно 2,38 вольт. Сейчас вспомнил, когда я делал конструкции "АВРОРА-1", в одном случае я ставил подстроечник там где на входе делитель 12кОм и 36кОм, чтобы в паузе "огоньки не ползали". Может тут похоже. Я приболел, нету сил экспериментировать сейчас sad

67  
Средняя точка вычисляется в программе автоматически, не особо важно сколько там 2,38 или 2,5. Выздоравливайте!

1-10 11-20 21-30 31-34
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа
Поиск
Друзья сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Copyright Radan Studio © 2017