This shows you the differences between two versions of the page.
pm:prj2023:iotelea:musicpad [2023/05/28 20:48] raul_teodor.bocanu [Concluzii] |
pm:prj2023:iotelea:musicpad [2023/05/29 20:10] (current) raul_teodor.bocanu [Rezultate Obţinute] |
||
---|---|---|---|
Line 51: | Line 51: | ||
De asemenea, am setat un timer folosind registrii. Timer-ul este pornit prin apelarea functiei **startTimer()**, functie apelata odata ce unul din cele sase butoane este apasat, si aprinde LED-ul verde care, cat timp este aprins, permite redarea celor sase sound-uri. Odata ce timpul a expirat (18 secunde), se va aprinde LED-ul rosu timp de 5 secunde. Aprinderea LED-ului rosu permite redarea/resetarea secventei, sau, in cazul in care nu se doreste niciuna din cele doua optiuni, dupa ce acesta se stinge, se poate relua mixing-ul sound-urilor care va deschide un nou ciclu, pornind un nou timer. Timer-ul se foloseste de o intrerupere in care se intra odata la 0.5 secunde, asa ca am contorizat numarul de intrari in intrerupere pentru a putea verifica timpii doriti. | De asemenea, am setat un timer folosind registrii. Timer-ul este pornit prin apelarea functiei **startTimer()**, functie apelata odata ce unul din cele sase butoane este apasat, si aprinde LED-ul verde care, cat timp este aprins, permite redarea celor sase sound-uri. Odata ce timpul a expirat (18 secunde), se va aprinde LED-ul rosu timp de 5 secunde. Aprinderea LED-ului rosu permite redarea/resetarea secventei, sau, in cazul in care nu se doreste niciuna din cele doua optiuni, dupa ce acesta se stinge, se poate relua mixing-ul sound-urilor care va deschide un nou ciclu, pornind un nou timer. Timer-ul se foloseste de o intrerupere in care se intra odata la 0.5 secunde, asa ca am contorizat numarul de intrari in intrerupere pentru a putea verifica timpii doriti. | ||
- | In functia **setup()**, declar modul de folosire al piniilor (INPUT/OUTPUT), pornesc interfata seriala si LCD-ul, afisand un mesaj de inceput. In plus, se apeleaza trei functii auxiliare de setup pentru setarea registrilor corespunzatori intreruperilor si timer-ului si calculul specific fiecarui sound, mentionat la inceputul sectiunii. Pentru LCD am folosit libraria **LiquidCrystal_I2C.h**. | + | In functia **setup()**, declar modul de folosire al piniilor (INPUT/OUTPUT), pornesc interfata seriala si LCD-ul, afisand un mesaj de inceput. In plus, se apeleaza trei functii auxiliare de setup pentru setarea registrilor corespunzatori intreruperilor si timer-ului si calculul specific fiecarui sound, mentionat la inceputul sectiunii. Pentru LCD am folosit libraria **LiquidCrystal_I2C.h**, astfel comunicand I2C cu acesta. |
In functia **loop()**, verific care dintre cele trei functionalitati a fost folosita: "Play", "Reset", sau unul din cele 6 butoane pentru sound-uri. | In functia **loop()**, verific care dintre cele trei functionalitati a fost folosita: "Play", "Reset", sau unul din cele 6 butoane pentru sound-uri. | ||
Line 63: | Line 63: | ||
{{ :pm:prj2023:iotelea:musicpad_ex1.jpg?400 |}} {{ :pm:prj2023:iotelea:musicpad_ex2.jpg?400 |}} {{ :pm:prj2023:iotelea:musicpad_ex3.jpg?400 |}} {{ :pm:prj2023:iotelea:musicpad_ex4.jpg?400 |}} | {{ :pm:prj2023:iotelea:musicpad_ex1.jpg?400 |}} {{ :pm:prj2023:iotelea:musicpad_ex2.jpg?400 |}} {{ :pm:prj2023:iotelea:musicpad_ex3.jpg?400 |}} {{ :pm:prj2023:iotelea:musicpad_ex4.jpg?400 |}} | ||
+ | |||
+ | [[https://drive.google.com/file/d/14OhikOYIM5vypfy0tHz2h-RwUwbI8oyG/view|Demo1]] | ||
+ | |||
+ | [[https://drive.google.com/file/d/1H-B3WkImNg7Ag_2iyvDFiP4P9MbvkPZs/view|Demo2]] | ||
Line 76: | Line 80: | ||
===== Download ===== | ===== Download ===== | ||
- | <note warning> | + | Am atasat codul sursa intr-un fisier .txt: |
- | 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:prj2023:iotelea:musicpad_cod.zip |}} | ||
- | 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> | ||
===== Jurnal ===== | ===== Jurnal ===== | ||
Line 86: | Line 89: | ||
*18.05.2023: Am adăugat partea de Hardware Design si am conectat toate componentele fizice | *18.05.2023: Am adăugat partea de Hardware Design si am conectat toate componentele fizice | ||
*20.05.2023: Am realizat testarea componentelor si cateva functionalitati de baza pentru proiect | *20.05.2023: Am realizat testarea componentelor si cateva functionalitati de baza pentru proiect | ||
+ | *23.05.2023: Am implementat redarea sunetelor prin butoane si functiile de Play si Reset | ||
+ | *26.05.2023: Am terminat implementarea Software a proiectului si am finisat pagina OCW | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | <note> | + | * [[https://ocw.cs.pub.ro/courses/pm/lab/lab2-2023|Lab PM 2]] |
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | * [[https://ocw.cs.pub.ro/courses/pm/lab/lab3-2023|Lab PM 3]] |
- | </note> | + | * [[https://ocw.cs.pub.ro/courses/pm/lab/lab6-2022|Lab PM 6]] |
+ | * [[https://www.youtube.com/watch?v=MeWgnt0YLj8|Exemplu conectare mai multe butoane la acelasi pin]] | ||
+ | * [[https://github.com/robsoncouto/arduino-songs|Arduino Songs]] | ||
+ | * [[https://chat.openai.com/|ChatGPT pentru a genera sound-urile ca note]] | ||
+ | * {{ :pm:prj2023:iotelea:music_pad-1.pdf |}} | ||
+ | |||
+ | |||
<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> | ||