Ардуино как частотный разделитель

Тема в разделе "Arduino", создана пользователем лёха, 22 июн 2015.

  1. лёха

    лёха Частый гость

    Сообщения:
    67
    Симпатии:
    10
    Доброго времени суток уважаемые форумчане. Меня интересует частотный делитель на базе ардуины для цветомузыки нужно чтобы дуня выводила разные частоты на разные пины. частоты должны регулироваться пользователем (для лучшей настройки потребностей) и настраивать их не на определённую частоту а к примеру от 20кгц до 150кгц и так далее в сумме должны быть задействованы 3 пина. инпут по кабелю. Скажите возможно ли это реализовать и сколько это будет стоить (скетч)
     
  2. UL7AAjr

    UL7AAjr В доску свой

    Сообщения:
    1.915
    Симпатии:
    318
    Род занятий:
    инженер-программист
    Адрес:
    Алма-Ата
    Стандартной операцией выделения спектральных составляющих сигнала является преобразование Фурье. Не потянет ардуино столько интегралов вычислять в реальном времени.

    PS: хотя особая точность не нужна, можно попробовать быстрое преобразование. Самому писать не рекомендую, лучше готовые решения поискать:)
  3. лёха

    лёха Частый гость

    Сообщения:
    67
    Симпатии:
    10
    искал! не нашёл.
  4. Alex

    Alex В доску свой

    Сообщения:
    191
    Симпатии:
    13
  5. Catcatcat

    Catcatcat В доску свой

    Сообщения:
    10
    Симпатии:
    8
    Род занятий:
    embedded systems
    Адрес:
    Днепропетровск
    Рекомендую почитать http://elm-chan.org/works/akilcd/report_e.html
    [​IMG]
    атмел 8 бит тянет и еще как БПФ. Все сложные преобразования сделаны через таблицы и все работает на ура.
    radioengineer нравится это.
  6. UL7AAjr

    UL7AAjr В доску свой

    Сообщения:
    1.915
    Симпатии:
    318
    Род занятий:
    инженер-программист
    Адрес:
    Алма-Ата
    Эх... отстал значит я от жизни:)
  7. лёха

    лёха Частый гость

    Сообщения:
    67
    Симпатии:
    10
    чувствую себя лохом который даже поисковиком нормально не умеет пользоваться:penguin:
  8. radioengineer

    radioengineer Администратор Команда форума

    Сообщения:
    3.592
    Симпатии:
    357
    Адрес:
    Алматы
    :) ничего, я так себя часто чувствую. Если планируете делать сами с нашей помощью, то переведу тему обратно в раздел Arduino.
  9. лёха

    лёха Частый гость

    Сообщения:
    67
    Симпатии:
    10
    а вот и то что я искал
    ну конечно я с вами буду делать! с вами веселее и интереснее!;)
  10. лёха

    лёха Частый гость

    Сообщения:
    67
    Симпатии:
    10
    а это вообще нечто!
    ещё бы подсветку сделать.
    Buba_Chkhadze и UL7AAjr нравится это.
  11. radioengineer

    radioengineer Администратор Команда форума

    Сообщения:
    3.592
    Симпатии:
    357
    Адрес:
    Алматы
    Офигеть, это что пенопластовые шарики что ли?
  12. лёха

    лёха Частый гость

    Сообщения:
    67
    Симпатии:
    10
    ага, и куллеры от буков. дно я думаю металлическая сетка с мелкой ячеёй.
  13. лёха

    лёха Частый гость

    Сообщения:
    67
    Симпатии:
    10
    PHP:
    // Arduino pin numbers
    const int DO_pin 2;
    const 
    int AO_pin 0;
    int sound;
    int led1 8;
    int led2 9;
    int led3 10;
    int led4 11;
    int led5 12;



    void setup() {
      
    pinMode(DO_pinINPUT);
      
    pinMode(led1OUTPUT);
      
    pinMode(led2OUTPUT);
      
    pinMode(led3OUTPUT);
      
    pinMode(led4OUTPUT);
      
    pinMode(led5OUTPUT);
      
    Serial.begin(9600);
    }

    void loop() {

        if (
    sound 31) {
        
    digitalWrite(led1HIGH);
      }
        if (
    sound 31) {
        
    digitalWrite(led1LOW);
      }
        if (
    sound 35) {
        
    digitalWrite(led2HIGH);
      }
        if (
    sound 35) {
        
    digitalWrite(led2LOW);
      }
        if (
    sound 40) {
        
    digitalWrite(led3HIGH);
      }
        if (
    sound 40) {
        
    digitalWrite(led3LOW);
      }
        if (
    sound 45) {
        
    digitalWrite(led4HIGH);
      }
        if (
    sound 45) {
        
    digitalWrite(led4LOW);
      }
        if (
    sound 50) {
        
    digitalWrite(led5HIGH);
      }
        if (
    sound 50) {
        
    digitalWrite(led5LOW);
      }
      
    sound analogRead(AO_pin);
      
    Serial.print(digitalRead(DO_pin));
      
    Serial.print("-");
      
    Serial.println(analogRead(AO_pin));
    }
    этот код из первого видео здесь подключается микрофонный модуль (которого у меня нет) мне нужно подключить по кабелю напрямую от компа для этого код менять надо?

    есть ещё вот такой код здесь подключение через кабель
    PHP:
    /*
    FFT for LoL Shield v0.9
    by Andy Doro
    http://andydoro.com/

    based on FFT library and code from the Arduino forums and
    the Charlieplexing library for the LoL Shield.
    */

    #include Charliplexing.h
    #include fix_fft.h

    #define AUDIOPIN 5  // Аудиовход

    char im[128], data[128];
    char data_avgs[14];
    int i=0,val;


    void setup() {
    LedSign::Init();  //Инициализация LoL Shield
    }


    void loop() {

    for (
    i=0128i++){  val analogRead(AUDIOPIN);  data val;  im 0;  };

    fix_fft(data,im,7,0);

    for (
    i=0i64;i++){  data sqrt(data data im im);  // this gets the absolute value of the values in the array, so we're only dealing with positive numbers}; 
    // average bars together
    for (i=0i<14i++) {
    data_avgs data[i*4] + data[i*1] + data[i*2] + data[i*3];  // вычисляем среднее
    data_avgs map(data_avgs03009);  // делаем remap для LoL
    }
    // set LoLShield
    for (int x=014x++) {
    for (
    int y=09y++) {
    if (
    data_avgs[13-x]) { // 13-x reverses the bars so low to high frequences are represented from left to right.
    LedSign::Set(x,y,1);  // включаем LED
    } else {
    LedSign::Set(x,y,0);  // выключаем LED
    }
    }
    }
    }
    это сама тема http://cxem.net/arduino/arduino30.php
    Последнее редактирование модератором: 24 июн 2015
  14. radioengineer

    radioengineer Администратор Команда форума

    Сообщения:
    3.592
    Симпатии:
    357
    Адрес:
    Алматы
    В первом случае можно подключить напрямую, сделано тупо конечно, просто мерится уровень сигнала и от него загораются светодиоды, во втором случае уже используется Быстрое Преобразование Фурье (FFT) для выделения спектральных составляющих сигнала. Думаю, что лучше взять за основу второй проект.
  15. лёха

    лёха Частый гость

    Сообщения:
    67
    Симпатии:
    10
    мне он тоже нравиться НО! там выход сделан для LOLShield а мне надо просто выход разделённых частот на разные пины. вот в этом и есть загвоздка.
  16. лёха

    лёха Частый гость

    Сообщения:
    67
    Симпатии:
    10
    ещё нашёл но здесь код для саба и не совсем понятно что к чему и как подключается!

Поделиться этой страницей