Dragos-Bogdan SIMA - ASAMP

Introducere

Acest proiect reprezinta dezvoltarea unui sistem ce incorporeaza un Audio Spectrum Analyzer si un Music Player. Astfel, acesta va citi fisiere in format wav de pe un SD card si va reda audio, printr-un un difuzor, continutul acestora. Deasemenea, concomitent cu redarea sunetelor are loc afisarea printr-o matrice de LED-uri a intensitatii semnalului de intrare versus frecventa.

In urma cautarilor asupra unui proiect interesant, am dat peste descrierea unui proiect asemanator, http://www.instructables.com/id/AVR-acoustic-spectrum-analyzer/?ALLSTEPS , care a reprezentat mai departe, principala sursa de inspiratie. Cu toate acestea, implementarea mea este mult diferita, pornind de la piesele folosite, pana la codul ce reda functionalitatea sistemului.

Am considerat ca acesta este un proiect util, pentru dezvoltarea personala, deoarece acesta implementeaza multiple tipare didactice in dezvoltarea embedded. Astfel, sistemul incorporeaza o parte de citire, analiza si transformare a unor date de pe fisiere stocate pe un card SD, redare a noilor informatii in mod audio printr-un difuzor si vizual printr-o matrice de LED-uri si o parte de constructie armonioasa din punct de vedere electronic a resurselor hardware necesare pentru realizarea functionalitatilor mai devreme enumerate.

Descriere generală

Schema bloc:

Mod de interactionare:

Sistemul presupune interactiunea cu un user, care are la dispozitie 3 butoane pentru comunicarea cu acesta.
- butonul START/STOP activeaza modul de redare a melodiei curente (la deschiderea aparatului se poate reda prima din lista de fisiere *.wav ordonate alfanumeric pe card-ul SD prezent) daca acesta se afla in starea “off” si intrerupe redarea acesteia daca se afla in starea “on”;
- butonul NEXT conduce la trecerea la urmatatorul fisier de pe card (daca inainte de apasarea butonului, melodia curenta se afla in starea “on”, dupa, se va incepe automat redarea urmatoarei melodii, altfel - starea “off” - fiind nevoie de apasare butonului START/STOP) cu exceptia cazului in care melodia curenta este ultima din lista caz in care butonul nu are nicio functionalitate;
- butonul PREV conduce la un comportament similar cu cel al butonului NEXT, cu deosebirea se trece la melodia precedenta, cu precizarea ca melodia curenta sa fie diferita de cea cu indexul 1 (prima melodie).

In momentul in care o melodie se afla in starea “on” va fi redata audio prin difuzor, numele ei va fi afisat pe LCD si dupa, ritmul acesteia va putea fi vizualizat de asemeanea prin intermediul LCD-ului.

Hardware Design

Lista de piese:

Nume Nr. buc. Preț unitar Cost total Obs.
220µF 25V 1 0.3 0.3 http://www.syscomelco.ro/ProdusDetaliu.asp?ID=8469
100nF 63V 2 0.35 0.7 http://www.syscomelco.ro/ProdusDetaliu.asp?ID=289
47nF 50V 1 0.3 0.3 http://www.syscomelco.ro/ProdusDetaliu.asp?ID=8076
3k3 3 0.7 2.1 http://www.syscomelco.ro/ProdusDetaliu.asp?ID=9601
1k6 3
10R 1 - - de la un monitor
10K 1 - - de la un monitor
LM386 1 2.5 2.5 http://www.conexelectronic.ro/produs.php?id=48344
SACAZ 1 4 4 http://www.conexelectronic.ro/produs.php?id=40470
Potentiometru 10k 1 0.6 0.6 http://www.syscomelco.ro/ProdusDetaliu.asp?ID=9167
Soclu card SD 1 de la un telefon
LCD DEM16101 1 30.5 30.5

Componente hardware:

Card SD
Schema electrica similara cu cea din laborator cu mentionarea ca am folosit 2 diode 1N4005L pentru reducearea tensiunii ce intra in SD card la aproximativ 3.6V (5V - 2*0.7V).

Iesire audio

Pentru calitate marita a calitatii sunetelor am folosit un amplificator + filtru in varinata gain 20 din datasheet-ul aferent, volumul putand fi modificat cu un potentiometru.

LCD
Asemenea ca in laborator.

Butoane

componente.jpg

Alocare pini:

Pin Descriere Componenta
PD5 AUDIO Difuzor
- - -
PD6 CS SD Card
PB5 MOSI SD Card
PB6 MISO SD Card
PB7 SCK SD Card
- - -
PA1 PREV Buton
PA2 NEXT Buton
PA3 START/STAHP Buton
- - -
PC0 RS LCD
PC1 R/W LCD
PC2 E LCD
PC3 D4 LCD
PC4 D5 LCD
PC5 D6 LCD
PC6 D7 LCD

Software Design

Mediul de dezvoltare:
- SO: Windows 7 Ultimate 64-bit
- Editor: Programmer's Notepad
- Compilator: WinAVR (collection of AVR software pre-compiled for Windows)
- Limbaj de programare: C

Algoritmi si librarii
Incluse in bibliografie si surse.

Surse şi funcţii implementate:

Am pornit dezvoltarea de la laboratorul 4, folosind un api pentru LCD si un sistem de fisiere (Petit FatFs) pentru comunicarea cu SD-card-ul.

Am integrat functionalitatile butoanelor, insa pentru afisarea ritmului unei melodii a trebuit sa aman finalizarea pana la achizitia unui nou lCd, sau construirea unei matrici de led-uri.

Rezultate obtinute

rezultat_final.jpg

Concluzii

Am regretat alegerea proiectul din varii motive (matrice de LED-uri greu de realizat, LCD cu probleme, conglomerat de componente - SD card, LCD, difuzor), asa ca sfatul meu este sa alegeti un proiect care sa va placa mult sa lucrati la el, chiar si sa renuntati la alte teme pentru a va dedica lui. Spun asta deoarece ideea de proiect embedded este unul din putinele proiecte practice cu care te vei intalni, atipica rerereinventarii rotii cu care esti obisnuit in facultate.

Partea cu adevarat importanta a acestui proiect, pentru mine, a fost ca mi-a deschis cateva portite spre ce as putea cerceta mai intens, si anume Robotica si Inteligenta Artificiala.

Download

Jurnal

Data Observatii
08.05 Realizat schema pentru card SD
13.05 Achizitionat toate compomentele necesare
14.05 Realizat schema pentru iesirea la difuzor
15.05 Incercare esuata de a conecta LCD-ul
17.05 Incercare cu succes de a conecta LCD-ul
22.05 LCD-ul afiseaza pixelii doar pe jumatate de ecran

Bibliografie/Resurse

pm/prj2013/sstegaru/8.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