Страница 1 из 3
Пользовательский блок ( Помощь )
Добавлено: 27 май 2017, 18:31
Uapaha74
Всем доброго времени !
Начал пытаться делать пользовательский блок по видео уроку [spoiler=Спойлер]_uVideoPlayer({'url':'
https://www.youtube.com/watch?v=tYRF1fH ... 14Bv1DeDFH');[/spoiler]Блок
FFT (от
«fast Fourier transform», что значит
«быстрое преобразование Фурье» )
Я с ардуино, знаком минимально, но блок такой край как нужен.
Сил а по большей части знаний, хватило дойти до:

И тут для меня оказался тупик

Да и не у верен я, что предыдущие вкладки были заполнены правильно (Declare,Setup,Loop)
Знатоки гляньте есть ли надежна на жизнь этого блока !?, подскажите что да как .
блок fft-_Фурье_(CODE).ubi ( или то что получилось )
Пример применения БПФ на данных от АЦП и отправка результата посредством println()
Подробное описание Arduino:Библиотеки/FFT
Пользовательский блок ( Помощь )
Добавлено: 27 май 2017, 19:01
Dev1
Для проверки кода очень полезен Notepad ++ там есть подсветка синтаксиса.
Вот пример с вашего кода из секции loop в блокноте:
Тут сразу видно что не хватает -
}
Добавлено (27.05.2017, 19:01)
---------------------------------------------
Цикл while
Пользовательский блок ( Помощь )
Добавлено: 27 май 2017, 23:18
Uapaha74
Dev1 писал(а):Тут сразу видно что не хватает - }
Да так и есть но вот как заполнить эту вкладку ? -

Чем ? что туда писать ? ( простите за скудоумие Для меня это Эверест ! ))
Пользовательский блок ( Помощь )
Добавлено: 28 май 2017, 00:26
Dev1
Uapaha74 писал(а):Чем ? что туда писать ?
Ничего не писать. Это для отдельных функций, которые вызываете в void loop. В примере нету отдельных функций.
Пользовательский блок ( Помощь )
Добавлено: 28 май 2017, 15:50
Uapaha74
Dev1, Как мне тогда прикрепить эту функцию "(fft_log_out
);// отсылаем данные" к выходу "log" пользовательского блока

