Autorul poate fi contactat la adresa: Login pentru adresa
Proiectul va fi un tuner pentru chitara. Acesta va prelua sunetele de la chitara prin intermediul unui monitor si va afisa pe LCD daca nota este mai inalta sau mai joasa decat cea corecta.
ATMega324PA
Microfon MAX4466 – 1 piesa
LCD display – 1 piesa
Placuta – 1 piesa
AO – 2 piese
Diode – 2 piese
Condensatoare – 3 piese
Rezistente 2*1M, 1k, 10k, 20k, 50k, 700
Am scris in Programmers Notepad si am compilat folosind avr-gcc.
Am folosit niste librarii publice ffft.h/ffft.S pentru aplicarea FFT pe semnalul primit de la microfon.
Am pastrat intr-un vector frecventele notelor principale. Folosind libraria de fft, preiau datele de la microfon, folosind functia ADC_get().
In ffft.h setez numarul de sample-uri pe care le proceseaza algoritmul. Dupa ce preiau FFT_N sample-uri folosind ADC_get(), apelez fft_input care obtine un vector de numere complexe. Acest vector de nr complexe reprezinta input-ul efectiv pt algoritmul de fft.
functia fft_execute returneaza pt fiecare frecventa amplitudinea. Parcurg acest vector si gasesc frecventa dominanta. Verific apoi care nota este cea mai apropiata de aceasta frecventa si afisez pe LCD daca trebuie ca nota respectiva sa fie mai inalta sau mai joasa.
Desi toate modulele sunt functionale, cand citesc de pe ADC, imi returneaza o valoare foarte mica, care totusi se modifica in functie de sunetul captat de microfon. Desi am incercat sa remediez aceasta problema, motivul pentru care cred ca nu este complet functional este ca aplic fft pe un input care nu este corect calibrat, motiv pentru care obtin rezultate incorecte.
Sapt2: Am gasit majoritatea componentelor de baza in Bucuresti la magazinele de pe Maica Domnului.
Sapt3: Am lipit componentele de baza
Sapt4: Am cumparat lcd si microfon si am conectat lcd-ul la atmega
Sapt5: Am ars 2 atmega dar am reusit sa ajung la o versiune stabila la al treilea si am inceput implementarea
Laboratoare
http://elm-chan.org/docs/avrlib/fftavr.zip