Guitar tuner

Introducere

Acest dispozitiv are ca scop acordarea chitarii. Ideea de la care am pornit a fost crearea unui obiect in primul rand util, dar si accesibil din punctul de vedere al pieselor si al implementarii. Dispozitivul dispune de un ecran de afisare, un buton pentru pornire si modificarea notei curente si 3 led-uri : unul rosu, unul galben si unul verde, care indica cat de dezacordata fata de valoarea de referinta este chitara.

Pentru testare, am utilizat ukulele, fiind un instrument muzical ca o chitara mica, cu 4 corzi.

Descriere generala

Dispozitivul se foloseste de un microfon pentru captarea sunetului. Sunetul trebuie sa indeplineasca un anumit grad de zgomot pentru a putea fi procesat semnalul, pentru a nu intercepta inclusiv zgomotele de fundal. Apoi, utilizand o transformata Fourier rapida , se produce o procesare a semnalului pentru aflarea frecventei. Aceasta procesare presupune captarea mai multor “mostre” din sunet. Odata ce se gaseste frecventa sunetului, se compara cu valoarea de referinta si se verifica daca sunt similare.

Interfata cu utilizatorul este realizata printr-un ecran LCD, un buton si 3 LED-uri. Initial, pentru a incepe receptia semnalelor, se apasa butonul ( in acest timp pe LCD apare mesajul ” Press the button to start! ” ), apoi pe ecran apar denumirile notelor muzicale corespunzatoare corzilor. Selectarea corzii se produce prin apasarea butonului ( pe LCD apare palpaind coarda curenta ) . De asemenea, apare si frecventa notei respective, si diferenta (+-) a frecventei emise de coarda chitarii, pentru a stii daca coarda trebuie stransa sau slabita.

LED-ul rosu se aprinde pentru diferente mari de frecventa, LED-ul galben pentru diferente mici, iar LED-ul verde pentru valoarea corecta, sau diferente foarte mici.

Schema bloc

Hardware design

Componente

Schema electrica

  • Utilitatea potentiometrului este pentru a regla luminozitatea celulelor matricei ecranului LCD.
  • De asemenea, se poate observa faptul ca butonul este legat la pinul 2, avand INT0.
  • Totodata, senzorul de sunet este de tip analogic, fiind conectat la A0.

  • Aici se poate observa cablajul fizic, executat fidel dupa modelul schemei electrice (doar ca piesele sunt conectate folosind si un breadboard).
  • Se prezinta in aceasta imagine, stadiul initial, inaintea apasarii butonului.

Software design

  • Pentru lucrul cu LCD-ul am utilizat biblioteca LiquidCrystal.h.
  • Pentru procesarea sunetului, am folosit biblioteca “arduinoFFT.h”[1] si de asemenea m-am ajutat si inspirat din exemplele oferite din documentatia acestei biblioteci.
  • Pentru schimbarea corzii cu ajutorul butonului, am utilizat intreruperi (butonul este legat la pinul 2 - intreruperi INT0).

Flow-ul general al aplicatiei

  • Se initializeaza datele, pe LCD apare mesajul “Press the button to start!”, se ataseaza pinului 2, adica butonului, intreruperea;
  • In bucla principala se asteapta apasarea butonului, tratata intr-o functie separata, de intreruperi;
  • Odata cu apasarea butonului, se sterge ce exista pe ecran si apar literele corespunzatoare celor 4 corzi (4 corzi deoarece am utilizat ukulele pentru testare);
  • Apasarea butonului, seteaza coarda pe care vrem sa o acordam, schimband astfel frecventa asteptata. Totodata, pe ecran, litera corespunzatoare acestei corzi palpaie;
  • Cand microfonul intercepteaza un anumit prag de zgomot , atunci se intercepteaza un numar de valori (SAMPLES = 256 ), iar mai apoi utilizand functii din ArduinoFFT, aflam varful frecventei rezultate. Acesta se compara cu frecventa asteptata de utilizator si se afiseaza pe ecran diferenta +- intre cele doua, diferenta observata si cu ajutorul LED-urilor, care pentru diferente mari se aprinde LED-ul rosu, pentru diferente mici LED-ul galben si pentru valoarea ~exacta LED-ul verde.

Am modificat de asemenea si amplificarea sunetului, folosind potentiometrul de care dispune modulul de sunet; zgomotul de fundal avea valori ~ 0-20, iar zgomotul produs de atingerea unei corzi > 400, astfel am setat pragul la > 300

Resurse

Descarcare pagina

Click aici pentru descarcarea PDF a paginii curente.

pm/prj2021/avaduva/guitar_tuner.txt · Last modified: 2021/05/29 19:12 by andreea.cojocaru99
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