This shows you the differences between two versions of the page.
pm:prj2022:dene:special_player [2022/05/27 18:45] razvan.ghitan [Bibliografie/Resurse] |
pm:prj2022:dene:special_player [2022/06/02 01:02] (current) razvan.ghitan [Surse și poze] |
||
---|---|---|---|
Line 6: | Line 6: | ||
</note> | </note> | ||
===== Introducere ===== | ===== Introducere ===== | ||
- | În cadrul acestui proiect, mi-am propus să creez un dispozitiv multi-use care să îmbine utilitatea și plăcerea de a utiliza un pian, cât și funcționalitatea redării melodiilor preferate de pe un card microSD. De asemenea, în cazul în care utilizatorul dorește să se repete o secvență din piesa favorită, va exista modalitatea de a crea un looper pentru câteva secunde din piesă. | + | În cadrul acestui proiect, mi-am propus să creez un dispozitiv multi-use care să îmbine utilitatea și plăcerea de a utiliza un pian, cât și funcționalitatea redării melodiilor preferate de pe un card microSD. De asemenea, în cazul în care utilizatorul dorește să se repete o secvență din piesa favorită, va exista modalitatea de a crea un looper pentru câteva secunde din piesă și în același timp, opțiunea de a naviga prin lista de piese favorite. |
===== Descriere generală ===== | ===== Descriere generală ===== | ||
Line 16: | Line 16: | ||
== Componente necesare: == | == Componente necesare: == | ||
- | * Arduino UNO / Plusivo | + | * Plusivo board |
* Breadboard | * Breadboard | ||
* Pushbutton switches | * Pushbutton switches | ||
Line 23: | Line 23: | ||
== Schemă electrică: == | == Schemă electrică: == | ||
- | {{ :pm:prj2022:dene:schema_razvan.png?direct&300 |}} | + | {{ :pm:prj2022:dene:schema_razvan_finala.png?direct&300 |}} |
Line 29: | Line 29: | ||
- | <note tip> | + | == Biblioteci utilizate: == |
- | Descrierea codului aplicaţiei (firmware): | + | * //SD.h:// pentru interacțiunea cu modulul de card microSD |
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | * //SPI.h:// pentru comunicarea prin interfața serial |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | * //TMRpcm.h:// pentru redarea fișiserelor în format .wav către buzzer |
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | |
- | * (etapa 3) surse şi funcţii implementate | + | |
- | </note> | + | |
+ | == Codificarea pieselor hardware: == | ||
+ | * //CS// (Chip Select) este conectat la pinul digital 10 | ||
+ | * //BUZZ// (Buzzer-ul) este conectat la pinul digital 9 | ||
+ | * //C/D/E/F/G/A/B// reprezintă notele din octavă, conectate la pinii digitali 8, 7, 6, 5, 4, 3, 2 | ||
+ | * //PREV// reprezintă butonul care redă piesa dinaintea celei care este redată curent și este conectat la pinul analogic A0 | ||
+ | * //NEXT// reprezintă butonul care redă piesa următoare celei care este redată curent și este conectat la pinul analogic A1 | ||
+ | * //LOOP// reprezintă butonul care creează secvența de loop curentă în momentul apăsări și până în momentul ridicării și este conectat la pinul analogic A2 | ||
+ | Pentru redarea sunetelor specifice pianului, am folosit funcția //tone()// și o serie de IF-uri pentru a reda sunetul corespunzător frecvenței notei în funcție de butonul apăsat. | ||
+ | |||
+ | Comunicarea cu microSD-ul o realizez cu variabila de tip TMRpcm, căreia îi setez pinul buzzerului și volumul. În //loop()// verific dacă este apăsat vreunul dintre butoanele de control a pieselor. Dacă sunt apăsate butoanele NEXT sau PREV, deplasez iteratorul din lista de fișiere .wav de pe cardul microSD cu o piesă în față sau în spate, după caz. | ||
+ | |||
+ | De asemenea, în funcția //play()// redau suntele specifice piesei curente în funcție de variabila iterator. | ||
+ | |||
+ | Partea de looping audio nu funcționează datorită limitărilor plăcuței. | ||
+ | |||
+ | ===== Surse și poze===== | ||
+ | |||
+ | {{:pm:prj2022:dene:piano_arduino_razvan.zip|}} | ||
+ | |||
+ | {{ :pm:prj2022:dene:poza_circuit_razvan_1.jpeg?direct&300 |}} | ||
+ | |||
+ | {{ :pm:prj2022:dene:poza_circuit_razvan_2.jpeg?direct&300 |}} | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
- | A fost un proiect destul de interesant și challenging. Am întâmpinat probleme cu piesele și modulele. De asemenea, nu recomand personal dezvoltarea pe o plăcuță Plusivo (Chinese Arduino). A fost mega complicată testarea funcționalităților și încărcarea codului pe plăcuță. În rest, cea mai plăcută activitate pentru o disciplină din ultimul timp. =) | ||
+ | A fost un proiect destul de interesant și challenging. Am întâmpinat probleme cu piesele și modulele. De asemenea, nu recomand personal dezvoltarea pe o plăcuță Plusivo (Chinese Arduino). A fost mega complicată testarea funcționalităților și încărcarea codului pe plăcuță. În rest, cea mai plăcută activitate pentru o disciplină din ultimul timp. =) | ||
===== Jurnal ===== | ===== Jurnal ===== | ||
* **02.05.2022**: Creare pagină OCW | * **02.05.2022**: Creare pagină OCW | ||
- | * **04.05.2022**: - | + | * **04.05.2022**: Adăugare informații despre proiect |
* **24.05.2022**: Adăugare schemă electrică în secțiunea //Hardware Design// | * **24.05.2022**: Adăugare schemă electrică în secțiunea //Hardware Design// | ||
- | * **27.05.2022**: Actualizarea secțiunii //Software Design// | + | * **30.05.2022**: Actualizarea secțiunii //Software Design// |
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== |