Differences

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

Link to this comparison view

pm:prj2022:bogdanc:music-visualizer [2022/05/12 11:13]
ana.grigorescu0809 created
pm:prj2022:bogdanc:music-visualizer [2022/05/30 21:04] (current)
ana.grigorescu0809
Line 3: Line 3:
  
 <note tip> <note tip>
-Nume: Grigorescu Ana-Maria+Nume autor: Grigorescu Ana-Maria
  
 Grupa: 332CC Grupa: 332CC
 </​note>​ </​note>​
  
-<note tip> +**//Ce face?//** 
-Prezentarea ​pe scurt a proiectului vostru: + 
-  * ce face +''​Music visualizer-ul''​ reprezinta un dispozitiv prin care putem vedea exact frecventa/​ritmul melodiei ​pe care o ascultam in momentul respectiv, prin intermediul jocului de lumini al matricei de led-uri. De asemenea, device-ul va avea si un ''​vu-meter''​ care va arata printr-un lcd audio level-ul melodiei, in dBu. 
-  care este scopul lui + 
-  care fost ideea de la care aţi pornit +**//​Scopul//​** 
-  * de ce credeţi că este util pentru alţii şi pentru voi + 
-</note>+Scopul ​este, din punctul meu de vedere, unul estetic (mereu mi s-a parut interesant sa ma uit cum se misca luminile pe ritmul muzicii), dar si informativ (nivelul de db afisat). 
 + 
 +**//Ideea + Utilitatea//​** 
 + 
 +Ideea mi-venit de la boxele de tipul celei JBL Pulse, sau programelor online prin care se poate vizualiza spectrul frecventelor atinse. Mereu mi-au atras atentia. Din punct de vedere estetic/decorativ mi se pare ca schimba toata experienta de a asculta muzica. 
 ===== Descriere generală ===== ===== Descriere generală =====
  
-<note tip> +Odata ce placuta Arduino UNO R3 este econectata la alimentaremicrofonul capteaza undele sonore din apropierea sa (nu merge de la distanta intrucat modulul audio nu este unul profesional)In acest timp, matricea de led-uri incepe sa se miste in functie de intensitatea muzicii. Pe ecranul LCD este afisat nivelul de dB, iar la apasarea butonului, LCD-ul va afisa nivelul de presiune al sunetului (SPL-ul).  ​
-O schemă bloc cu toate modulele proiectului vostruatât software cât şi hardware însoţită ​de o descriere a acestora precum şi a modului în care interacţionează.+
  
-Exemplu de schemă bloc: http://www.robs-projects.com/mp3proj/newplayer.html +**//SCHEMA BLOC://** 
-</​note>​+{{ :​pm:​prj2022:​bogdanc:​schema_bloc_grigorescu.png |}}
  
-===== Hardware Design ===== 
  
 <note tip> <note tip>
-Aici puneţi tot ce ţine de hardware design: +Varianta ​de baza a schemei.
-  * listă de piese +
-  * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri,​ e.g. http://​www.captain.at/​electronic-atmega16-mmc-schematic.png) +
-  * diagrame de semnal  +
-  * rezultatele simulării+
 </​note>​ </​note>​
 +
 +===== Hardware Design =====
 +
 +**//LISTA DE PIESE://**
 +  * 1 x 3.5 mm Stereo Audio Jack Module; --> modificat in modul microfon, senzor sunet  ​
 +  * 1 x Breadboard HQ + 1 x Breadboard mini;
 +  * DuPont wires (male-male, male-female,​ female-female);​
 +  * 1 x LCD I2C 16x2;
 +  * 2 x LED Dot Matrix Module;
 +  * 1 x Arduino Uno R3;
 +  * 1 x Button. ​
 +
 +Am realizat in Fritzing schema proiectului (varianta inainte de a fi pusa in cutie). Nu a fost nevoie sa folosesc rezistente sau capacitori pana la urma, iar microfonul am observat ca se comporta mai bine atunci cand e conectat la sursa de 3V3 a UNO-ului.
 +
 +**//SCHEMA CIRCUIT://​**
 +
 +{{ :​pm:​prj2022:​bogdanc:​grigorescu_schema_fritzing.png?​nolink&​800 |}}
 +
 +Fisierul .fzz se va putea gasi in arhiva proiectului.
 +
  
 ===== Software Design ===== ===== Software Design =====
