Autorul poate fi contactat la adresa: Login pentru adresa
Pe scurt, proiectul meu este un pian electric care are si rolul de instructor de pian.
Ideea mi-a venit de la un pian de jucarie pe care l-am avut cand eram mic, care cu ajutorul unor led-uri plasate deasupra fiecarei taste, te putea invata foarte usor sa canti cateva cantecele simple.
Sunt de parere ca proiectul meu constituie atat o modalitate de relaxare, cat si un prilej de a invata la pian cantecele cunoscute de acesta.
Schema bloc
Blocul ATMega324 → microcontroller-ul
Blocul Difuzor → reda notele muzicale
Blocul Claviatura → 8 taste asociate notelor: Do, Re, Mi, Fa, Sol, La, Si, Do
Blocul Led-uri → 8 led-uri asociate fiecarei taste
Blocul Butoane meniu → cate un buton pentru fiecare cantec ce poate fi invatat: “Frere Jacques” si “Twinkle, Twinkle, Little Star”
Utilizatorul va putea sa cante in modul fara profesor imediat ce pianul este pornit. In acest mod, daca se apasa o tasta de pe claviatura, se va aprinde si led-ul asociat acesteia.
Utilizatorul va putea sa cante in modul profesor in momentul in care va apasa unul dintre butoanele de meniu asociate unui cantec. Pentru a reveni in modul fara profesor, acesta va trebui sa termine cantecul curent din modul profesor.
Daca o tasta trebuie apasata la un moment dat (modul profesor), led-ul asociat acesteia se va aprinde si va ramane aprins pana cand utilizatorul va apasa tasta. Daca acesta va apasa orice alt buton de pe pian, efectul butonului nu va fi luat in considerare.
Lista de piese:
Am inceput prin a testa toate led-urile si butoanele pentru a fi sigur ca am lipit corect toate componentele. Am testat acest lucru prin aprinderea si stingerea led-urilor prin apasarea unui buton.
Dupa aceea am verificat daca buzzerul este functional. Am programat un buton de pe claviatura pianului sa activeze buzzerul si sa il faca sa scoata un sunet oarecare.
Acum ca am verificat fiecare element hardware, am alocat fiecarei clape o nota muzicala si am implementat modul fara profesor.
Dupa ce am implementat modul fara profesor, am stocat in doi vectori notele muzicale asociate celor doua cantece ce pot fi invatate.
In principiu, tot ce am facut in modul profesor a fost sa iterez prin acesti vectori si sa aprind led-urile asociate notei ce trebuie cantate.
Mediu de dezvoltare
Am scris codul in Notepad++ si am compilat din linia de comanda cu ajutorul unui fisier Makefile.
Surse si biblioteci
Toata logica proiectului meu este implementata in fisierul piano.c.
In implementarea mea, am utilizat urmatoarele biblioteci: avr/io.h si util/delay.h.
Am reusit sa obtin un pian care functioneaza perfect si care reuseste cu succes sa invete pe oricine cele 2 cantecele stiute de acesta.
Sunt foarte multumit de felul in care mi-a iesit acest proiect si sunt fericit ca am reusit sa ma descurc cu partea hardware, de care ma temeam la inceput.
De asemenea, acest proiect mi-a oferit sansa sa imbin doua dintre principalele mele hobby-uri: muzica si programarea.
Resurse Hardware
Resurse Software