This shows you the differences between two versions of the page.
pm:prj2022:bogdanc:music-visualizer [2022/05/30 00:43] ana.grigorescu0809 |
pm:prj2022:bogdanc:music-visualizer [2022/05/30 21:04] (current) ana.grigorescu0809 |
||
---|---|---|---|
Line 47: | Line 47: | ||
**//SCHEMA CIRCUIT://** | **//SCHEMA CIRCUIT://** | ||
- | {{ :pm:prj2022:bogdanc:grigorescu_schema_fritzing.png?nolink |}} | + | {{ :pm:prj2022:bogdanc:grigorescu_schema_fritzing.png?nolink&800 |}} |
Fisierul .fzz se va putea gasi in arhiva proiectului. | Fisierul .fzz se va putea gasi in arhiva proiectului. | ||
Line 61: | Line 61: | ||
</note> | </note> | ||
- | Initial am intentionat sa folosesc FFT (Fast Fourier Transform) 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. | + | 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) | 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**. | 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 (Sound pressure level). 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. | + | 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 ===== | ||
- | 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. Restul modulelor insa functioneaza foarte bine. O sa atasez | + | |
+ | 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 | ||
Link demo (before mutat in cutie) : [[https://youtube.com/shorts/3r7MCkrnHD8?feature=share]] | 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 ===== | ||
+ | |||
+ | 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. | ||
===== Download ===== | ===== Download ===== | ||
- | <note warning> | + | <note important> |
- | 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ă ;-). | + | {{:pm:prj2022:bogdanc:grigorescu_ana-maria_332cc_proiectpm.zip|Arhiva proiect}} |
- | + | ||
- | 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> | </note> | ||
Line 86: | Line 96: | ||
<note tip> | <note tip> | ||
- | 12.05.2022: Created wiki page, completed introduction, block diagram, components and supplies; | + | * **//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 92: | Line 108: | ||
<note> | <note> | ||
- | Listă cu documente, datasheet-uri, resurse 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-ul, m-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> | ||