This is an old revision of the document!
Pian Electric
Introducere
Proiectul consta in simularea unui pian electric capabil sa acopere o octava, oferind si anumite functionalitati bonus care vor fi descrise mai in
detaliu in paragrafele urmatoare
Descriere generală
Functionalitatile oferite de pianul electric:
un mod de play normal (NORMAL MODE)
un mod de inregistrare a melodiilor cantate (REC MODE)
un mod de redare a melodiilor inregistrate (PLAY MODE)
Pe LCD va aparea pe primul rand modul selectat, iar pe al doilea rand se vor afisa notele cantate/ redate. In modul de inregistrare, se va afisa langa numele modului timpul ramas din timpul total posibil de a inregistra. In modul de redare, langa nume, va aparea un format de tipul “t1:t2”, unde t1 semnifica timpul scurs de la inceperea redarii, iar t2 timpul total al melodiei inregistrate
Selectarea fiecarui mod al pianului se va realiza prin cate un buton de control. In cadrul modului de recording, inregistrarea va incepe la prima nota apasata, iar oprirea inregistrarii are loc fie cand s-a scurs tot timpul maxim posibil, fie cand apasam unul dintre cele trei butoane de control. In modul play, apasarea butonului in timpul redarii melodiei reseteaza redarea de la inceput.
Reglarea volumului se va realiza prin intermediul potentiometrului.
Schema bloc
Hardware Design
Aici puneţi tot ce ţine de hardware design:
listă de piese
-
diagrame de semnal
rezultatele simulării
Componente:
Nume Piesa | Cantitate |
ARDUINO UNO | 1 |
BREADBOARD | 2 |
FIRE TATA-TATA | - |
FIRE MAMA-TATA | - |
FIRE MAMA-MAMA | - |
BUTON | 11 |
SPEAKER | 1 |
LCD I2C | 1 |
POTENTIOMETRU | 1 |
Rezistenta 100 KΩ | 8 |
Toate componentele in afara de ARDUINO UNO au fost achizitionate de pe https://www.optimusdigital.ro/ro/
Vizualizare Circuit
Schema Electrica
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
Descriere implementare
Pentru a retine notele muzicale inregistrate in modul record folosesc structura song care contine numarul de note si un vector cu notele muzicale ce au fost cantate (valoarea 0 codifica faptul ca nimic nu a fost apasat, iar valorile 1→8 codifica notele muzicale).
Tratarea butoanelor apasate si retinerea notelor cantate cand este activ modul record sunt realizate in intreruperea timer-ului 1, timer-ul fiind setat sa se declanseze odata la 50 ms.
In modul play, se parcurge vectorul cu note muzicale din structura song. Data fiind memoria limitata a placutei Arduino Uno, am setat un timp maxim de inregistrare de 20 de secunde pentru a nu ingreuna executia codului.
Cand modul pianului este schimbat prin apasarea unuia dintre butoanele de control, schimbarea este semnalata prin variabila update.
In loop, se trateaza afisarea pe LCD. Afisajul se schimba numai daca variabila update a fost setata pe 1 din intrerupere.
Redarea sunetului se realizeaza prin functia tone.
Rezultate Obţinute
Care au fost rezultatele obţinute în urma realizării proiectului vostru.
Concluzii
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
Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.
Bibliografie/Resurse
Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.
Export to PDF