Iuliana DURA (78321) - Piano: Play&Learn

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Proiectul presupune crearea unui mic pian electric. El va avea 8 butoane care vor reprezenta cele 8 clape albe ale unei octave. Proiectul va implementa functionalitatea de baza a unui pian, dar va veni si in ajutorul celor care vor sa invete sa cante cateva melodii simple. El se adreseaza incepatorilor si celor care doresc un instrument mic si portabil.

Descriere generală

Exista cateva butoane de control care sunt folosite pentru a seta melodia curenta si modul de functionare. Ele au, de asemenea, rolul de a semnala dorinta utilizatorului de a pune pe pauza melodia curenta sau de a reveni la meniu principal.

Exista 3 moduri de functionare:

  • Free play: redarea unor note la apasarea butoanelor corespunzatoare de pe claviatura;
  • Practice mode: modul de functionare dedicat celor care vor sa invete sa cante o melodie; butonul ce trebuie apasat va fi indicat prin aprinderea LED-ului corespunzator;
  • Watch and learn: redarea unei melodii; LED-urile plasate in dreptul butoanelor vor fi folosite pentru a indica notele redate.

Schema bloc

Hardware Design

Lista de piese:

Nume piesa Bucati
Placa de baza 1
Componente de baza 1
Microcontroller ATMega324 1
Difuzor 1
Display 1
Butoane 12
LED-uri 16
Rezistente 220Ω 17
Rezistenta 330Ω 1
Rezistenta 1kΩ 1
Rezistenta 10kΩ 1
Cablaj de test 3
Condensator 1
Registru shiftare 74HC595n 2



Schema electrica:

Software Design

Mediul de dezvoltare:

  • AVR Studio 7.0
  • HIDBootFlash

Biblioteci folosite:

  • Pentru controlul LCD-ului Nokia 5110 am folosit avr-nokia-5110 (nokia5110.c, nokia5110.h si nokia5110_chars.h).
  • Pentru utilizirea registrului de shiftare 74hc595n am folosit niste functii gasite online care se afla in fisierele hc595.h, hc595.c (cu mici modificari pentru a le adapta cerintelor programului meu).

Detalii despre implementare

  • Codul scris de mine se afla in main.c.
  • La pornirea aplicatiei, pe display este afisat meniul principal care permite selectarea melodiei si a modului de functionare. Dupa aceea, in functie de ceea ce alege utilizatorul, aplicatia trece in modul de functionare corespunzator.
  • Butoanele corespunzatoare claviaturii sunt tratate prin polling (intr-un while(1)).
  • Daca modul selectat este Watch & Learn, atunci melodia poate fi pusa pe pauza. Se poate reveni la meniul principal indiferent de modul de functionare selectat. Acest lucru este realizat cu ajutorul a doua butoane de control care sunt tratate folosind intreruperi.
  • In modul Practice, LED-urile verzi sunt folosite pentru a indica nota curenta, iar cele rosii indica nota urmatoare. Deoarece microcontroller-ul nu dispune de suficienti pini pentru a aloca fiecarui LED cate un pin, am decis sa folosesc registrul de deplasare 74HC595N. Acesta necesita sa fie conectat la doar 3 pini ai microcontroller-ului si poate controla pana la 8 LED-uri. Functiile necesare pentru comunicarea cu acest registru le-am gasit aici[1], dar am facut mici modificari pentru a le adapta necesitatilor proiectului meu.

Rezultate Obţinute

Am reusit sa realizez tot ceea ce mi-am propus initial. Am implementat cu succes cele 3 moduri de functionare descrise mai sus: free play, watch & learn si practice mode. O idee care mi-a venit pe parcurs si pe care am transpus-o in realitate a fost aceea de a oferi posibilitatea reglarii volumului difuzorului.

Meniul principal:



Preactice mode:





Concluzii

Download

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

[1] Functii pentru utilizarea registrului de shiftare 74HC595N http://extremeelectronics.co.in/avr-tutorials/using-shift-registers-with-avr-micro-avr-tutorial/
[2] Wiki-ul de PM a fost sursa celor mai multe informatii.
[3] Datasheet Atmega324
[4] Datasheet registru de shiftare 74HC595: http://www.ti.com/lit/ds/symlink/sn74hc595.pdf

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

  • Documentația în format PDF
pm/prj2018/ipopescu/mini.piano.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