Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

Электроника - это просто Теоретические и практические вопросы для начинающих электронщиков.

 
Опции темы

Снова про цветомузыку

Непрочитано 15.07.2013, 14:25  
vspvsp
Вид на жительство
 
Аватар для vspvsp
 
Регистрация: 30.10.2007
Адрес: Ростов-на-Дону
Сообщений: 281
Сказал спасибо: 19
Сказали Спасибо 39 раз(а) в 33 сообщении(ях)
vspvsp на пути к лучшему
По умолчанию Снова про цветомузыку

Недавно на форуме кто-то писал, что на простейших микроконтроллерах цветомузыку сделать невозможно - или спектр не успевает посчитать или даются ссылки на довольно сложные для освоения "с налёту" готовые библиотеки.

Предлагаю для затравки обсуждения или повторения "схему за час":

Картинку из единственного корпуса в Протеусе нарисовал для демонстрации вместе с простейшей программой.

Итак, вместо прикручивания фильтров и всяких БПФ предлагаю попользовать старинный метод примерного определения составляющих спектра сигнала путём подсчёта числа переходов через 0.

Программа просто измеряет длительность переходов и разбивает на группы с желаемой длительностью.

Далее количество накопленного сравниваем с установленными порогами (по вкусу) и зажигаем соответствующие лампочки.

Программу можно попробовать прямо в Протеусе прикрутив файл с подходящими частотами (прицепил) или музыкой.

Ругательства типа "идея - отстой" приветствуются, но только с предложениями по улучшению без сильного усложнения и с теоретическими выкладками!

Собственно вся программа умещается в десяток строчек:

#pragma interrupt_handler int0_isr:iv_INT0
void int0_isr(void)//пересечение нуля (в обеих направлениях, см. MCUCR бит 2 и 3)
{
cnt=TCNT1;//вычитали счётчик
TCNT1=0;//обнулим его, пусть дальше считает пока мы заняты
//делим длительности по диапазонам - выбираются по вкусу (взял 3 КГц, 1 КГц, 300 Гц разделы)

if(cnt‹160) {p1++;}//f›3k 1m/3000/2=160 - это число отсчётов на полпериода желаемой частоты
else if(cnt‹400) {p2++;}//1k‹f‹3k 1m/1000/2=500
else if(cnt‹1600) {p3++;}//300‹f‹1k 1m/300/2=1666
else {p4++;}//f‹300

zeroes++;//сколько пересечений уже
if(zeroes›50)//общее число перечечений нуля - влияет на скорость обновления состояния лампочек
{
PORTC=0;//сбрасываем выходы порта

//по вкусу расставляем пороги на составляющие спектра
if(p1›15)PORTC|= (1‹‹0);
if(p2›25)PORTC|= (1‹‹1);
if(p3›15)PORTC|= (1‹‹2);
if(p4›5)PORTC|= (1‹‹3);

p1=p2=p3=p4=0;//зануляем счетчики после использования
zeroes=0;
}

}
Вложения:
Тип файла: zip SndLight.ZIP (20.2 Кб, 33 просмотров)
Реклама:

Последний раз редактировалось vspvsp; 15.07.2013 в 19:58.
vspvsp вне форума  
Непрочитано 15.07.2013, 16:36  
zöner
Гражданин KAZUS.RUN
 
Регистрация: 16.02.2012
Сообщений: 440
Сказал спасибо: 89
Сказали Спасибо 735 раз(а) в 149 сообщении(ях)
zöner на пути к лучшему
По умолчанию Re: Снова про цветомузыку

Цитата:
Недавно на форуме кто-то писал, что на простейших микроконтроллерах цветомузыку сделать невозможно
возможно. Делал с этой библиотекой http://forum.arduino.cc/index.php/topic,38153.0.html (чуть оптимизировал).
На Мега8 с кварцем 16М до 12кГц спектр можно считать в реал-тайме, хотя для цветомузыки реал-тайм не особо нужен.
Микрофон цеплял прямо на вход АЦП.

Дополнительно сделал DC-block фильтр (устранение постоянного смещения), умножение на окно Хэмминга, и пиковый детектор (для ловли пиков ударных, и, автоподстройки усиления). Но это все тоже необязательно для цв.музыки.

Еще есть проект от Чена http://elm-chan.org/works/akilcd/report_e.html , но он на Асме, и по скорости получается почти то же.
На С можно перенести на любой контроллер.

Последний раз редактировалось zöner; 15.07.2013 в 16:43.
zöner вне форума  
Непрочитано 15.07.2013, 23:28  
vspvsp
Вид на жительство
 
Аватар для vspvsp
 
Регистрация: 30.10.2007
Адрес: Ростов-на-Дону
Сообщений: 281
Сказал спасибо: 19
Сказали Спасибо 39 раз(а) в 33 сообщении(ях)
vspvsp на пути к лучшему
По умолчанию Re: Снова про цветомузыку

Идея же была про простейшие схемы и алгоритмы дающие результат, похожий на правду!

А так да, в МК можно много запихнуть, но всё равно дядьку LFT сложно переплюнуть в выжимании соков из Атмег!
vspvsp вне форума  
Непрочитано 16.07.2013, 12:46  
Falconist
Супер-модератор
 
