Skocz do zawartości

Wyświetlacz widma audio – ESP32 i 399 WS2812B


Pomocna odpowiedź

Dodaj jeszcze żar na dole, postaw na tym dwa srebrne świeczniki, zegar i rodzinną fotografię w ramkach - będziesz miał najbardziej zajefajny kominek na świecie 🙂

Z tym żarem to ja na serio... reszta według uznania 🙂

  • Pomogłeś! 1
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

21 minut temu, Gieneq napisał:

te płomyki wyglądają dobrze ze spokojnymi utworami, a do tych szybszych można by dodać inny efekt.

O, i tutaj możesz wrócić do liczenia BPM-ów.

21 minut temu, Gieneq napisał:

Obsługa przycisków to pewnie kolejna nieblokująca pętla w której będę sprawdzał naciśnięcia, czasy itp i

Zerknij na kod Arduinowej biblioteki Bounce2 - tam masz dokładnie to co chcesz (fell, rose, currentDuration, previousDuration).

 

  • Pomogłeś! 1
Link do komentarza
Share on other sites

@Zealota będzie niedługo, jakoś za 2 tygodnie wrzucę konkrety. Mam problem... wyzwanie! z nagraniem tego żeby było ładnie widać szczegóły efektów, ale niestety nagrywanie LEDów nie jest takie proste.

50 minut temu, ethanak napisał:

O, i tutaj możesz wrócić do liczenia BPM-ów.

I taki mam plan. Ostatnio źle googlowałem... hasło "bpm analzyer github" dopiero dało trafne wyniki. Okazuje się, że są algorytmy które w czasie rzeczywistym dają przyzwoite wyniki, ale to spory temat. Nie jestem pewny czy ESP to udźwignie, ale i tak mam w planach ulepszenie sprzętu.

Tu jest całkiem ciekawe repo z kodem w C++ https://github.com/teragonaudio/BeatCounter

Jest też inne repo z kodem w Pythonie, od tego zacznę żeby zobaczyć jak w ogóle to działa. Podobno używa falki (ang. wavelet) do wyciągnięcia informacji o maksimach z których można oszacować BPM. Szczegóły pewnie zawarte są w tej pracy: http://www.cs.cmu.edu/~gtzan/work/pubs/amta01gtzan.pdf

Albo ten kod https://github.com/breakfastquay/minibpm tym razem hasło "beat per minute github" chwalą się że kod jest minimalistyczny w C++98, patrząc na tę funkcję wygląda jak to czego szukam, ale zobaczymy w praktyce 😉 

double
MiniBPM::estimateTempoOfSamples(const float *samples, int nsamples)
{
    return m_d->estimateTempoOfSamples(samples, nsamples);
}

Będąc już przy wrzucaniu pdfów, to dla zainteresowanych polecam ten o oknach: https://download.ni.com/evaluation/pxi/Understanding FFTs and Windowing.pdf

1 godzinę temu, ethanak napisał:

Zerknij na kod Arduinowej biblioteki Bounce2

Faktycznie, dziękuję. Pamiętam że kiedyś o tym wspominałeś w kontekście tego co pisałem o Arduino.

    if (millis() - previous_millis >= interval_millis) {
        bool currentState = readCurrentState();
        if ( currentState != getStateFlag(DEBOUNCED_STATE) ) {
            previous_millis = millis();
            changeState();
        }
    }

Jakie piękne koło, jakie okrągłe i się toczy. Dokładnie takie same jak koło które właśnie wynalazłem 😄 

  • Lubię! 2
Link do komentarza
Share on other sites

@Gieneq Super projekt 😄 Zazdroszczę urządzenia (w pozytywnym znaczeniu) i życzę dalszych sukcesów 😄

Sam może kiedyś się skuszę na podobny projekt, muszę tylko jakoś doprowadzić do końca obecny 🙂

PS: Fajny wzmacniacz 😄

Link do komentarza
Share on other sites

@MR1979 szczerze to nie jest aż tak skomplikowane, zależy kto w czym ma doświadczenie. Na początek możesz zrobić coś na mniejszej matrycy LED, albo multitool z twojej konsoli 🙂 tryb analizatora spektrum.

4 minuty temu, MR1979 napisał:

Fajny wzmacniacz

2h siedziałem w audiofilskim sklepie i robiliśmy odsłuchy. O dziwo ten model Yaqina jest całkiem dobry, ma uderzenie (coś czego wyższe modele na lampach KT88 nie mają) ale zarazem średnie i wysokie są bardzo przyjemne. Zwłaszcza przy gitarze akustycznej ładnie się sprawdza.

Link do komentarza
Share on other sites

