This shows you the differences between two versions of the page.
pm:prj2021:apredescu:pian_electric_cu_backing_track [2021/06/03 15:47] andrei.vlaic [Jurnal] |
pm:prj2021:apredescu:pian_electric_cu_backing_track [2021/06/03 22:34] (current) andrei.vlaic [Download] |
||
---|---|---|---|
Line 27: | Line 27: | ||
===== Software Design ===== | ===== Software Design ===== | ||
+ | |||
+ | Pentru scrierea codului am folosit ArduinoIDE. Am inclus libraria TMRpcm si am definit frecventele de baze pentru notele octavei Do(C) avand ca frecventa de referinta tonul La(A = 400Hz). | ||
+ | Am declarat constantele pentru pinii unde se conecteaza butoanele care produc sunetul aferent notei apasate, un numar intreg pentru valoare octavei (imi pot schimba octava in sus prin dublarea frecventei intr-un anumit interval), si cateva variabile folosite pentru a inregistra doar o apasare a butonului de schimbare a octavei. | ||
+ | |||
+ | In functia setup imi initializez citirea de pe cardul SD folosind libraria tmrpcm. Piesa redata de pe card poate fi schimbata in cod prin schimbarea indicelui de la tmrpcm.play("songX.wav") deoarece nu am mai avut un pin liber pentru un buton care sa schimbe indicele piesei redate fara folosirea unui multiplexor. Daca initializarea a avut loc cu succes va incepe redarea unei piese de pe difuzorul de 0.5W/8Ohmi, in rest in setup setez pinii pentru butoane folosind pinMode si digitalWrite. | ||
+ | |||
+ | In cadrul functiei loop realizez un test pentru a vedea daca butonul de schimbare al octavei este apasat constant si ignor pentru un anumit interval de timp input-ul daca nu se schimba pentru a nu schimba de mai multe ori o octava la apasarea unui buton, in rest am 5 nivele pentru valoriile octavei si cateva loop-uri while pentru a utiliza functia tone pentru redarea notelor muzicale de pe difuzorul-brick. | ||
+ | |||
+ | ===== Rezultate obtinute ===== | ||
+ | |||
+ | Am reusit sa obtin un pian electric care are si posibilitatea de a reda de pe un cardSD muzica care are ca rol sa serveasca fie ca acompaniament pentru pianist, fie pentru a fi un cover peste piesa. Pianistul dispune de toate tonurile si semitonurile dintr-o octava (13 note muzicale) si daca considera necesar isi poate schimba octava pentru a canta in alt registru mai inalt. | ||
+ | |||
+ | {{:pm:prj2021:apredescu:pian_electric_backingtrack_pic.png?200|}} | ||
+ | |||
+ | Link prezentare video | ||
+ | |||
+ | https://youtu.be/UL6geqYeO1o | ||
+ | |||
+ | ===== Concluzii ===== | ||
+ | |||
+ | In urma acestui proiect am invatat cum sa folosesc un microcontroller Arduino si sa folosesc piesele hardware si deasemenea am invatat cum sa le programez. Inafara de un mini difuzor care nu avea un fir bun nu am avut probleme cu piesele comandate. Singura problema pe parcurs este ca nu am reusit sa complic pe cat de mult voiam proiectul din lipsa de pini liberi dar am reusit sa acopar functionalitatea de baza propusa (pianul cu 13 butoane + octava variabila si playback-ul unei melodii de pe card). La ce am renuntat au fost adjustarea dinamica a volumului si posibilitatea de a schimba melodia fara a fi nevoit sa reincarc codul pe placuta. | ||
+ | |||
+ | Am decis sa renunt la folosirea unui tranzistor sau a unei rezistente de 1k pe care o aveam in serie cu pinul la care este conectat difuzorul de 0.5W/8Ohmi deoarece ii reducea foarte mult din volumul sunetului, iar rezistenta de 1k pusa la mini difuzor poate fi si ea scoasa fara a fi afectata functionalitatea proiectului. | ||
+ | |||
+ | ===== Download ===== | ||
+ | |||
+ | In cadrul acestei arhive se afla codul sursa, schema bloc, schema electrica si o poza cu proiectul realizat. | ||
+ | |||
+ | {{:pm:prj2021:apredescu:arhivaproiectpm_pianelectriccubackingtrack.rar|}} | ||
+ | |||
===== Jurnal ===== | ===== Jurnal ===== | ||
Line 42: | Line 72: | ||
3.06.2021 Finalizare pagina de wiki + video. Milestone 2 completat | 3.06.2021 Finalizare pagina de wiki + video. Milestone 2 completat | ||
- | ===== BIBLIOGRAFIE/RESURSE ===== | + | ===== Bibliografie/Resurse ===== |
[[https://ocw.cs.pub.ro/courses/pm/prj2021/apredescu/pian_electric_cu_backing_track?do=export_pdf|Download pdf]] | [[https://ocw.cs.pub.ro/courses/pm/prj2021/apredescu/pian_electric_cu_backing_track?do=export_pdf|Download pdf]] | ||
Line 48: | Line 78: | ||
https://www.autodesk.com/products/eagle/free-download Program folosit pentru realizarea schemei electrice | https://www.autodesk.com/products/eagle/free-download Program folosit pentru realizarea schemei electrice | ||
+ | |||
https://www.arduino.cc/en/software Program folosit pentru scrierea codului | https://www.arduino.cc/en/software Program folosit pentru scrierea codului | ||
+ | |||
https://www.arduino.cc/reference/en/ Documentatie functii din ArduinoIDE | https://www.arduino.cc/reference/en/ Documentatie functii din ArduinoIDE | ||
+ | |||
https://www.arduino.cc/reference/en/language/functions/advanced-io/tone/ | https://www.arduino.cc/reference/en/language/functions/advanced-io/tone/ | ||
https://audio.online-convert.com/convert-to-wav Folosit pentru conversia fisierelor mp3 in format wav pentru redarea pieselor | https://audio.online-convert.com/convert-to-wav Folosit pentru conversia fisierelor mp3 in format wav pentru redarea pieselor | ||
+ | |||
https://domoticx.com/arduino-library-tmrpcm/ Librarie folosita pentru redarea pieselor de pe cardulSD + documentatie | https://domoticx.com/arduino-library-tmrpcm/ Librarie folosita pentru redarea pieselor de pe cardulSD + documentatie | ||