This is an old revision of the document!


Keyboard Piano Arduino - Pedolu Carmen-Petronela 332CAa

Pedolu Carmen-Petronela 332CAa

Introducere

Proiectul presupune implementarea unui pian cu 8 clape si afisaj electronic al notelor muzicale. Fiecare clapa va fi simulata printr-un buton, iar pe afisajul electronic va aparea nota muzicala asociata clapei. Se vor putea reda si melodii de pe un cardSD, daca este apasat un anumit buton.

Scopul proiectului este de a putea canta la pian sau de a asculta melodii de pe card SD.

Ideea mi-a venit la laboratorul 4 in care am vazut cum se poate citi valoarea potentiometrului doar atunci cand se apasa un buton. Astfel mi-a venit ideea de a avea mai multe butoane care redau fiecare alt sunet si nota muzicala sunetului sa o afisez pe un monitor. Pentru a complica un pic ideea m-am gandit sa pot reda melodii de pe un un card MicroSD.

Consider ca acest proiect va fi util atat pentru mine ca voi acumula si lega cunostinte, dar si pentru cei care doresc sa cante la pian sau sa asculte muzica de pe un card MicroSD, fara a fi nevoie de un pian fizic, care este mai costisitor.

Descriere generală

Utilizatorul apasa pe un buton, care este conectat in mod direct la placuta. Aceasta va interpreta ce buton este apasat si va reda sunetul specific butonului si va afisa pe monitor ce sunet se reda. Sunetul va fi redat doar cat timp este butonul apasat. Cand nu este niciun buton apasat, atunci se va afisa doar “Hello world!” pe ecranul LCD.

Pentru a reda muzica, va exista un buton special, care odata apasat va incepe sa cante o melodie de pe cardul SD pana la final. In timpul in care melodia este redata pe monitor se va afisa un mesajul “Play music!” pe monitor si un countdown de la 1000ms in timpul redarii melodiei. Daca timpul expira in locul countdown-ului va scrie “Timer expirat!”.

Daca in timpul in care o melodie este redata, se apasa o tasta a unei clape, atunci aceasta nu va fi luata in considerare pana cand melodia nu se opreste.

Cand nu se reda nimic, pe monitor nu este afisat nimic

Hardware Design

Componentele necesare pentru realizarea proiectului sunt:

  • Modul Slot Card Compatibil cu MicroSD - pentru a reda melodii
  • LCD 1602 cu Interfata I2C si Backlight Albastru - pentru a afisa text
  • Modul cu Buzzer activ - pentru a reda muzica
  • 9 Butoane - 8 butoane vor fi pentru notele muzicale DO RE MI FA SOL LA SI DO si un buton pentru a reda muzica sau a opri muzica de pe cardul SD
  • Plăcuță Arduino Uno
  • Breadboard
  • Rezistente
  • Fire

Schema electrica

Software Design

Mediu de dezvoltare: Arduino IDE

Librarii:

  • SPI.h si SD.h - pentru citirea de pe microSD
  • Wire.h si LiquidCrystal_I2C.h - pentru afisarea pe monitorul LCD I2C

Descrierea functiilor:

  • void myCallback()-
  • void setup() - setez pinii pentru pentru butoane, atasez intreruperea pentru butonul de play, initializez cardul SD, setez timer-ul
  • ISR(TIMER2_OVF_vect) - functia e apelata pentru a de timer pentru a decrementa countdown-ul
  • void loop() -

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

Rezultate Obţinute

Concluzii

Proiectul mi s-a parut interesant, fascinant si util sa lucrez la proiect. Libertatea de a face ceea ce imi doresc m-a atras la inceput. Apoi mi-a placut sa invat sa lipesc componente. Mi s-a parut interesant sa caut in datasheet diverse informatii despre intreruperi, timere si pinii la care trebuie conectati piesele. Consider ca am invatat multe despre lucrul cu arduino si conectarea hardware-ului cu software-ul.

Download

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.

Jurnal

25.04.2023 - Alegere tema proiect

03.05.2023 - Comanda piese

05.05.2023 - Primire piese si Realizare schema electrica

09.05.2023 - Lipire butoane

12.05.2023 - Lipirea celorlalte componente

22-23.05.2023 - Implementare Software

26-27.05.2023 - Completare documentatie

Bibliografie/Resurse

pm/prj2023/vstoica/carmenpedolu.1685200539.txt.gz · Last modified: 2023/05/27 18:15 by carmen.pedolu
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