Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2021:apredescu:pian_electric [2021/06/04 00:43]
andreea.pantelimon [Descriere generala]
pm:prj2021:apredescu:pian_electric [2021/06/04 11:15] (current)
andreea.pantelimon [Software Design]
Line 5: Line 5:
 ===== Introducere ===== ===== Introducere =====
  
-Proiectul are ca si scop implementarea unui pian care sa aibe doua module ​implementate. Modulul "​freestyle"​ si modulul "​profesor"​. Acest pian poate fi folositor pentru utilizatorii care doresc sa invete melodii usoare sau care doresc sa aibe o mica jucarie cu care sa se distreze.+Proiectul are ca si scop implementarea unui pian care sa aibe doua module. Modulul "​freestyle"​ si modulul "​profesor"​. Acest pian poate fi folositor pentru utilizatorii care doresc sa invete melodii usoare sau care doresc sa aibe o mica jucarie cu care sa se distreze.
  
 ======Descriere generala====== ======Descriere generala======
Line 11: Line 11:
 Pianul este implementat astfel incat sa contina doua module pe care utilizatorul le poate selecta prin apasarea unui buton. Primul mod, cel de "​freestyle",​ permite utilizatorului sa cante ceea ce doreste, iar prin apasarea fiecarei dintre clape, un led se va aprinde astfel incat sa semnaleze clapa care a fost apasata. Cel de-al doilea mod, "​profesor",​ va aprinde mai intai un led care sa semnaleze utilizatorului clapa care trebuie apasata. Daca utilizatorul va apasa pe clapa gresita, atunci clapa nu va fi luata in considerare si se va astepta pana cand clapa potrivita a fost apasata. Pianul este implementat astfel incat sa contina doua module pe care utilizatorul le poate selecta prin apasarea unui buton. Primul mod, cel de "​freestyle",​ permite utilizatorului sa cante ceea ce doreste, iar prin apasarea fiecarei dintre clape, un led se va aprinde astfel incat sa semnaleze clapa care a fost apasata. Cel de-al doilea mod, "​profesor",​ va aprinde mai intai un led care sa semnaleze utilizatorului clapa care trebuie apasata. Daca utilizatorul va apasa pe clapa gresita, atunci clapa nu va fi luata in considerare si se va astepta pana cand clapa potrivita a fost apasata.
 Clapele vor fi realizate din hartie. Clapele vor fi realizate din hartie.
 +
 +**__Schema bloc__**:
 +
 + ​{{:​pm:​prj2021:​apredescu:​schema_bloc_pantelimon.png?​400|}}
 ======Hardware Design====== ======Hardware Design======
  
Line 20: Line 24:
    * Speaker x 1    * Speaker x 1
    * LED-uri x 5    * LED-uri x 5
-   * Banda LED-uri 
    * Breadboard x 1    * Breadboard x 1
    * Fire tata-tata x 24    * Fire tata-tata x 24
 +
 +**__Schema electrica__**:​
 +
 + ​{{:​pm:​prj2021:​apredescu:​schema_elec_pantelimon.png?​600|}}
  
 ======Software Design====== ======Software Design======
 Pentru implementare am folosit Arduino IDE ca si mediu de dezvoltare. Bibliotecile externe pe care le-am folosit sunt urmatorele: Pentru implementare am folosit Arduino IDE ca si mediu de dezvoltare. Bibliotecile externe pe care le-am folosit sunt urmatorele:
