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

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

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

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

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

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

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

 
Опции темы
Непрочитано 15.07.2013, 14:25  
vspvsp
Вид на жительство
 
Аватар для vspvsp
 
Регистрация: 30.10.2007
Адрес: Ростов-на-Дону
Сообщений: 285
Сказал спасибо: 23
Сказали Спасибо 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.RU
 
Регистрация: 16.02.2012
Сообщений: 441
Сказал спасибо: 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
Адрес: Ростов-на-Дону
Сообщений: 285
Сказал спасибо: 23
Сказали Спасибо 39 раз(а) в 33 сообщении(ях)
vspvsp на пути к лучшему
По умолчанию Re: Снова про цветомузыку

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

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

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

Цитата:
Идея же была про простейшие схемы
так схема и есть самая простейшая - микрофон прямо на АЦП.
Контроллер - тоже простейший, Мега8/88 стоит 1.2..1.5$. Мега48 за 1$ тоже потянет.
zöner вне форума  
Непрочитано 16.07.2013, 13:38  
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 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
Адрес: Ростов-на-Дону
Сообщений: 285
Сказал спасибо: 23
Сказали Спасибо 39 раз(а) в 33 сообщении(ях)
vspvsp на пути к лучшему
По умолчанию Re: Снова про цветомузыку

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

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

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

А если после фильтров поставить еще и дифцепь (выделить 1-ю производную), тогда такой способ вполне имеет право на жизнь. IMHO.
__________________
Выслушай и противную сторону, даже если она тебе и противна!..
Falconist вне форума  
Непрочитано 20.07.2013, 20:18  
кустомер
Почётный гражданин KAZUS.RU
 
Аватар для кустомер
 
Регистрация: 29.12.2009
Сообщений: 4,561
Сказал спасибо: 619
Сказали Спасибо 1,813 раз(а) в 974 сообщении(ях)
кустомер на пути к лучшему
По умолчанию 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, время: 22:33.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot