This shows you the differences between two versions of the page.
pm:prj2021:apredescu:pian_electric [2021/06/04 01:19] andreea.pantelimon [Donwload] |
pm:prj2021:apredescu:pian_electric [2021/06/04 11:15] (current) andreea.pantelimon [Software Design] |
||
---|---|---|---|
Line 33: | Line 33: | ||
======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 48: | 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 66: | Line 66: | ||
{{:pm:prj2021:apredescu:pantelimon4.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 80: | Line 84: | ||
{{:pm:prj2021:apredescu:pantelimon_andreea_331cc.zip|Arhiva}} | {{: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]] |