59 minut temu, Gieneq napisał:

Musiałbym tylko zmienić kod tak by przy starcie ESP umożliwiał wgranie programu, a np. po wybraniu przycisku na rdzeniu 0 odpalany był kod związany z FFT.

Możesz jakoś przybliżyć co chcesz zrobić bo albo ja czegoś nie rozumiem albo coś kręcisz naokoło?

Tak przy okazji - aż by się chciało potraktować to ustrojstwo jako dwuwymiarowy ekran... np. iskierka lecąca ukośnie (albo jeszcze ciekawiej po paraboli)...

Link do komentarza
Share on other sites

Dnia 17.01.2022 o 18:40, ethanak napisał:

Możesz jakoś przybliżyć co chcesz zrobić bo albo ja czegoś nie rozumiem albo coś kręcisz naokoło?

Niewykluczone, że coś kręcę, bo w ten temat jeszcze nie wchodziłem świadomie. Z tego co rozumiem WiFi jest obsługiwane na rdzeniu 0. Czyli jeżeli ja mu daję coś do roboty, to przy starcie mikrokontrolera nie mogę od razu dać od razu własną funkcję działającą na rdzeniu 0 tylko, no właśnie nie wiem co tam się odbywa. Interesowałby mnie menadżer WiFi, jakby w ogóle dało się używać WiFi i tego wszystkiego jednocześnie to byłoby świetnie, bo potrzebowałbym integracje z Home Assistant.

@ethanak masz pomysł jak mogę do tego dodać menadżer WiFi?

Link do komentarza
Share on other sites

52 minuty temu, Gieneq napisał:

Interesowałby mnie menadżer WiFi

Pytanie: po co menadżer WiFi do urządzenia, które stoi sobie w jednym miejscu i łączy się tylko z jedną domową siecią? Na dobrą sprawę możesz dane połączenia nawet wkompilować w kod, albo (jak chcesz mieć większą kontrolę) dać możliwość konfiguracji poprzez serial i zapisać to przez Preferences.

Jeśli startuje WiFi, to i tak urządzenie musi poczekać na połączenie zanim zacznie coś pokazywać... więc nie trzeba nic na tym rdzeniu 0 od razu uruchamiać.

A WiFi pracujący na rdzeniu 0 nie zajmuje całego czasu procka; sprawdź, zanim zaczniesz coś kombinować, bo być może szukasz problemu tam, gdzie go nie ma.

No i zamiast jakiegoś managera z fafnastoma opcjami których nigdy nie wykorzystasz możesz wrzucić coś takiego - czasu nie zajmuje dopóki jest połączony, automatycznie wznawia połączenie. Możesz mu dać jeszcze co najwyżej jakiegoś delaya w pętli oczekiwania, żeby ESP mógł w międzyczasie zrobić coś mądrego (np. wyświetlić na tych słupkach napis ERROR czy inny budujący tekst).

Masz tam miejsce na jakieś dodatkowe przyciski z tyłu? Jeśli tak, to w ogóle nie ma co mówić o jakichś menagerach - np. pierwszy przycisk to "restart w trybie AP" (coby można było z komórki dane poustawiać jak hasło w routerze zmienisz), drugi to "zwykły restart" i tak dalej... jak  tak mam w czytaku (włączenie zasilania z przytrzymaniem PLAY włącza interfejs WiFi, z przytrzymaniem FWD lub BACK włącza tryb AP).

Aha, jeszcze jedno. Pewnie od razu chodzi Ci po głowie AsyncWebServer - zapomnij, żre pamięć jak koń trawę i przy okazji robi niezłą sieczkę w tej co nie zeżarł.

 

Link do komentarza
Share on other sites

@ethanak dziękuję, trochę zapoznałem się z tematem i widzę, że to nie jest takie trudne.

A takie pytanie, może też do innych użytkowników forum - jak ma się sterowanie diod programowalnych z Raspberry Pico? Przejrzałem wpisy dotyczące biblioteki FastLED, ale nie znalazłem żadnych konkretów. W repo Neopixel Adafruita wyraźne wskazano wsparcie dla PIO RP2040:

#if defined(ARDUINO_ARCH_RP2040)
  // Find a free SM on one of the PIO's
  sm = pio_claim_unused_sm(pio, false); // don't panic
  // Try pio1 if SM not found
  if (sm < 0) {
    pio = pio1;
    sm = pio_claim_unused_sm(pio, true); // panic if no SM is free
  }
  init = true;
#endif

"don't panic" dobre 😄 

Zastanawiam się, który mikrokontroler lepiej radzi sobie z obsługą WS2812B, RP2040 czy ESP32?

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.