Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2021:avaduva:musicvisualizer [2021/06/02 01:59]
octavian.craciun
pm:prj2021:avaduva:musicvisualizer [2021/06/04 09:51] (current)
octavian.craciun
Line 1: Line 1:
 ====== Music Visualizer ====== ====== Music Visualizer ======
 +
 +Autor: Crăciun Octavian
 +
 +Grupa: 332CB
  
  
Line 8: Line 12:
 **Descriere Generală** **Descriere Generală**
  
-Dispozitivul,​ folosind un microfon, preia un input audio si afiseaza pe un ecran OLED spectrul de frecvente al acestui input, si in acelasi timp in functie de frecventa primita trimite diverse semnale matricei led.+Dispozitivul,​ folosind un microfon, preia un input audio si afiseaza pe un ecran OLED spectrul de frecvente al acestui input, si in acelasi timp in functie de frecventa primita trimite diverse semnale matricei led. Datele sunt citite cu ajutarul microfonului electret la o perioada din pinul analog A0 reprezinta tensiunea in volti. Datele sunt stocate intr-un vector, transformate in spectrul de frecvente si este calculata media frecventelor pe portiuni care este afisata.
  
 {{:​pm:​prj2021:​avaduva:​music_visualizer.png?​600|}} {{:​pm:​prj2021:​avaduva:​music_visualizer.png?​600|}}
Line 31: Line 35:
 Mediu de dezvoltare: Mediu de dezvoltare:
   * Arduino IDE   * Arduino IDE
 +
 +  * 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 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 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
 +  * 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 127: Line 139:
  
 Documentatie:​[[https://​ardushop.ro/​ro/​home/​393-display-oled-128x32-i2c.html]] Documentatie:​[[https://​ardushop.ro/​ro/​home/​393-display-oled-128x32-i2c.html]]
 +
 +
 +**Afisarea spectrului de frecvente folosind matricea led si a ecranului OLED**
 +
 +{{:​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 137: 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/​]]
  
  
pm/prj2021/avaduva/musicvisualizer.1622588384.txt.gz · Last modified: 2021/06/02 01:59 by octavian.craciun
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0