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:
  • Arduino UNO / Plusivo
  • Breadboard
  • Pushbutton switches
  • Buzzer / Speaker
  • Module adapter MicroSD card
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

pm/prj2022/dene/special_player.1654118114.txt.gz · Last modified: 2022/06/02 00:15 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