Пользовательский блок ( Помощь )
Добавлено: 29 май 2017, 08:03
rw6cm
Uapaha74, Можно поинтересоваться, как вы на практике хотите использовать этот блок?
Что на него подавать - что с него получать, и для каких целей?
п\с Всегда старался обходить стороной теоретиков,
сегодня с утреца на свежую голову решил восполнить пробел...
То хоть какое то имел представление - теперь сплошное месиво )))
Пользовательский блок ( Помощь )
Добавлено: 29 май 2017, 12:03
Dev1
Вчера не смог посмотреть что это за зверь. Ща открыл
вики мой мозг меня послал... Открыл как пишут
простое объяснение...
не осилил...
Добавлено (29.05.2017, 08:48)
---------------------------------------------
Uapaha74, сдается мне что
[*] fft_window(); // функция-окно, повышающая частотное разрешение
[*] fft_reorder(); // реорганизовываем данные перед запуском БПФ
[*] fft_run(); // обрабатываем данные в БПФ
[*] fft_mag_log(); // извлекаем данные, обработанные БПФ
[*] sei();
обязательный кусок кода для вычисления. Хотя они тоже могут варьироваться...
Uapaha74 писал(а):Как мне тогда прикрепить эту функцию "(fft_log_out);
я думаю можно как значение переменной использовать, только байт нужно задавать (fft_log_out[byte]).
Может попробую этого зверя поковырять сегодня...
Добавлено (29.05.2017, 12:03)
---------------------------------------------
Мде... Библиотека морально устарела, ошибок куча. Оказывается, в IDE уже все сделали, в управлении библиотеками ставим ArduinoFFT, она компилируется в 1.8.2 без ошибок.
Пользовательский блок ( Помощь )
Добавлено: 29 май 2017, 18:21
Uapaha74
rw6cm, конечно можно.
На вход А0 и GND Кидается микрофон ( В моем случае, для теста, берется сигнал с наушника. )
rw6cm писал(а):что с него получать
1)
Линейный спектр: 20герц, 25герц, 30 , 35, 40 ,...........20 000герц ( градация условна )
2)
Логарифмический спектр низких частот от 20герц до 100 герц ( Насколько я понял его, он рассчитывает максимально громкую частоту по отношению к другим )
что мне в принципе и нужно.
rw6cm писал(а):и для каких целей
Измерение звукового спектра для настройки аудио систем . ( частное использование )
Dev1,
Dev1 писал(а):Открыл как пишут простое объяснение...не осилил...
Я сам закипел, Но край как нужно .
Dev1 писал(а):она компилируется в 1.8.2 без ошибок.
В IDE 1.8.1 тоже запускается без проблем , единственное что примеры нужно брать с сайта, из первого поста , т.к. один из примеров, идущий с библиотекой, выдает ошибку .
Пользовательский блок ( Помощь )
Добавлено: 30 май 2017, 12:26
AVGN
Пользовательский блок ( Помощь )
Добавлено: 30 май 2017, 18:42
Uapaha74
Примерно такое решение я и хотел бы видеть в пользовательском блоке.
Пользовательский блок ( Помощь )
Добавлено: 30 май 2017, 19:40
AVGN
Uapaha74 писал(а):Пример применения БПФ на данных от АЦП и отправка результата посредством println()
Не компилируется, выдает ошибки. Из этого примера невозможно сделать блок.
Пользовательский блок ( Помощь )
Добавлено: 31 май 2017, 17:23
Uapaha74
AVGN, Вот еще пример на этой же библиотеки. <a class="link" href="
http://u.to/ukn3Dw" title="
http://wikihandbk.com/wiki/Arduino:%D0% ... 8B/fft_adc" rel="nofollow" target="_blank">Применение БПФ на данных от АЦП и отправка результата посредством write()
AVGN писал(а):Не компилируется, выдает ошибки. Из этого примера невозможно сделать блок.
Не компилируется блок в среде FLPROG , или же в Arduino ID сам пример?
Библиотека fft_3
Пользовательский блок ( Помощь )
Добавлено: 01 июн 2017, 15:25
rw6cm
Uapaha74 писал(а):1)Линейный спектр: 20герц, 25герц, 30 , 35, 40 ,...........20 000герц
2) Логарифмический спектр низких частот от 20герц до 100 герц
Честно говоря берут сомнения, что АЦП ардуины с этим справится.
В качестве "цветомузыки" возможно это и пойдет,
но в качестве анализатора данные будут очень относительные.
Будет время для интереса попробую.
Пользовательский блок ( Помощь )
Добавлено: 02 июн 2017, 20:05
Uapaha74
rw6cm писал(а):Будет время для интереса попробую.
Буду очень благодарен!
Пользовательский блок ( Помощь )
Добавлено: 10 июл 2017, 10:11
pan
может кто подсказать по использованию программного i2c ? пните в нужном направлении )
Пользовательский блок ( Помощь )
Добавлено: 10 июл 2017, 14:33
Sancho
pan,
Библиотека Write.h
Простые команды: запись
одного
Wire.beginTransmission(address);
Wire.write( byte ); // адрес регистра
Wire.write( byte ); // значение
Wire.endTransmission();
несколько
Wire.beginTransmission(address);
Wire.write(first byte);
Wire.write(byte);
Wire.write(byte);
Wire.write(byte);
Wire.endTransmission();
чтение одного
Wire.beginTransmission(address);
Wire.write( byte ); // адрес регистра
Wire.endTransmission();
Wire.requestFrom(address, (uint8_t) 1);
rezultat = Wire.read();
несколько, в примере 3
Wire.beginTransmission(address);
Wire.write( first byte ); // адрес первого регистра
Wire.endTransmission();
Wire.requestFrom(address, (uint8_t) 3);
rez_1 = Wire.read();
rez_2 = Wire.read();
rez_3 = Wire.read();
Добавлено (10.07.2017, 14:33)
---------------------------------------------
Необходимо учитывать семибитную систему адресации, где правый, младший разряд в восьмибитном слове - это служебный символ запись/чтение.
То, как определяет сканер FLPRog, можно вставлять напрямую и ничем не заморачиваться.
Пользовательский блок ( Помощь )
Добавлено: 10 июл 2017, 14:44
pan
как будет выглядеть аналогия железного i2c Wire.requestFrom(X,Y,); ?
Добавлено (10.07.2017, 14:44)
---------------------------------------------
блин проглядел. сори
Пользовательский блок ( Помощь )
Добавлено: 10 июл 2017, 14:48
Sancho
Не совсем понял вопрос.
I2c в ардуино на А4,А5 аналогична в работе serial0, также в setup Wire.begin(); как и Serial.begin(115200);
Глубже не копал...
Пользовательский блок ( Помощь )
Добавлено: 10 июл 2017, 14:51
pan
Sancho, для особо одаренных( я про себя) , как пины назначить
Пользовательский блок ( Помощь )
Добавлено: 10 июл 2017, 14:55
Sancho
При "изготовлении" пользовательских блоков указанные выше "наборы" лучше определять в функции и потом делать к ним обращения с аргументами. Не запутаешься.
Добавлено (10.07.2017, 14:54)
---------------------------------------------
Например, название
uint ReadRegister(uint8_t address , uint8_t offset)
внутри
Wire.beginTransmission(address);
Wire.write(offset);
Wire.endTransmission();
Wire.requestFrom(address, (uint8_t) 1);
return Wire.read();
Добавлено (10.07.2017, 14:55)
---------------------------------------------
Пины на ардуинке я не пробовал переназначать, не было необходимости.
По умолчанию А4 А5. Сори, исправил