Autorul poate fi contactat la adresa: Login pentru adresa
Proiectul va folosi analiza Fourier pentru a transforma semnale din domeniul timp in domeniul frecventa.
Scopul proiectului este de a calcula in timp real fluctuatiile in domeniul frecventa ale unor melodii citite de pe un card SD si sa afiseze aceste informatii pe un ecran LCD in timp ce melodia este redata prin intermediul unui difuzor.
Ideea de la care am pornit este un videoclip de pe YouTube ce mi s-a parut interesant: Spectrum analyzer.
Proiectul este util deoarece voi invata cum se construieste o placuta de la
0 si cum sa caut componentele necesare, voi aplica concepte matematice invatate intr-o aplicatie practica si dupa
terminarea acestuia voi ramane cu un dispozitiv interesant cu care sa imi ocup timpul .
Melodiile vor fi citite de pe cardul SD, apoi vor fi prelucrate in controller pentru a obtine datele in domeniul frecventa, melodia originala va fi redata la speaker iar datele obtinute in urma FFT vor fi afisate pe ecranul LCD.
Pe langa piesele de baza ce includ micro controllerul, rezistente, condensatori etc., voi mai avea nevoie de:
Schemele electrice si diagramele de semnal, rezultatele simularii:
Mediul de dezvoltare a fost Linux, Sublime Editor pentru editare de text si HIDbootloader pentru incarcarea programelor pe placuta.
Librariile folosite sunt impratite in 3 categorii:
Am pornit de la generarea animatiei pentru LCD si am creat 7 caractere custom reprezentand barele la diverse nivele de umplere, apoi am creat o functie ce imi afiseaza la o coloana data de pe LCD (intre 1 si 16) o valoare data (intre 0 si 16). Am implementat apoi citirea melodiilor in format .wav de pe card si redarea acestora in mod PWM. In final am folosit o librarie scrisa in assembly (necesar pentru rapiditate si pastrarea continuitatii melodiei redate) pentru calculul FFT si afisarea prin intermediul LCD-ului a rezultatelor finale.
Am obtinut un Spectrum Analyzer rudimentar, ce poate capta frecvente de pana la 44100 Hz. Rata de refresh a ecranului este de 8 ori pe secunda, timp la care se mai adauga un mic delay cauzat de intreruperile necesare calcului FFT si afisarea pe ecran. Valorile obtinute nu se ridica la nivelul unui aparat profesional insa sunt destul de bune pentru a observa schimbarile mari de frecventa.
Ca si concluzii pot spune ca acest proiect m-a purtat prin toate laboratoarele de PM (interfatare LCD, intreruperi de ceas, citire date de pe un card SD etc.), acestea fiind si locul unde am gasit raspunsul la eventualele nelamuriri ce le-am avut. In concluzie a fost un proiect interesant la care mi-a placut sa lucrez (motiv pentru care l-am si ales), iar rezultatul este unul satisfacator comparat cu proiectul de unde m-am inspirat.
FFT lib: http://elm-chan.org/works/akilcd/report_e.html