This shows you the differences between two versions of the page.
pm:prj2021:avaduva:audio_spectrum_visualizer [2021/06/01 19:08] vlad.proteasa |
pm:prj2021:avaduva:audio_spectrum_visualizer [2021/06/02 10:59] (current) vlad.proteasa |
||
---|---|---|---|
Line 35: | Line 35: | ||
===Software Design=== | ===Software Design=== | ||
- | Codul sursa esti disponibil aici: [[https://github.com/|GitHub]] | + | Codul sursa esti disponibil aici: [[https://github.com/VladProteasa/AudioSpectrumVisualizer/blob/main/audio_visualizer.ino|GitHub]] |
== Dependinte== | == Dependinte== | ||
Line 43: | Line 43: | ||
* Seteaza pinii de output pentru leduri si initializeaza vectorul folosit pentru a controla culoriile si luminozitatea benzilor led. | * Seteaza pinii de output pentru leduri si initializeaza vectorul folosit pentru a controla culoriile si luminozitatea benzilor led. | ||
* Sunt initializate variabilele pentru a controla setarile dispozitivului. | * Sunt initializate variabilele pentru a controla setarile dispozitivului. | ||
- | * Se activeaza intreruperea pentru unul dintre butoane, celelalte raman doar pentru input. Input-ul este interpretat mai tarziu in funtia apelata atunci cand se genereaza intreruperea | + | * Se activeaza intreruperea pentru unul dintre butoane, celelalte raman doar pentru input. Input-ul este interpretat mai tarziu in functia apelata atunci cand se genereaza intreruperea |
== Intreruperi == | == Intreruperi == | ||
- | Am configurat o intrerupere pentru butonul din marginea din stanga. Utilizatorul poate sa tina apasate oricare din celelalte patru butoane. Atunci cand butonul asociat intreruperii este apasat input-ul este citit si interpretat. Functia actioneaza asemanator cu un switch case. In functie de combinatia de butoane apasata setarile dispozitivului vor fi modificate asa cum este descris in diagrama de pe acest [[link|]]. | + | Am configurat o intrerupere pentru butonul din marginea din stanga. Utilizatorul poate sa tina apasate oricare din celelalte patru butoane. Atunci cand butonul asociat intreruperii este apasat input-ul este citit si interpretat. Functia actioneaza asemanator cu un switch case. In functie de combinatia de butoane apasata setarile dispozitivului vor fi modificate asa cum este descris in diagrama de pe acest [[https://github.com/VladProteasa/AudioSpectrumVisualizer/blob/main/asv_setting.jpeg|link]]. |
== Functia de generare a culorilor == | == Functia de generare a culorilor == | ||
- | Pentru reprezentarea culorilor am folosit modelul RGB. Functia primeste doi parametrii: banda led pe care se aplica modificarile si valoarea returnata de circuitul integrat. Daca indexul ledului este mai mic decat al doilea parametru atunci o sa fie calculata valorile pentru rosu, verde si albastru | + | Pentru reprezentarea culorilor am folosit modelul RGB. Functia primeste doi parametrii: banda led pe care se aplica modificarile si valoarea returnata de circuitul integrat. Daca indexul ledului este mai mic decat al doilea parametru atunci o sa fie calculata valorile pentru rosu, verde si albastru in functie de setarile specificate de utilizator si index. |
+ | Led-ul care are index-ul egal cu valoarea celui de-al doilea parametru o sa aiba culoarea alba sau o sa fie complet stins. | ||
+ | Toate celelalte leduri o sa fie stinse. | ||
+ | |||
+ | == Main Loop == | ||
+ | * Semnalizez circuitul integrat MSGEQ7 ca o sa inceapa un nou ciclu de update a valorilor afisate. | ||
+ | * Citesc valoarea returnata pe portul A0. | ||
+ | * Verific daca aceasta este o valoare valida sau zgomot. Aceste valori variaza intre 0 si 1024. In urma testelor am observat ca pentru sistemul meu cea mai buna alegere a fost sa consider zgomot orice valoare mai mica decat 200 (deoarece cablul nu este conectat direct la placa de sunet a calculatorului si este preluat zgomot de la celelalte componente). Aceasta valoare poate sa fie configurata manual prin utilizarea butoanelor. | ||
===Rezultate Obtinute=== | ===Rezultate Obtinute=== | ||
Line 59: | Line 67: | ||
Breadboard-ul pe care se afla butoanele pentru setari, mufa jack pentru conectarea cu o sursa de la care se preia inputul audio si circuitul MSGEQ7: | Breadboard-ul pe care se afla butoanele pentru setari, mufa jack pentru conectarea cu o sursa de la care se preia inputul audio si circuitul MSGEQ7: | ||
- | {{:pm:prj2021:avaduva:asv_bb.jpeg?400}} | + | {{:pm:prj2021:avaduva:asv_bb.jpeg?350}} |
- | {{:pm:prj2021:avaduva:asv_msgeq7.jpeg?400}} | + | {{:pm:prj2021:avaduva:asv_msgeq7.jpeg?350}} |
+ | |||
+ | Folosind butoanele de pe breadboard pot fi ajustate urmatoarele setari: | ||
+ | * Luminozitatea | ||
+ | * Culoarea | ||
+ | * Led-ul alb din varful fiecarei benzi on/off | ||
+ | * Ajustarea filtrului de zgomot | ||
+ | * Senzitivitatea | ||
+ | * Revenire la setarile initiale | ||
Inregistrari video in care este demonstrata functionalitatea: | Inregistrari video in care este demonstrata functionalitatea: | ||
- | - [[https://www.youtube.com/watch?v=qNf9nzvnd1k&t=66s|Testare frecvente 0-20.000Hz]] | + | - [[https://youtu.be/_RLrV8torKA|Testare frecvente 0-20.000Hz]] |
- | - Ajustare setari | + | - [[https://www.youtube.com/watch?v=PMIgREcsCVw|Test Martin Garrix - Animals]] |
- | - [[https://www.youtube.com/watch?v=gCYcHz2k5x0|Test Martin Garrix - Animals]] | + | - [[https://youtu.be/FbJga02BBs8|Ajustare setari]] |
+ | === Jurnal === | ||
+ | * 25 aprilie - alegere tema proiect si componente necesare | ||
+ | * 4 mai - sosesc componentele | ||
+ | * 8 mai - testarea componentelor | ||
+ | * 11 mai - implementare hardware | ||
+ | * 14 mai - implementare software | ||
===Bibliografie/Resurse=== | ===Bibliografie/Resurse=== | ||
+ | - <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||
- https://www.sparkfun.com/datasheets/Components/General/MSGEQ7.pdf | - https://www.sparkfun.com/datasheets/Components/General/MSGEQ7.pdf | ||
- https://cdn-shop.adafruit.com/datasheets/WS2812B.pdf | - https://cdn-shop.adafruit.com/datasheets/WS2812B.pdf | ||
- https://ardushop.ro/ro/home/1314-modul-microfon-senzor-sunet.html?gclid=CjwKCAjwhYOFBhBkEiwASF3KGfQ1NW1dzJCDF-H5T_eVcdyS1Gfm6zlmNeJkqesQr1wOgd7uVjSXDxoClYEQAvD_BwE | - https://ardushop.ro/ro/home/1314-modul-microfon-senzor-sunet.html?gclid=CjwKCAjwhYOFBhBkEiwASF3KGfQ1NW1dzJCDF-H5T_eVcdyS1Gfm6zlmNeJkqesQr1wOgd7uVjSXDxoClYEQAvD_BwE | ||
- https://ardushop.ro/ro/home/686-jack-audio-stereo-cjmcu-trrs-35mm.html?search_query=trrs&results=1 | - https://ardushop.ro/ro/home/686-jack-audio-stereo-cjmcu-trrs-35mm.html?search_query=trrs&results=1 |