Differences

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

Link to this comparison view

pm:prj2022:dene:special_player [2022/05/12 15:12]
razvan.ghitan [Descriere generală]
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ă =====
  
 În momentul în care plăcuța Arduino este conectată la un sistem, aceasta va putea reda sunetele specifice octavei unui pian prin apăsarea butoanelor amplasate. De asemenea, modulul de card MicroSD va citi date constant și va reda conținutul pieselor mp3 de pe acesta. Pentru aceste opțiuni vor exista butoane care vor reda piesa următoare, respectiv piesa precedentă și un buton specific pentru opțiunea de looping. În momentul în care plăcuța Arduino este conectată la un sistem, aceasta va putea reda sunetele specifice octavei unui pian prin apăsarea butoanelor amplasate. De asemenea, modulul de card MicroSD va citi date constant și va reda conținutul pieselor mp3 de pe acesta. Pentru aceste opțiuni vor exista butoane care vor reda piesa următoare, respectiv piesa precedentă și un buton specific pentru opțiunea de looping.
  
-<note tip> +{{ :pm:​prj2022:​dene:​razvan_ghitan_schema_bloc.png?​direct&​300 |}}
-O schemă bloc cu toate modulele proiectului vostru, atât software cât şi hardware însoţită de o descriere a acestora precum şi a modului în care interacţionează. +
- +
-Exemplu de schemă bloc: {{pm:​prj2022:​dene:​pm-diagram.png?​direct&​450|}} +
-</​note>​+
  
 ===== Hardware Design ===== ===== Hardware Design =====
  
 == Componente necesare: == == Componente necesare: ==
-   ​* ​Arduino UNO+   ​* ​Plusivo board 
    * Breadboard    * Breadboard
-   * Pushbutton ​switch+   * Pushbutton ​switches
    * Buzzer / Speaker    * Buzzer / Speaker
-   ​* ​Adaptor modul card MicroSD+   ​* ​Module adapter ​MicroSD ​card
  
 +== Schemă electrică: ==
 +{{ :​pm:​prj2022:​dene:​schema_razvan_finala.png?​direct&​300 |}}
  
  
Line 31: 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>+
  
-===== Rezultate Obţinute =====+== 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
  
-<note tip> +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.
-Care au fost rezultatele obţinute ​în urma realizării proiectului vostru. +
-</​note>​+
  
-===== Concluzii =====+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.
  
-===== Download =====+De asemenea, în funcția //play()// redau suntele specifice piesei curente în funcție de variabila iterator.
  
-<note warning>​ +Partea de looping audio nu funcționează datorită limitărilor plăcuței.
-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ă ;-).+
  
-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**. +===== Surse și poze=====
-</​note>​+
  
 +{{:​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 =====
 +
 +
 +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 =====
  
-<note tip> +   * **02.05.2022**:​ Creare pagină OCW 
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. +   * **04.05.2022**:​ Adăugare informații despre proiect 
-</note>+   * **24.05.2022**:​ Adăugare schemă electrică în secțiunea //Hardware Design// 
 +   * **30.05.2022**:​ Actualizarea secțiunii //Software Design//
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
-<​note>​ +   * https://​www.arduino.cc/​reference/​en/​language/​functions/​advanced-io/tone/ 
-Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. +   https://www.arduino.cc/​reference/​en/​libraries/​sd/​ 
-</note>+   * https://​www.instructables.com/​Arduino-Multi-track-MIDI-Loop-Station/
  
 <​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>​
 +
  
pm/prj2022/dene/special_player.1652357571.txt.gz · Last modified: 2022/05/12 15:12 by razvan.ghitan
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