Veronica-Mihaela VELCIU - Player WAV
Autorul poate fi contactat la adresa: Login pentru adresa
Introducere
Proiectul va avea urmatoarele functionalitati:
redarea de muzica in format WAV de pe un card SD
afisarea melodiei curente pe un display LCD
schimbarea melodiilor prin intermediul QTouch-ului
Descriere generală
Hardware Design
Lista de piese:
Buzzer mufa Jack
soclu card SD
LCD 16×2 HD44780
3 rezistente 3K3 si 3 rezistente 1K8 pentru soclul SD
4 condensatori 27pF si 4 rezistente 1K pentru QTouch
1 condensator 10u si un regulator BA033 doua diode si o rezistenta
Initial, am folosit un Buzzer, insa am realizat ca se aude mult prea incet, asa ca m-am hotarat sa il inlocuiesc cu o mufa Jack. Aceasta este conectata la fel cu Buzzer-ul din schema. De asemenea, intrucat nu am gasit regulator BA033, l-am inlocuit cu doua diode si o rezistenta.
Software Design
Mediu de dezvoltare: AtmelStudio, folosind extensia QTouchComposer
Biblioteci: lcd.h (din laboratorul 4, cu modificari asupra pinilor), sd.h, pff.h, diskio.h (din laboratorul 4, pentru interfata cu cardul SD), touch.h (generata automat de QTouchComposer; am pornit de la cea data drept exemplu, ajustand sensibilitatea si altele)
Implementare: pentru ascultarea de muzica WAV am folosit codul din laboratorul 4, dar am folosit TIMER2 in loc de TIMER0 (acesta este folosit de QTouch); in cadrul codului de tratare a intreruperii verific senzorii QTouch-ului si salvez starea acestora, pentru a putea determina actiunile ce vor fi luate in cadrul main-ului (oprire melodie / pornire melodie urmatoare / pornire melodie anterioara)
Am adaugat urmatoarele functii notabile (wrapper-e peste functia “play” din cadrul laboratorului): play_next(), play_prev()
Am scris codul in asa fel incat melodiile ce vor fi ascultate trebuie sa se afle in directorul principal al cardului SD
Rezultate Obţinute
Proiectul este functional, trecand peste faptul ca nu intotdeauna sunt interpretate actiunile facute asupra QTouch-ului (nu imi dau seama daca problema este una legata de sensibilitatea acestuia sau de configurarile facute de mine prin QTouchComposer).
Practic, player-ul este controlat in felul urmator:
o zona a rotorului folosita pentru a trece la urmatoarea melodie
o zona a rotorului folosita pentru a reveni la melodia precedenta
o zona a rotorului folosita pentru a opri melodia curenta
LCD-ul afiseaza melodia curenta si starea acesteia (oprita, in rulare etc.).
Concluzii
Proiectul a fost foarte interesant, insa este posibil sa te izbesti de mai multe probleme pe parcursul lui (nu gasesti componente, iti dai seama ca nu ai luat in calcul anumite lucruri). Cel mai important a fost faptul ca mi-am dorit sa il duc la capat pentru ca mi se pare foarte tare sa ai un device facut cu mana ta :)
De asemenea, in cazul in care doriti sa folositi QTouch-ul, sa nu va bazati foarte tare pe el, pentru ca este posibil sa va mai dea date eronate.
Un lucru foarte important mai este sa te apuci si de cod din timp (eu nu am facut asta), intrucat iti poti da seama ca nu stii exact cum se folosesc anumite componente si ca au un Datasheet mult prea mare ca sa cauti ceva prin el.
Download
Jurnal
Bibliografie/Resurse