Автор Тема: Ардуино (честотно разделяне)  (Прочетена 20633 пъти)

mitko29

  • Зомбиран Роботостроител
  • *****
  • Публикации: 210
    • Профил
Ардуино (честотно разделяне)
« -: Март 31, 2011, 06:58:37 pm »
Здравейте,днес се сетих за проекта си преди време с цвето музика с един усилвател и си помислих дали той може да бъде осъвършенстван а ето и какво имам предвид:

Възможно ли е с ардуино да отделям честотите(честотна лента) например на музиката и при определена честота било то ниска или висока да светвам дадено диодче, като по този начин да направя цвето музиката по реалистична ?
Димитър Иванов, гр. Бургас, 17г.
skype: eeeeee5612

anio

  • Бил знаел какво е Мехатроника!
  • *****
  • Публикации: 110
    • Профил
Ардуино (честотно разделяне)
« Отговор #1 -: Март 31, 2011, 09:18:31 pm »
Нещо такова ли търсиш http://home.comet.bg/datasheets/lm567cn.pdf
Ангел Колев, София

mitko29

  • Зомбиран Роботостроител
  • *****
  • Публикации: 210
    • Профил
Ардуино (честотно разделяне)
« Отговор #2 -: Април 01, 2011, 07:49:39 pm »
Цитат на: "anio"
Нещо такова ли търсиш http://home.comet.bg/datasheets/lm567cn.pdf


А нещо примерно като схема може ли да ми дадеш,защото не разбирам как това ще ми свърши работа ?

П.П:Иначе нека да кажа какво ми трябва точно –
В момента ползвам предусилвател,който е свързан към аналоговият пин на ардуино и като го сложа да кажем до телевизора и пусна музика ми връща стойности 100,300,500,800,1024 и така нататъка,и зависи от стойноста която е получена казва на еди си кой пин да светне диода.
Сега питам дали има начин да направя така че ардуино да разбира кога в песента крещят,викат,просто пеят или нещо съвсем спокойно ?
Димитър Иванов, гр. Бургас, 17г.
skype: eeeeee5612

westony

  • Заклет Роботостроител
  • *****
  • Публикации: 237
    • Профил
    • http://westony.blogspot.com
Ардуино (честотно разделяне)
« Отговор #3 -: Април 02, 2011, 12:48:12 pm »
Мисля, че това ще ти е от полза http://www.youtube.com/watch?v=2D1hQq77dlU


Поздрави!
Технически Университет - София , ФА, III курс.
Мартин, 21 години
   Ако е лесно няма да е интересно!

Един не по-различен блог
Google+

mitko29

  • Зомбиран Роботостроител
  • *****
  • Публикации: 210
    • Профил
Ардуино (честотно разделяне)
« Отговор #4 -: Април 02, 2011, 01:37:03 pm »
Еми всъщност оказа се полезно - с негова помощ намерих това :
http://jarv.org/blinkm-music.shtml
Димитър Иванов, гр. Бургас, 17г.
skype: eeeeee5612

Ivo hobby

  • Робо-Новак
  • *****
  • Публикации: 28
    • Профил
Ардуино (честотно разделяне)
« Отговор #5 -: Април 03, 2011, 01:31:43 pm »
Ако правилно те разбирам искаш да постигнеш ефекта на цветомузиката, само че реализиран с Arduino.

За мен също е много интересно ако успеете да го реализирате.

Това което си спомням от ТС (Теория на сигналите) е, че са необходими няколко неща:
1. входния сигнал да постъпи в Arduino само положителен. По принцип от аудио изход излиза двуполярен.
2. да можем да четем стойностите на аналоговия вход на точно определен интервал. И четенията да са поне 3 пъти по-бързо от най-високата честота, която искаме да регистрираме.
3. подава получената поредица от стойности на цифрови филтри.
4. Ако имаме три цифрови филтъра нискочестотен, средно и високо-честотен, от стойностите които ще връщат цифровите филтри, можеш да определиш дали да запалиш съответния светодиод.

Ето какво намерих по темата:
по т.1. ще трябва малко електроника за преобразуване на нивото. Обикновено то е <2V.
Ардуино може да се пренастрои, така че аналоговите входове да работят от 0 до 1.1V, без допълнителни елементи. Стандартно е 0-5V. С външен стабилизатор може и на произволно напрежение между 0-5V, което се подава на AREF входа.
Още нещо задължително при цветомузиките е така нарчения компресор на динамика. Без него стойностите се изменят твърде бързо и мигането е по-скоро трептене. Мисля, че може да се реализира и програмно.

по т.2. не съм много запознат с Ардуино, но по принцип може да се програмира да чете автоматично една след друга стойностите на аналоговия вход. Което мисля че ще свърши работа за четене на точно определен интервал.
Относно скоростта на четене. Ардуино чете за около 100uSec една стойност (еквивалент на 10kHz). Kоето ще рече, че най-много до около 3-5kHz ще могат да се засекат от цифровите филтри.
Има възможност да се преконфигурира, така че да чете до около 80000 стойности/сек с по-ниска точност, което би трябвало да свърши работа.

