This shows you the differences between two versions of the page.
|
pm:prj2021:abasoc:lightsmusical [2021/06/01 18:43] 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?300 }} \\ | + | {{ :pm:prj2021:abasoc:poza1.jpeg?1000 }} \\ |
| - | {{ :pm:prj2021:abasoc:poza3.jpeg?300 }} \\ | + | {{ :pm:prj2021:abasoc:poza3.jpeg?1000 }} \\ |
| - | {{ :pm:prj2021:abasoc:poza8.jpeg?300 }} \\ | + | {{ :pm:prj2021:abasoc:poza8.jpeg?1000 }} \\ |
| - | {{ :pm:prj2021:abasoc:poza9.jpeg?300 }} \\ | + | {{ :pm:prj2021:abasoc:poza9.jpeg?1000 }} \\ |
| - | {{ :pm:prj2021:abasoc:poza10.jpeg?300 }} \\ | + | {{ :pm:prj2021:abasoc:poza10.jpeg?1000 }} \\ |
| - | {{ :pm:prj2021:abasoc:poza11.jpeg?300 }} \\ | + | {{ :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 ====== | ||