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 15:11]
ana.grigorescu0809
pm:prj2022:bogdanc:music-visualizer [2022/05/30 21:04] (current)
ana.grigorescu0809
Line 22: Line 22:
 ===== Descriere generală ===== ===== Descriere generală =====
  
-**//SCHEMA BLOC://**+Odata ce placuta Arduino UNO R3 este econectata la alimentare, microfonul 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).  ​
  
 +**//SCHEMA BLOC://**
 {{ :​pm:​prj2022:​bogdanc:​schema_bloc_grigorescu.png |}} {{ :​pm:​prj2022:​bogdanc:​schema_bloc_grigorescu.png |}}
 +
  
 <note tip> <note tip>
Line 33: Line 35:
  
 **//LISTA DE PIESE://** **//LISTA DE PIESE://**
-  * 3.5 mm Stereo Audio Jack Module; +  * 1 x 3.5 mm Stereo Audio Jack Module; ​--> modificat in modul microfon, senzor sunet   
-  * Resistors (1K/​22K/​100K ohm); +  * 1 x Breadboard HQ + 1 x Breadboard mini; 
-  * Ceramic/​Electrolytic Capacitors; +  * DuPont wires (male-male, male-female,​ female-female)
-  * Breadboard HQ + Breadboard mini; +  * 1 x LCD I2C 16x2; 
-  * Wires+  * 2 x LED Dot Matrix Module; 
-  * LCD I2C 16x2; +  * 1 x Arduino Uno R3; 
-  * LED Dot Matrix Module; +  * 1 x Button
-  * Arduino Uno R3; +
-  * Arduino Nano+
  
-<note tip> +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 urmaiar microfonul am observat ca se comporta mai bine atunci cand conectat la sursa de 3V3 a UNO-ului.
-TODO in the future: +
-  * 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>​+
  
 +**//SCHEMA CIRCUIT://​**
 +
 +{{ :​pm:​prj2022:​bogdanc:​grigorescu_schema_fritzing.png?​nolink&​800 |}}
 +
 +Fisierul .fzz se va putea gasi in arhiva proiectului.
  
  
Line 56: 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 82: 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 88: 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.1652357478.txt.gz · Last modified: 2022/05/12 15:11 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