This shows you the differences between two versions of the page.
pm:prj2021:abasoc:lightsmusical [2021/06/01 18:44] miruna.orzata [Rezultate Obținute] |
pm:prj2021:abasoc:lightsmusical [2021/06/01 21:06] (current) miruna.orzata [Comentarii] |
||
---|---|---|---|
Line 20: | Line 20: | ||
^Componente ^Numar ^ | ^Componente ^Numar ^ | ||
|Arduino Uno |1 | | |Arduino Uno |1 | | ||
- | |Difuzor |1 | | + | |Difuzor SparkFun 0.5W |1 | |
+ | |Amplificator lm386 |1 | | ||
|Modul card SD |1 | | |Modul card SD |1 | | ||
|Card SD |1 | | |Card SD |1 | | ||
- | |Led RGB |1 | | + | |Led RGB |3 | |
- | |Rezistente 1k |4 | | + | |Rezistente 1k |9 | |
|Breadboard |1 | | |Breadboard |1 | | ||
|Butoane |2 | | |Butoane |2 | | ||
- | |Ecran LCD |1 | | + | |Ecran LCD cu interfata I2C |1 | |
- | |Potentiometru |1 | | + | |
|Fire tata-tata |30 | | |Fire tata-tata |30 | | ||
- | |Condensator |1 | | + | |Fire mama-tata |13 | |
+ | |Condensator |2 | | ||
\\ | \\ | ||
**Schema cablaj:** \\ | **Schema cablaj:** \\ | ||
Line 39: | Line 40: | ||
\\ | \\ | ||
- | ^__Librariile necesare:__ ^ | + | ^__Bibliotecile folosite:__ ^ |
- | |-> #include "SD.h" | | + | |-> #include <SD.h> | |
|-> #include <LiquidCrystal_I2C.h> | | |-> #include <LiquidCrystal_I2C.h> | | ||
- | |-> #include "SPI.h" | | + | |-> #include <SPI.h> | |
\\ | \\ | ||
Line 317: | Line 318: | ||
\\ | \\ | ||
+ | ====== Comentarii ====== | ||
+ | Ideea initiala a proiectului a fost de a reda melodii .wav de pe un card SD | ||
+ | si de adauga un fundal luminos pentru a armoniza culorile si notele muzicale, | ||
+ | iar display-ul LCD trebuia sa afiseze informatii despre melodia curenta. | ||
+ | Din motive necunoscute, prin intermediul bibliotecii TMRpcm, nu am reusit sa redau | ||
+ | fisierele .wav de pe cardul SD. | ||
+ | |||
+ | Din aceasta cauza, am ales sa stochez pe card mai multe fisiere .txt cu note pentru | ||
+ | fiecare melodie in parte, ca apoi sa citesc notele dintr-un anumit fisier intr-un | ||
+ | vector si sa le redau cu ajutorul functiei "note" din Arduino IDE. | ||
+ | |||
+ | Cu ajutorul primului buton se poate schimba melodia curenta, iar cel | ||
+ | de-al doilea buton are rolul de a porni si de a opri animatia led-urilor. | ||
+ | In timpul animatiei luminoase, toate cele 3 led-uri isi schimba culorile in functie | ||
+ | de nota redata curent de difuzor. | ||
+ | |||
+ | De asemenea, am incercat sa ameliorez debouncing-ul provocat de contactele | ||
+ | imperfecte din structura interna a butonului prin adaugarea unui condensator | ||
+ | in serie cu fiecare buton. Nu a functionat dupa cum ma asteptam, dar, | ||
+ | in general, apare o singura intrerupere externa atunci cand apas pe buton. | ||
+ | |||
+ | In plus, din cauza spatiului de stocare limitat prezent pe placuta Arduino, | ||
+ | am fost nevoita sa inregistrez varianta proiectului in care nu folosesc | ||
+ | display-ul LCD, deoarece componentele nu mai functionau cum trebuie la adaugarea | ||
+ | bibliotecii "LiquidCrystal_I2C". Bineinteles, am incercat sa reduc foarte mult | ||
+ | memoria consumata in program prin micsorarea vectorului de note, dar tot am | ||
+ | intampinat erori de performanta. | ||
+ | |||
+ | In arhiva se poate gasi si varianta codului cu biblioteca pentru LCD in caz | ||
+ | ca se doreste implementarea proiectului pe o placuta de dezvoltare cu o capacitate | ||
+ | de memorie mai mare. Tin sa mentionez ca aceasta versiune functioneaza, dar | ||
+ | sunetul pare deteriorat, in sensul ca se aude ca si cum se sar anumite note | ||
+ | sau se redau uneori alte note decat cele originale. | ||
+ | |||
+ | Din punct de vedere hardware, versiunea finala a proiectului a suferit cateva | ||
+ | modificari, deoarece am avut nevoie de a economisi cativa pini pentru inca 2 | ||
+ | led-uri RGB si a trebuit sa aleg un LCD cu interfata I2C, in loc de unul obisnuit. | ||
+ | Pe langa aceste modificari, am mai avut nevoie de un amplificator lm386 pentru un | ||
+ | speaker SparkFun de 0.5W. | ||
====== Rezultate Obținute ====== | ====== Rezultate Obținute ====== | ||
La acest link se afla un scurt videoclip demonstrativ cu intreaga functionalitate a proiectului: https://www.youtube.com/watch?v=sQiFtnPFtMM | La acest link se afla un scurt videoclip demonstrativ cu intreaga functionalitate a proiectului: https://www.youtube.com/watch?v=sQiFtnPFtMM | ||
- | {{ :pm:prj2021:abasoc:poza1.jpeg?600 }} \\ | + | {{ :pm:prj2021:abasoc:poza1.jpeg?1000 }} \\ |
- | {{ :pm:prj2021:abasoc:poza3.jpeg?600 }} \\ | + | {{ :pm:prj2021:abasoc:poza3.jpeg?1000 }} \\ |
- | {{ :pm:prj2021:abasoc:poza8.jpeg?600 }} \\ | + | {{ :pm:prj2021:abasoc:poza8.jpeg?1000 }} \\ |
- | {{ :pm:prj2021:abasoc:poza9.jpeg?600 }} \\ | + | {{ :pm:prj2021:abasoc:poza9.jpeg?1000 }} \\ |
- | {{ :pm:prj2021:abasoc:poza10.jpeg?600 }} \\ | + | {{ :pm:prj2021:abasoc:poza10.jpeg?1000 }} \\ |
- | {{ :pm:prj2021:abasoc:poza11.jpeg?600 }} \\ | + | {{ :pm:prj2021:abasoc:poza11.jpeg?1000 }} \\ |
====== Concluzii ====== | ====== Concluzii ====== | ||
- | TODO | + | Cu toate ca am intampinat mai multe probleme tehnice pe parcursul implementarii proiectului, intr-un final am ajuns la un rezultat interesant. Mi-a facut placere sa experimentez anumite functionalitati, sa ma documentez din tutoriale si sa pun in aplicare notiunile studiate la laborator. |
====== Download ====== | ====== Download ====== | ||
- | Link pagina: https://ocw.cs.pub.ro/courses/pm/prj2021/abasoc/lightsmusical | + | Link pagina: https://ocw.cs.pub.ro/courses/pm/prj2021/abasoc/lightsmusical \\ |
+ | Arhiva proiect: | ||
+ | {{ :pm:prj2021:abasoc:proiect_pm.zip?}} \\ | ||
+ | Pdf pagina: {{ :pm:prj2021:abasoc:lights_musical.pdf?}} \\ | ||
====== Jurnal ====== | ====== Jurnal ====== | ||
- | TODO \\ | + | 27 Aprilie -> alegerea temei pentru proiect \\ |
+ | 1 Mai -> realizarea diagramei bloc si a schemei cablaj \\ | ||
+ | 3 Mai -> comandarea pieselor necesare \\ | ||
+ | 7 Mai -> cablarea fizica a componentelor \\ | ||
+ | 23 Mai -> implementarea software \\ | ||
+ | 1 Iunie -> finalizare proiect \\ | ||
====== Bibliografie/Resurse ====== | ====== Bibliografie/Resurse ====== |