Я хз какая у вас частота в лупе, у меня к примеру простейший код вида:Ну правильно... фастЛед не врет . Ну чуть-чуть... 80гц - истинная частота в лупе. Меандр инвертированием ноги получается при каждом проходе
static uint32_t cnt = 0;
static unsigned long cur_ms = millis();
if(millis()>cur_ms+1000){
Serial.printf("cnt=%u, fps=%d\n", cnt, FastLED.getFPS());
cnt=0;
cur_ms = millis();
}
cnt++;
02:06:42.410 > cnt=219, fps=34
02:06:43.413 > cnt=208, fps=35
02:06:44.422 > cnt=181, fps=34
02:06:45.428 > cnt=202, fps=36
02:06:46.435 > cnt=207, fps=34
02:06:47.444 > cnt=192, fps=36
02:07:42.854 > cnt=7347, fps=45
02:07:43.856 > cnt=7394, fps=45
02:07:44.856 > cnt=7324, fps=45
02:07:45.858 > cnt=7348, fps=45
02:07:46.858 > cnt=7369, fps=45
02:07:47.859 > cnt=7358, fps=45
интересно, у вас все интервалы в проекте таким образом измеряются или вы это впопыхах написали?у меня к примеру простейший код вида:
if(millis()>cur_ms+1000){
У меня тоже есть ... на esp8266. Только надо догадаться как внешние данные с 24bit дельта-сигма кодека через DMA на обработку гнать через шину i2s. На ESP32 примеры видел, на 8266 нет. И в API никаких упоминаний... Хоть STM32F4XX бери. Досадно...@maxlab, спасибо теперь вижу , ну с учётом того что вы ещё разложение Фурье делаете - результат хороший, буду иметь в виду , есть у меня некоторые задумки .
просто на ESP32 есть DMA, а на 8266 нетНа ESP32 примеры видел, на 8266 нет.
Расслабтесь, у меня вообще образования программиста нет, так что я могу писать как хочу, куда хочу и совершенно по этому поводу не заморачиваться. Потому как могу. А вы, на мое предложение включили мороз, потому как не можете))). См. ниже:Хотя грамотный программист даже для примера так не написал бы
Ну так и напишите свой код для расчете FPS, если вы в библиотечном не уверены))).
сойдемся на этом, пусть вам будет приятно.потому как не можете
Оперативной памяти скорее всего не хватит на что-то более-менее интересное/сложное. Для видео/звука лучше сразу ориентироваться на esp32, более того есть уже готовые модули esp32 со встроенной дополнительной SRAM. Просто для понимания - из 80кб доступно где-то 40кб (в Arduino SDKv3.0.0 потенциально под кучу еще можно 16кб получить, но я это еще не тестировал). Но вообще можете попробовать, задача достаточно увлекательная сделать что-то в заданных ограничениях@bort707, мне не для визуализации это интересно. Аутентификация и управление голосом. Оказывается не все так печально... https://github.com/espressif/ESP8266_MP3_DECODER/blob/master/mp3/driver/i2s_freertos.c
Можно разобраться.
// массив тонов, расположены примерно по параболе. От 80 Гц до 16 кГц
byte posOffset[11] = {2, 3, 4, 6, 10, 16, 25, 40, 55, 70, 80}; //под 10 полос с микрофоном до ~7кГц // {2, 3, 4, 6, 10, 16, 20, 25, 37, 55, 75} - 6кГц //{2, 3, 4, 6, 10, 16, 25, 55, 70, 85, 120}-9
//byte posOffset[17] = {2, 3, 4, 6, 8, 10, 12, 14, 16, 20, 25, 30, 35, 60, 80, 100, 120}; //оригинал AlexGyver для 16 полос
// ---------------------НАСТРОЙКИ ---------------------------
Как собрать нужное число семплов за промежуток времени? Достаточно написать функцию в цикле читающую аналоговый пин с рассчитанной задержкой между чтениями. Далее полученный массив данных используйте для разложения на гармоники.Чего делать я и сам знаю, знал бы я как это сделать то и вопросов не было...
#define WIDTH 10 // ширина матрицы (число диодов)
#define HEIGHT 12 // высота матрицы (число диодов)