[PROJEKT] Analizator dźwięku – DFRobot Gravity Audio Analyzer i KAmduino UNO

Po połączeniu wszystkich elementów projektu można przejść do omówienia oprogramowania na platformę Arduino (pełny kod znajduje się poniżej, w sekcji Do pobrania).

Na początku należy dodać biblioteki sterujące modułami. Dla Analizatora audio użyłem biblioteki dostępnej na stronie DFRobot, a dla wyświetlacza OLED – biblioteki firmy Adafruit oraz biblioteki Adafruit GFX. Dodawanie bibliotek do środowiska odbywa się w standardowy sposób: Szkic > Dołącz bibliotekę > Dodaj bibliotekę .ZIP.

Na początku należy dołączyć biblioteki konieczne w dalszej części programu. W tym przypadku, oprócz wyżej wymienionych jest to biblioteka Wire, konieczna do obsługi magistrali I2C.

Następnie należy zainicjować obiekty odpowiedzialne za obsługę peryferiów oraz tabelę, w której będą przechowywane aktualne wartości szczytowe sygnału w pasmach częstotliwości.

W funkcji setup następuje początkowa konfiguracja peryferiów. Wyświetlacz konfigurowany jest do sterowania za pomocą magistrali I2C

W pętli głównej programu odczytywane są wartości z analizatora audio. Następnie generowane są prostokąty o stałej szerokości, a wysokości zależnej od mocy sygnału w danym paśmie. Maksymalna wysokość prostokąta wynosi 64 piksele, a wartość mocy w paśmie wysyłana jest jako sygnał analogowy. Na platformie Arduino zawiera się więc w przedziale 0…1023. Aby wyskalować tą wartość wystarczy podzielić ją przez 16. Wygenerowana grafika następnie jest wyświetlana na ekranie OLED.

Działanie projektu zaprezentowano na poniższym materiale wideo:

O autorze