по т.3. вместо цифрови филтри, хората са дали направо библиотека за разлагане на сигнала до съставните му честоти. Нарича се Бързо преобразуване на Фурие.
Ето линка http://didier.longueville.free.fr/arduinoos/?p=1022
Изхода от тази функция ти показва всяка честота с каква амплитуда участва във входния сигнал.
Като сумираш стойностите например <500Hz и ако резултата надвишава зададена стойност, диода светва.

Това е мноооого накратко описано  :shock: . Ако тръгнеш да го правиш ще помагаме и по-детайлно.
Иво, София, 42г.

mitko29

  • Зомбиран Роботостроител
  • *****
  • Публикации: 210
    • Профил
Ардуино (честотно разделяне)
« Отговор #6 -: Април 03, 2011, 07:33:55 pm »
Да това е интересно наистина доста на дълбока трябва да влезе,за да реализира подобно нещо.
Главно ми се искаше да направя не просто да уловя да кажем 300 и да си светна диода, а да го направя да свети с такт в музиката - сега открих,че с помощта на TIP31 (NPN) мога да постигна това.
Главно за момента идеята е да го използвам в схема с усилвателят , като по този начин ще ми бъде по лесно да наглася стойностите който връща и да го оставя да си прави магията нататък.  
Тоест ако усилвателя ми върне около 500 до 600 като стойност ще задам примерно TIP31 да светва с такта на музиката само зеленият диод , като така ще ги сменям зависимост от стойността която връща усилвателя и ще сменям диодите.
Мисля,че с адаптер от 12 волта през този транзистор а най-вече и през ардуино ще мога да запаля последователно едно 4 диода.

Иначе може би някъде след 12 април,ще започна по обстойно търсене - за това с филтрите(а пък и имам един доста запален даскал по електроника,който със сигурност ще ми бъде от полза за това начинание.)
Димитър Иванов, гр. Бургас, 17г.
skype: eeeeee5612

viko

  • Бил знаел какво е Мехатроника!
  • *****
  • Публикации: 113
    • Профил
Ардуино (честотно разделяне)
« Отговор #7 -: Април 03, 2011, 07:47:19 pm »
Аз се сещам за един вариант, но няма да е най-прецизен, нито най-добър, като изпълнение.

Входящият сигнал минава през преобразувател честота-напрежение. После през АЦП-то и при различно напрежение пуска различни светодиоди.

Това само най-общо казано.
Виктор.

Dimitrov

  • Бил знаел какво е Мехатроника!
  • *****
  • Публикации: 141
    • Профил
Ардуино (честотно разделяне)
« Отговор #8 -: Април 06, 2011, 09:34:04 pm »
Ето го решението тук   много проста схема и доста ефективна лично съм я пробвал само че вместо тиристори ползвах MOS транзистори.
Георги Димитров / Стара Загора

Да пишеш на български с латиница е все едно да пишеш с лайна на стената - чете се, но не е красиво

Ivo hobby

  • Робо-Новак
  • *****
  • Публикации: 28
    • Профил
Ардуино (честотно разделяне)
« Отговор #9 -: Април 07, 2011, 08:41:10 am »
Цитат на: "viko"
...Входящият сигнал минава през преобразувател честота-напрежение. После през АЦП-то и при различно напрежение пуска различни светодиоди...
Мисля, че ще работи само за случаите когато се подава една честота. В случая с музиката, тя е смесица от няколко честоти. Не знам как точно ще реагира преобразувателя честота-напрежение.

Цитат на: "Dimitrov"
Ето го решението тук  ...

Това е аналоговата версия на цветомузика. т.е. няма процесор и сигналите не се обработват цифрово.
Колегата питаше за обработка с Ардуино. Напълно възможно е да се реализира и с Ардуино. Разликата е, че се заменят аналоговите филтри с цифрови.
Звучи сложно, но като гледам в света на Ардуино има много готови алгоритми, програми и цели системи, които могат доста да улеснят направата на цифрова цветомузика.
Иво, София, 42г.

Dimitrov

  • Бил знаел какво е Мехатроника!
  • *****
  • Публикации: 141
    • Профил
Ардуино (честотно разделяне)
« Отговор #10 -: Април 07, 2011, 04:43:12 pm »
Е че е аналогова спор няма  но всъщност не ми стана ясно  дали  иска да си направи цвето музика или   иска да трупа практика с Ардуино и да си уплътнява времето с полезни неща. Така че той решава  а  ние помагаме както можем   :-D
Георги Димитров / Стара Загора

Да пишеш на български с латиница е все едно да пишеш с лайна на стената - чете се, но не е красиво