MxChip audio

Photo by Phuc H. on Unsplash

Na płytce mamy wbudowany mikrofon i wyjście audio. Można więc pobawić się trochę dźwiękiem.

Zacznijmy od dokumentacji

Z dokumentacji dowiadujemy się, że mamy dwie opcje nagrywania dźwięku: callback i WAV. Taki stary format audio. Programując arduino serio przypominają się inne czasy :D
Mamy tutaj ograniczenie wielkości nagranej próbki. Wielkość ta również zależy od metody nagrywania.
Ja pójdę w stronę wav. To też spoko format, bo jakby się człowiek uparł to można taki plik potem do chmury wypchnąć.

const int AUDIO_SIZE = 32000 * 3 + 45;
Audio.format(800016);

Ograniczenie wielkości nagranego dźwięku w przypadku powyższych ustawień mamy jakieś 8 sekund.
Rozwiązanie z dokumentacji działa prześlicznie.

Pomysł wykorzystania audio

Fascynującym pomysłem dla mnie wydało się pozyskanie poziomu hałasu. Nawet znalazłam takie rozwiązane opisane tutaj:
Detect Noise Level Audio Decibels In MXChip Azure IoT DevKit

Całe rozwiązanie bez zbędnego szumu wygląda tak:

Niestety ja nie rozumiem na jakiej podstawie obliczany jest rzekomy poziom hałasu. A dane które są wyświetlane są w ogóle nie adekwatne do tego co ja rozumiem przez poziom hałasu, czyli około 10dB to cichutkie cykanie zegarka. Tutaj mamy wartości z zakresu 1- 2.5
No cóż ja nie rozumiem, jak wyciągnąć taką wartość z mikrofonu. Za słabo znam się na fizyce prądu.
Ale co możemy wyciągnąć z tego rozwiązania to inną metodę dostępu do dźwięku - czyli poprzez callback. Całe rozwiązanie przygotowanie jest pod wysyłanie poziomu hałasu jako jednego ze składników telemetrii, dlatego też funkcja callbackowa próbkująca dźwięk dużo częściej w mniejszych paczkach.
Mamy więc dwie działające metody obsługi dźwięku. Być może uda się to później wykorzystać.

Komentarze

Popularne posty