This is an old revision of the document!
Piano Player and microSD Song Looper
Student: Răzvan Florian Ghițan
Grupa: 334CC
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ă.
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.
Hardware Design
Componente necesare:
Schemă electrică:
Software Design
Descrierea codului aplicaţiei (firmware):
mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR)
librării şi surse 3rd-party (e.g. Procyon AVRlib)
algoritmi şi structuri pe care plănuiţi să le implementaţi
(etapa 3) surse şi funcţii implementate
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.
Biblioteci utilizate:
SD.h: pentru interacțiunea cu modulul de card microSD
SPI.h: pentru comunicarea prin interfața serial
TMRpcm.h: pentru redarea fișiserelor în format .wav către buzzer
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.
Jurnal
02.05.2022: Creare pagină OCW
04.05.2022: -
24.05.2022: Adăugare schemă electrică în secțiunea Hardware Design
27.05.2022: Actualizarea secțiunii Software Design
Bibliografie/Resurse