Autorul poate fi contactat la adresa: Login pentru adresa
Proiectul consta intr-un tuner pentru chitara(si nu numai), conceput pentru cei ce doresc sa-si acordeze instrumentul cu mai putin efort, sau pentru cei care nu sunt foarte priceputi in a-si acorda chitara “dupa ureche”. Astfel, utilizatorul nu trebuie decat sa porneasca tunerul, sa selecteze coarda pe care doreste s-o acordeze, sa o loveasca si apoi sa urmareasca ledurile, care ii spun daca trebuie sa urce/coboare sunetul, sau daca acesta este “in tune”.
Proiectul consta in urmatoarea schema bloc(hardware):
In ceea ce priveste modulele software, avem urmatoarele:
Lista de piese necesare:
Schema circuitului de preamplificare:
Iesirea(output to next stage) acestui circuit este legata la pinul PA0 al microcontrollerului pentru a putea converti semnalul.
Am folosit urmatoarea legare a componentelor la pinii microcontroller-ului:
Pentru partea de implementare software am folosit programul din laborator, Programmer's Notedapad, pentru incarcarea fisierelor .hex pe placuta am folosit programul pus la dispozitie la laborator, iar in ceea ce priveste biblioteca, am folosit AVR libc, tot din laborator.
Pentru inceput, am definit valorile frecventelor naturale ale sunetelor, constante:
#define MI_JOS 164.81
#define LA 220.00
#define RE 293.66
#define SOL 391.99
#define SI 493.88
#define MI_SUS 659.26
De asemenea, trebuie calculata frecventa microcontroller-ului, ca raportul dintre frecventa CPUului si cea a prescalerului:
#define FREQ (16000000 / 64)
Apoi, relativ la frecventa microcontroller-ului, se calculeaza frecventele de comparatie pentru fiecare coarda in parte, dupa formula: FREQ / NOTA.
Pentru modulul de selectie a coardei, avem o bucla while(1), in care se citeste valoarea pinului la care este conectat butonul(PB0). Pentru inceput, avem o variabila care are valoarea 0(nu este selectata nicio coarda). In momentul apasarii butonului(deci a schimbarii starii pinului PB0), aceasta variabila este incrementata, reprezentand numarul coardei. In momentul in care aceasta variabila atinge valoarea 7(nu exista a 7-a coarda), revine inapoi la 0(nu se citeste semnalul microfonului). Concomitent cu incrementarea acestei variabile, se aprinde si LEDul corespunzator coardei(sau nu se aprinde nimic pentru valoare 0) si se stinge LEDul aprins precedent.
Pentru modului de conversie analog digitala, trebuie setata o rutina de tratare a intreruperilor pentru pinul la care este legat circuitul de preamplificare. In aceasta rutina are loc conversia propriu-zisa, determinarea frecventei si, apoi, comparatia.
Rezultatul comparatiei este trimis catre modulul de afisare a acuratetei care aprinde LEDul corespunzator.
Din pacate, nu am reusit sa duc proiectul la bun sfarsit. Imi doresc insa ca pe viitor sa-l termin, intrucat detin o chitara, iar costul unui astfel de echipament este destul de ridicat.
In locul construirii circuitului de preamplificare, se gasesc microfoane gata integrate intr-un astfel de circuit, ceea ce usureaza un pic munca. De asemenea, in locul afisarii rezultatelor prin LEDuri, se poate folosi un afisor LED. Pentru o experienta mai placuta de utilizare, in locul selectiei coardelor prin butoane, se poate folosi autodeterminarea range-ului de frecvente in care se incadreaza sunetul.
Dupa cum se poate observa, acesta este un proiect foarte versatil, si chiar usor as putea spune, putand fi implementat in functe de dorintele fiecaruia, nesolicitand un efort finaciar mare.
Schema circuitului de preamplificare : http://www.reconnsworld.com/audio_simplepreamp.html