This shows you the differences between two versions of the page.
pm:prj2021:avaduva:musicvisualizer [2021/06/04 04:34] octavian.craciun |
pm:prj2021:avaduva:musicvisualizer [2021/06/04 09:51] (current) octavian.craciun |
||
---|---|---|---|
Line 38: | Line 38: | ||
* Pentru display-ul LCD am folosit bibliotecile <Adafruit_GFX.h> si <Adafruit_SSD1306.h> | * Pentru display-ul LCD am folosit bibliotecile <Adafruit_GFX.h> si <Adafruit_SSD1306.h> | ||
* Pentru matricea de leduri am folosit bibliotecile <MD_MAX72xx.h> si <Max72xxPanel.h> | * Pentru matricea de leduri am folosit bibliotecile <MD_MAX72xx.h> si <Max72xxPanel.h> | ||
+ | * Pentru banda de leduri am folosit biblioteca #<Adafruit_NeoPixel.h> | ||
* Pentru datele citite(sample-uri),am un vector de 64 de elemente. Am incercat prima data folosirea unui vector de 1024 dar memoria nu era suficienta si am scazut la cea mai mica putere a lui 2 la care nu primeam warning-uri. | * Pentru datele citite(sample-uri),am un vector de 64 de elemente. Am incercat prima data folosirea unui vector de 1024 dar memoria nu era suficienta si am scazut la cea mai mica putere a lui 2 la care nu primeam warning-uri. | ||
* Pentru a obtine spectrul de frecvente am folosit Fast Fourier Transform, un algoritm care duce un domeniu in domeniul lui de frecvente, folosind biblioteca "arduinoFFT.h" | * Pentru a obtine spectrul de frecvente am folosit Fast Fourier Transform, un algoritm care duce un domeniu in domeniul lui de frecvente, folosind biblioteca "arduinoFFT.h" | ||
* Dupa ce se obtine spectrul de frecvente este facuta media pe fiecare interval de sample-uri | * Dupa ce se obtine spectrul de frecvente este facuta media pe fiecare interval de sample-uri | ||
- | * Se reprezinta pe display-ul OLED I2C prin 12 bari ce reprezinta valorile din spectrul de frecevente si pe matricea led pe fiecare coloana cate o valoare a frecventei | + | * Se reprezinta pe display-ul OLED I2C prin 12 bari ce reprezinta valorile din spectrul de frecevente si pe matricea led pe fiecare coloana cate o valoare a frecventei, iar pe banda de leduri media frecventelor |
**Rezultate Obținute** | **Rezultate Obținute** | ||
Line 143: | Line 144: | ||
{{:pm:prj2021:avaduva:matrix_display.jpeg?300|}} | {{:pm:prj2021:avaduva:matrix_display.jpeg?300|}} | ||
+ | |||
+ | **Adaugarea unei benzi led NEOPIXEL pentru afisare** | ||
+ | |||
+ | Fiecare circuit este compus din patru bucati de siliciu: trei leduri de culori diferite (RGB) si un circuit de control si limitare a curentului. Pe o banda, alimentarile sunt legate in paralel dar circuitele de control in serie. | ||
+ | |||
+ | {{:pm:prj2021:avaduva:led_neopixel.jpeg?300|}} | ||
+ | |||
+ | Documentatie:[[https://ardushop.ro/ro/electronica/331-banda-leduri-rgb-neopixels-ws2812b.html#/126-leduri_metru-144]] | ||
+ | |||
+ | **Montaj complet** | ||
+ | |||
+ | {{:pm:prj2021:avaduva:montaj_complet.jpeg?300|}} | ||
+ | |||
+ | [[https://youtu.be/2zI9ASAasy8|Demonstratie video]] | ||
+ | |||
**Download** | **Download** | ||
+ | |||
+ | [[https://ocw.cs.pub.ro/courses/pm/prj2021/avaduva/musicvisualizer?do=export_pdf|Descarcare PDF]] | ||
**Jurnal** | **Jurnal** | ||
Line 153: | Line 171: | ||
- Afisarea spectrului de frecvente folosind matricea led | - Afisarea spectrului de frecvente folosind matricea led | ||
- Adaugarea afisarii si prin intermediul ecranului OLED | - Adaugarea afisarii si prin intermediul ecranului OLED | ||
+ | - Adaugarea afisarii folosind o banda led | ||
**Bibliografie/Resurse** | **Bibliografie/Resurse** | ||
+ | |||
+ | {{:pm:prj2021:avaduva:craciun_octavian_332cb_music_visualizer.zip|Arhiva cod sursa arduino}} | ||
+ | |||
+ | * [[https://en.wikipedia.org/wiki/Fast_Fourier_transform|Fast Fourirer Transform]] | ||
+ | * [[https://learn.adafruit.com/sound-reactive-neopixel-peace-pendant/arduino-code|Arduino NeoPixel LEDs]] | ||
+ | * [[https://create.arduino.cc/projecthub/shajeeb/32-band-audio-spectrum-visualizer-analyzer-902f51|LED Matrix Arduino]] | ||
+ | * [[https://www.arduino.cc/reference/en/language/functions/math/map/]] | ||
+ | * [[https://www.arduino.cc/reference/en/language/functions/math/constrain/]] | ||