Autorul poate fi contactat la adresa: Login pentru adresa
Proiectul meu reprezinta un acordor pentru chitara acustica. Pentru folosire utilizatorul trebuie sa selecteze nota pe care urmareste sa o obtina pe o anumita coarda apoi sa ciupeasca coarda si sa slabeasca sau sa tranga coarda pana cand obtine frecventa notei respective. Pe LCD o sa fie afisata frecventa emisa de coarda.
Am ales sa fac acest proiect fiind pasionat de cantatul la chitara si dorind sa aflu mai multe despre sunet si prelucrarea semnalelor.
Lista de piese:
Ca mediu de dezvoltare am folosit WinAvr iar codul l-am scris in Notepad++. Pentru LCD am folosit o biblioteca publica.
Ideea algoritmului de masurare a frecventei a fost sa declasez cate o intrerupere la fiecare 0.2ms sa iau valoarea de pe portul pe care am microfonul si sa o compar cu valoarea precedenta. Daca valorile sunt de o parte si de alta a unui prag inseamna ca a avut loc o tranzitie. Contorizez in acelasi timp si numarul de intreruperi pe care le-am declansat. Dupa ce au fost 20 de tranzitii verifica sa vad cate intreruperi au trebuit pentru asta. Numarul il compar cu niste valori prestabilite.
Implementarea a ceea ce am descris mai sus este destul de dificila.
Rezultatul este un acordor care iti arata cand coarda este bine acordata cu unele scapari dar in cazul in care nu e acordata nu am reusit sa il faca sa spuna daca trebuie stransa sau slabita.
- dificil de masurat frecventa unui sunet, trebuie citit cate ceva inainte despre filtrare in software
- dificil de facut debug deoarece o afisare pe lcd dureaza mult iar intreruperile venind la 0.2ms orice afisare afecta rezultatul
- sigur o sa incerc sa il imbunatatesc
20 aprilie - am luat componentele pentru placuta de baza
15 mai - am luat lcd-ul, microfonul, firele si restul pieselor
18 mai - am terminat de lipit placuta si restul partii de hardware
23-25 mai - lucrez la sofware
26 mai - mai multe teste, calibrari.
M-am uitat pe toate proiectele din anii trecuti si pe alte proiecte gasite aici:
https://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/