Аватар для Falconist
 
Регистрация: 08.09.2007
Адрес: Kyiv, Ukraine
Сообщений: 8,017
Сказал спасибо: 434
Сказали Спасибо 3,981 раз(а) в 1,714 сообщении(ях)
Falconist на пути к лучшему
По умолчанию Re: Снова про цветомузыку

Для простейшей "мигалки", наверное, подойдет. Если более серьезно, то надо обрабатывать экстремумы ("повороты" - "turns") сигнала. По причине того, что ВЧ компоненты (обертоны) обычно накладываются на основной сигнал.
__________________
Выслушай и противную сторону, даже если она тебе и противна!..
Falconist вне форума  
Непрочитано 16.07.2013, 13:06  
zöner
Гражданин KAZUS.RUN
 
Регистрация: 16.02.2012
Сообщений: 440
Сказал спасибо: 89
Сказали Спасибо 735 раз(а) в 149 сообщении(ях)
zöner на пути к лучшему
По умолчанию Re: Снова про цветомузыку

Цитата:
Идея же была про простейшие схемы
так схема и есть самая простейшая - микрофон прямо на АЦП.
Контроллер - тоже простейший, Мега8/88 стоит 1.2..1.5$. Мега48 за 1$ тоже потянет.
zöner вне форума  
Непрочитано 16.07.2013, 13:38  
tempora
Почётный гражданин KAZUS.RUN
 
Регистрация: 10.01.2007
Сообщений: 3,411
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Снова про цветомузыку

А зачем плодить одно и то же во многих экземплярах? Тем более, если это "одно и то же" выдающейся ценности не представляет...
Около года тому всё это уже было, вот "туда" и пишите.
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Непрочитано 16.07.2013, 13:44  
vspvsp
Вид на жительство
 
Аватар для vspvsp
 
Регистрация: 30.10.2007
Адрес: Ростов-на-Дону
Сообщений: 281
Сказал спасибо: 19
Сказали Спасибо 39 раз(а) в 33 сообщении(ях)
vspvsp на пути к лучшему
По умолчанию Re: Снова про цветомузыку

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

Ну и схему надо не сильно сложную, чтобы результат можно было получить в течение нескольких часов-дня, а то интерес иссякнет!
vspvsp вне форума  
Непрочитано 20.07.2013, 19:35  
кустомер
Почётный гражданин KAZUS.RUN
 
Аватар для кустомер
 
Регистрация: 29.12.2009
Сообщений: 4,381
Сказал спасибо: 608
Сказали Спасибо 1,721 раз(а) в 919 сообщении(ях)
кустомер на пути к лучшему
По умолчанию Re: Снова про цветомузыку

Предлагаю сделать так.
Как делали когда-то в старину (сам грешил.. эхххх...). Делим сигнал простыми емкостями на три полосы: "ударник", "средние","высокие", и подаем это на чисто цифровые входы, т.е. в каждом считаем число переходов через нейтраль.
Три канала дают нам возможность отлавливать гармоники без Фурье.
Если хочется, медленную огибающую можно подать на АЦП и проанализировать общую амплитуду и динамические параметры.
Аппаратно - да, некоторый огород, зато программно - упрощается до стиля начинающего
__________________
оставил форум, защищая свою честь и достоинство.
кустомер вне форума  
Непрочитано 20.07.2013, 20:05  
Falconist
Супер-модератор
 
Аватар для Falconist
 
Регистрация: 08.09.2007
Адрес: Kyiv, Ukraine
Сообщений: 8,017
Сказал спасибо: 434
Сказали Спасибо 3,981 раз(а) в 1,714 сообщении(ях)
Falconist на пути к лучшему
По умолчанию Re: Снова про цветомузыку

А если после фильтров поставить еще и дифцепь (выделить 1-ю производную), тогда такой способ вполне имеет право на жизнь. IMHO.
__________________
Выслушай и противную сторону, даже если она тебе и противна!..
Falconist вне форума  
Непрочитано 20.07.2013, 20:18  
кустомер
Почётный гражданин KAZUS.RUN
 
Аватар для кустомер
 
Регистрация: 29.12.2009
Сообщений: 4,381
Сказал спасибо: 608
Сказали Спасибо 1,721 раз(а) в 919 сообщении(ях)
кустомер на пути к лучшему
По умолчанию Re: Снова про цветомузыку

Зачем? (Не уловил, в чем выигрыш.)
__________________
оставил форум, защищая свою честь и достоинство.
кустомер вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Решено] Про Эфир и наш Мир DmitrijAN Отвлекитесь, эмбеддеры! 218 25.01.2008 14:39
[Решено] Про статолет DmitrijAN Отвлекитесь, эмбеддеры! 4 03.01.2008 00:55
про транзистор С5802 ndreich Информация по радиокомпонентам 15 14.11.2007 12:06
[Решено] И СНОВА ПРО ЛАЗЕРЫ... Гость Источники питания и свет 17 06.11.2007 12:52


Часовой пояс GMT +4, время: 01:05.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.