-   * pitches.h (ce contine notele cu frecventele ​corespunzatore)+   * pitches.h (ce contine notele cu frecventele ​corespunzatoare)
    * [[https://​www.arduinolibraries.info/​libraries/​capacitive-sensor|CapacitiveSensor.h]] pentru depistarea capacitatii electrice din corpul uman.    * [[https://​www.arduinolibraries.info/​libraries/​capacitive-sensor|CapacitiveSensor.h]] pentru depistarea capacitatii electrice din corpul uman.
  
Line 41: Line 48:
    * keyWait(CapacitiveSensor bpin) - este o functie folosita in modul "​profesor"​. Aceasta opreste melodia si asteapta pana cand utilizatorul va apasa clapa potrivita. Odata ce clapa a fost apasata, se va iesi din functie si melodia va continua;    * keyWait(CapacitiveSensor bpin) - este o functie folosita in modul "​profesor"​. Aceasta opreste melodia si asteapta pana cand utilizatorul va apasa clapa potrivita. Odata ce clapa a fost apasata, se va iesi din functie si melodia va continua;
    * Song1(), Song2(), Song3() - aceste functii au ca si rol derularea melodiilor pentru modul "​profesor"​ (sunt trei melodii implementate,​ fiecarei functii atribuindui-se una). In aceaste functii, se va aprinde ledul ce indica clapa ce trebuie apasata, se va apela keyWait si o data iesita din aceasta functie, sunetul va fi produs iar ledul va fi inchis, trecandu-se la urmatoarea nota. Am grija sa am un delay astfel incat trecerea de la o nota la alta sa nu fie prea rapida;    * Song1(), Song2(), Song3() - aceste functii au ca si rol derularea melodiilor pentru modul "​profesor"​ (sunt trei melodii implementate,​ fiecarei functii atribuindui-se una). In aceaste functii, se va aprinde ledul ce indica clapa ce trebuie apasata, se va apela keyWait si o data iesita din aceasta functie, sunetul va fi produs iar ledul va fi inchis, trecandu-se la urmatoarea nota. Am grija sa am un delay astfel incat trecerea de la o nota la alta sa nu fie prea rapida;
-   * setup() -  initializez pinii pentru ​clape si butonul pentru profesor;+   * setup() -  initializez pinii pentru ​led-uri ​si butonul pentru profesor;
    * loop() -  la inceput setez senzitivitatea pentru fiecare clapa in parte. Dupa care verific daca una din clape a fost atinsa. Daca da, atunci se va aprinde ledul ce va indica clapa atinsa, iar in caz contrar ma asigur ca nu este scos niciun sunet si ca ledurile sunt inchise. Dupa care verific daca butonul de profesor a fost apasat. Cu ajutorul counter-ului,​ voi verifica de cate ori a fost apasat acest buton. Daca a fost apasat de 0 ori, atunci se va apela Song1() si count-ul creste. Daca a fost apasat o data, atunci se va apela Song2() si count-ul creste. Daca a fost apasat de 2 ori, atunci se va apela Song3() si count-ul va creste. Daca a fost apsat de 3 ori, count-ul se va reseta la 0.    * loop() -  la inceput setez senzitivitatea pentru fiecare clapa in parte. Dupa care verific daca una din clape a fost atinsa. Daca da, atunci se va aprinde ledul ce va indica clapa atinsa, iar in caz contrar ma asigur ca nu este scos niciun sunet si ca ledurile sunt inchise. Dupa care verific daca butonul de profesor a fost apasat. Cu ajutorul counter-ului,​ voi verifica de cate ori a fost apasat acest buton. Daca a fost apasat de 0 ori, atunci se va apela Song1() si count-ul creste. Daca a fost apasat o data, atunci se va apela Song2() si count-ul creste. Daca a fost apasat de 2 ori, atunci se va apela Song3() si count-ul va creste. Daca a fost apsat de 3 ori, count-ul se va reseta la 0.
  
Line 52: Line 59:
    * buttonsx: sunt salvate variabile de tip CapacitiveSensor ce reprezinta ce clape vor trebui apasate;    * buttonsx: sunt salvate variabile de tip CapacitiveSensor ce reprezinta ce clape vor trebui apasate;
 ======Rezultate obtinute====== ======Rezultate obtinute======
 + Am obtinut un pian electric, a caror clape sunt facute din hartie si prin atingerea acestora sunetul este produs si care are doua module implementate. Una de "​freestyle"​ in care utilizatorul poate sa cante cum doreste si una de "​profesor"​ in care utilizatorul poate invata mai multe melodii.
  
-Overview al proiectului:​+ Overview al proiectului:​ 
 + 
 + ​{{:​pm:​prj2021:​apredescu:​pantelimon1.jpeg?​200|}} ​ {{:​pm:​prj2021:​apredescu:​pantelimon3.jpeg?​200|}} 
 + 
 + ​{{:​pm:​prj2021:​apredescu:​pantelimon4.jpeg?​200|}} 
 + 
 +Mai jos puteti gasi un mic demo al proiectului:​ 
 + 
 +[[https://​www.youtube.com/​watch?​v=ujA1CVNmL_M|DEMO]]
 ======Concluzii====== ======Concluzii======
  
Line 65: Line 81:
 ======Donwload====== ======Donwload======
  
 +Atasez mai jos arhiva cu codul sursa.
 +
 +{{:​pm:​prj2021:​apredescu:​pantelimon_andreea_331cc.zip|Arhiva}}
 +
 +======Jurnal======
 +
 + ​01.05.2021 - Crearea paginii de wiki.
 +
 + ​03.05.2021 - Comandarea componentelor.
 +
 + ​17.05.2021 - Testarea componentelor.
 +
 + ​02.06.2021 - Finalizarea testarii partii hardware si software.
 +
 + ​03.05.2021 - Finalizarea paginii de wiki.
 ======Bibliografie / Resurse====== ======Bibliografie / Resurse======
 [[https://​ocw.cs.pub.ro/​courses/​pm/​prj2021/​apredescu/​pian_electric?​do=export_pdf|Export PDF]] [[https://​ocw.cs.pub.ro/​courses/​pm/​prj2021/​apredescu/​pian_electric?​do=export_pdf|Export PDF]]
pm/prj2021/apredescu/pian_electric.1622756594.txt.gz · Last modified: 2021/06/04 00:43 by andreea.pantelimon
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0