Line 37: Line 56:
  
 <note tip> <note tip>
-Descrierea codului aplicaţiei (firmware):​ +Mediul ​de dezvoltare ​utilizat pentru proiect a fost Arduino IDEPentru a folosi modulele Arduino precizate in componenteam folosit urmatoarele biblioteci, importate prin Library Manager: 
-  * mediu de dezvoltare ​(if any) (e.g. AVR StudioCodeVisionAVR) +  * pentru matricea MAX7219 : LedControl; 
-  * librării şi surse 3rd-party (e.g. Procyon AVRlib) +  * pentru ecranul LCD 1602 x I2C : LiquidCrystal_I2C. ​
-  * algoritmi şi structuri pe care plănuiţi să le implementaţi +
-  * (etapa 3) surse şi funcţii implementate+
 </​note>​ </​note>​
  
 +Initial am intentionat sa folosesc FFT (**F**ast **F**ourier **T**ransform) pentru a interpreta input-ul audio. Dupa aporape doua saptamani de incercari si apelatul la asistentul de laborator, am concluzionat amandoi ca se misca mult prea greu si nu face ce trebuie niciuna din bibliotecile importate, cel putin in combinatie cu microfonul si toata configuratia mea. In aceste circusmtante,​ am convenit cu Bogdan sa interpretez in mod liber nivelul sonor captat de microfon si jocul de lumini generat de matrice.
 +
 +Dupa multiple teste in care am pus o boxa langa microfon si am pus muzica la un volum divers (urmarind la Serial Monitor input-ul de la microfon)
 +am dedus niste valori intre care pot incadra numarul de led-uri aprinse pe o coloana. Adaug random si niste valori diferite pentru a oferi un efect vizual mai placut, la o perioada tot random de timp. Toate acestea se intampla in functia **displayLed**.
 +
 +In **loop** tratez apasarea de buton care imi schimba afisajul de pe LCD din dB Volts (cei uzuali) in dB SPL (**S**ound **P**ressure **L**evel). Tratez si situatia de debounce, masurand timpul dintre apasarea actuala si cea anterioara, punand restrictia de a fi > 500ms. Fac un loop de dimensiunea inputWindow-ului pentru a capta muzica, afland minimul maximul si media. Urmeaza partea de calcule matematice pentru a obtine dB-ii. Codul este segmentat prin comentarii pentru lizibilitate.
 + 
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-<note tip> +Proiectul functioneaza cum trebuie (desi microfonul lasa de dorit, insa dupa achizitionarea a trei modele diferite mi-am acceptat soarta), cu restrictia ca sursa de muzica (boxa) trebuie pozitionata langa microfon. De asemenea, microfonul nu poate capta sonor mult prea puternic, volumul maxim la care poate ajunge fiind in jur de 86dB (o situatie de genul 3.6, not great not terrible, m-am adaptat la neajunsurile modulului sonor). Restul modulelor functioneaza foarte bine. O sa atasez ​ 
-Care au fost rezultatele obţinute în urma realizării proiectului vostru+ 
-</note>+Link demo (before mutat in cutie) : [[https://​youtube.com/​shorts/​3r7MCkrnHD8?​feature=share]] 
 + 
 +Link demo (pus ordonat in cutie) : [[https://​youtube.com/​shorts/​7NgdvLogcIQ?​feature=share]] 
 + 
 +Pentru a sta compact si a arata mai bine, am pus proiectul intr-o cutie de plastic, in care am masurat, taiat, si prins in suruburi componentele (cu tata :), plasticul e mult mai tare decat pare). Am prins firele cu zip-ties si lipit in interiorul cutiei pnetru a sta ordonate. //​Probabil//​ voi infasura cutia in banda adeziva pentru a nu mai fi transparenta,​ insa adaug poze cu ea in aceasta varianta semi-gata pentru a se vedea clar ce si cum: 
 + 
 + 
 +{{ :​pm:​prj2022:​bogdanc:​grigo_1.jpeg?​nolink&​400 |}} 
 + 
 +{{ :​pm:​prj2022:​bogdanc:​grigo_2.jpeg?​nolink&​400 |}}
  
 ===== Concluzii ===== ===== Concluzii =====
  
-===== Download =====+Proiectul a fost captivant (nu si cele doua saptamani de frustrare pierdute incercand sa folosesc FFT :( ), iar rezultatul, mai ales fiind unul palpabil, chiar ofera o satisfactie puternica. Nu am ce sa zic, proiectul chiar a ajutat extrem de mult la intelegerea cu adevarat a conceptelor invatate la curs si laborator.
  
-<note warning>​ +===== Download =====
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului:​ surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).+
  
-Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:pm:prj20??:c?** sau **:pm:​prj20??:​c?:​nume_student** (dacă este cazul). **Exemplu:​** Dumitru Alin, 331CC -> **:​pm:​prj2009:​cc:​dumitru_alin**.+<note important>​ 
 +{{:pm:prj2022:bogdanc:grigorescu_ana-maria_332cc_proiectpm.zip|Arhiva proiect}}
 </​note>​ </​note>​
  
Line 63: Line 96:
  
 <note tip> <note tip>
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect ​progresul proiectului.+  * **//​12.05.2022://​** Created wiki page, completed introduction,​ block diagram, components and supplies; 
 +  * **//​13-15.05.2022://​** Research amanuntit, atat despre ​proiect ​cat si componentele sale. 
 +  * **//​16-20.05.2022://​** Incercari folosind modul Jack --> renuntare la acesta deoarece nu functiona corespunzator;​ 
 +  * **//​22-27.05.2022://​** Trecut la utilizarea microfonului,​ schimbat microfonul deoarece primul nu functiona cum trebuie, renuntat la utilizarea FFT dupa sfatuirea cu Bogdan; 
 +  * **//​27-28.05.2022://​** Finalizat proiect; 
 +  * **//​29.05.2022://​** Mutat proiect in cutie si ordonarea firelor + finalizare documentatie 
 </​note>​ </​note>​
  
Line 69: Line 108:
  
 <​note>​ <​note>​
-Listă ​cu documente, ​datasheet-uriresurse Internet folosite, eventual grupate ​pe **Resurse Software** ​şi **Resurse Hardware**.+**Resurse Hardware:​** 
 +  * [[https://​datasheets.maximintegrated.com/​en/​ds/​MAX7219-MAX7221.pdf|Datasheet matrice de led-uri (MAX7219)]];​ 
 +  * [[http://​www.handsontec.com/​dataspecs/​module/​I2C_1602_LCD.pdf|Datasheet LCD 1602 cu I2C]]; 
 +  * [[https://​docs.arduino.cc/​resources/​datasheets/​A000066-datasheet.pdf|Datasheet Arduino Uno R3]]; 
 +  * Modul microfon ​--asemanator cu KY-037 (nu am gasit datasheet-ulm-am folosit de descrierea de pe site-ul de unde l-am luat). 
 + 
 +**Resurse Software:** 
 +  ​Inspiratie initiala proiect: [[https://​create.arduino.cc/​projecthub/​rahulmohoto/​music-spectrum-visualizer-with-arduino-nano-f3779e?​ref=search&​ref_id=music&​offset=3| Visualizer]],​ [[https://​create.arduino.cc/​projecthub/​deltakilo/​vu-meter-for-audio-signal-dbu-using-lcd-0cef6d?​ref=search&​ref_id=vu%20meter&​offset=0|vu-meter]],​ [[https://​aaronpederson.weebly.com/​led-equalizer-project.html#​|alt visualizer cu FFT :(]]; 
 +  ​[[https://​github.com/​wayoda/​LedControl/​blob/​master/​src/​LedControl.h|Documentatie biblioteca LedControl]];​ 
 +  ​[[https://​create.arduino.cc/​projecthub/​jehankandt/​arduino-16x2-lcd-display-with-i2c-hello-world-4b1a41| Tutorial LCD]]. 
 </​note>​ </​note>​
  
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
  
pm/prj2022/bogdanc/music-visualizer.1652343232.txt.gz · Last modified: 2022/05/12 11:13 by ana.grigorescu0809
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