Table of Contents

Mini Piano

Autor

Diaconu Maria-Loredana, 335CA

Introducere

Scopul proiecului a fost realizarea unui instrument asemanator unui pian, ce produce note muzicale prin apasarea butoanelor. Cele 8 butoane corespund notelor din gama Do major, practic clapele albe de pe un pian normal. Instrumentul mai dispune de doua butoane, de record si playback, ce asigura functionalitatea de a inregistra o melodie cantata de utilizator si de a o reda.

Am ales sa fac acest proiect deoarece sunt pasionata de muzica si voi folosi instrumentul in continuare, pentru a-mi stresa prietenii.

Descriere generală

Schema bloc

Functionare

Utilizatorul ofera input instrumentului prin apasarea butoanelor corespunzatoare notelor. Buzzerul va reda, apoi, sunetul la frecventa potrivita. In momentul in care utilizatorul apasa pe butonul de record, se aprinde ledul rosu, ce semnaleaza ca a inceput inregistrarea. Utilizatorul poate opri inregistrarea, apasand din nou pe acelasi buton. In acest moment, fragmentul muzical este salvat si poate fi redat o singura data folosind butonul de playback. Cat timp se reda melodia, se aprinde ledul verde.

Hardware Design

Componente

Nume Nr. piese
Arduino Uno R3 1
Breadboard 1
Butoane clape 8
Butoane control 2
LED-uri indicatoare 2
Rezistente 220Ω 12
Buzzer piezoelectric pasiv 1

Schema electrica

Software Design

Programul a fost dezvoltat pe Windows, utilizand Arduino IDE, deoarece dispune de toate bibliotecile necesare si face foarte simplu procesul de a incarca cod pe placuta.

Am definit doua structuri:

Secventa muzicala inregistrata este retinuta intr-un array de elemente de tip Note numit song. Pauzele in melodie sunt reprezentate prin note “silentioase”, cu identificatorul 0.

Sunt verificate starile butoanelor de record si playback si sunt aprinse sau stinse ledurile in functie de acestea. Pentru a verifica daca sunt apasate sau nu, am folosit mecanismul de debounce, cu un delay de 50 ms. Se verifica starile clapelor si, daca butonul de record este apasat, notele sunt adaugate in array-ul song, impreuna cu durata lor. Daca este apsat butonul de playback, se itereaza prin array si se reda fiecare nota, dimensiunea array-ului fiind resetata.

Rezultate obtinute

Am reusit sa realizez ce mi-am propus cu acest proiect si am pierdut mult prea mult timp distrandu-ma cu el. Din pacate, nu are o carcasa, iar firele iti cam stau in cale, dar este o jucarie functionala.

piano_2.jpg piano_1.jpg

Demo

Demo Proiect PM

Concluzii

Desi facusem schema inainte in Tinkercad, unde am lucrat tot semestrul, a durat putin mai mult decat ma asteptam deoarece in viata reala apar situatii neprevazute (jumatatea stanga a breadboardului meu este deconectata de jumatatea dreapta, mi-am dat seama tarziu m(). Desi mi s-a parut inca o chestie in plus la inceput, pana la urma ma bucur ca am avut sansa sa construiesc ceva fizic si m-am ales cu o jucarie draguta.

Download

cod_sursa.zip
schema_electrica.zip

Bibliografie

Resurse

PM Wiki
Debounce

Documentatia

mini_piano_.pdf