Eugen VASILESCU (25529) - Pian electric

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Scopul proiectului este sa implementeze intr-un mod simplificat functionalitatile unui pian pe o placuta ATMEGA324.

Mi-am propus realizarea unui pian electric cu ajutorul caruia sa putem si invata anumite cantece. Pianul va avea 2 moduri: 1) free play: in care utilizatorul poate cata ce-si doreste. Acest mod poate contuinua la infinit sau pana cand utilizatorul alege schimbarea pe cel de-al 2lea mod 2) play and repeat: vor fi 3 melodii diferite pe care le putem reda prin apasarea unui buton. In acel moment modul free play va fi oprit si se va incepe redarea cantecului selectat (la fiecare nota redata se va aprinde si un led, astfel ca utilizatorul va sti ce note au fost apasate). Dupa ce cantecul s-a terminat de redat, incepe modul de repeat, in care va trebui sa repetati cantecul auzit (in functie de ledurile care au fost aprinse).

Veti fi informati prin diverse leduri atunci cand ati terminat de redat cantecul in mod corect sau atunci cand ati gresit.

De asemenea, va exista un al 4lea buton care are rolul de a opri redarea cantecului intr-un anumit punct (in cazul in care cantecul este prea greu de invatat si dorim sa-l invatam pe bucati). Cantecul se va opri in acel moment si va trebui sa redati doar acea prima portiune din cantec.

Descriere generală

Hardware Design

Pe langa lista de componente principale, a fost nevoie sa mai achizitionez:

  • 12 butoane
  • 8 leduri rosii, fiecare aprinzandu-se cand un buton este redat
  • 12 rezistente, 8 pentu leduri si inca 4 pentru butoanele auxiliare folosite in circuit
  • Cabluri tata-mama si mama-mama: vreo 20
  • Modul buzzer, pentru redarea sunetelor
  • Placa pe care sa pun butoanele pianului

Software Design

Pentru partea de soft am folosit sistemul de operare linux pe care sunt deja obisnuit si VIM ca IDE.

A fost nevoie sa programez butoanele pianului sa redea sunete atunci cand sunt apasate si celelalte 4 butoane pentru inceperea redarii unui cantec sau pentru oprirea redarii (cel de-al 4lea).

De asemenea, a trebuit sa implementez verificarea daca un cantec este redat corect in modul Play and Repeat. Am facut acest lucru memorand cantecul ce trebuie redat si nota la care ne aflam. Daca ajungem la finalul cantecului fara nicio eroare, inseamna ca am terminat cu succes cantecul si aprindem ledurile pentru 0.2s, dupa care le stingem si repetam acest pas de 10 ori.

Daca am gresit o nota la un cantec aprindem toate ledurile si redam un sunet ce sa indice eroarea in redare.

Rezultate Obţinute

Am reusit sa termin ceea ce mi-am propus si pianul este functional. Atat modul “free play”, cat si modul de redare a unei melodii si apoi incercarea de a o reda functioneaza dupa modul descris.

Un video cu tastarea proiectului se poate vedea aici:

https://www.youtube.com/watch?v=EgswUODcBKY&feature=youtu.be

Concluzii

Desi nu a fost un proiect foarte complex, a fost unul care mi-a placut foarte mult. A fost prima data cand a fost nevoie sa programez un microcontroller si a fost greu la inceput, dar acum, dupa toate lucrurile pe care le-am invatat, cred ca as face un proiect identic de 3-4 ori mai repede.

Mi-a placut in special ca poti vedea o aplicabilitate practica a muncii si nu doar niste teste trecute. Mi-ar placea sa mai lucrez la astfel de proiecte si in viitor, mai complexe si interesante :-).

Download

Bibliografie / Resurse folosite

Am folosit doar rezolvarile laboratoarelor de PM pentru partea de soft + cateva cautari pe google ca sa preiau notele catorva cantece cunoscute.

pm/prj2016/aconstantinescu/vasy_pian_2016.txt · Last modified: 2021/04/14 17:07 (external edit)
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