This shows you the differences between two versions of the page.
pm:prj2021:avaduva:guitar_tuner [2021/05/24 22:17] andreea.cojocaru99 [Componente] |
pm:prj2021:avaduva:guitar_tuner [2021/05/29 19:12] (current) andreea.cojocaru99 [Schema electrica] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Guitar tuner ====== | ====== Guitar tuner ====== | ||
- | //Autor : Andreea Cojocaru// | + | //Autor: [[andreea.cojocaru99@stud.acs.upb.ro|Andreea Cojocaru 333CC]]// |
===== Introducere ===== | ===== 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. Odata cu evolutia tehnologiei si aparitia a atat de multe aplicatii, acest gen de dispozitiv nu mai este la asa de mare cautare, insa in urma cu aproximativ 10 ani, acordarea chitarii se facea folosind un tuner sau un diapazon. | + | 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 ===== | ===== Descriere generala ===== | ||
Line 13: | Line 14: | ||
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. | 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. | ||
- | ===== Componente ===== | + | |
+ | |||
+ | ===== Schema bloc ===== | ||
+ | {{:pm:prj2021:avaduva:schema_bloc_guitartuner.png|}} | ||
+ | ===== Hardware design ===== | ||
+ | ==== Componente ==== | ||
+ | <note> | ||
* Arduino UNO | * Arduino UNO | ||
* [[https://cleste.ro/modul-microfon-sensibilitate-inalta.html|Modul microfon cu sensibilitate inalta]] | * [[https://cleste.ro/modul-microfon-sensibilitate-inalta.html|Modul microfon cu sensibilitate inalta]] | ||
Line 23: | Line 30: | ||
* Fire tata-tata | * Fire tata-tata | ||
* Breadbord | * Breadbord | ||
+ | </note> | ||
+ | ====Schema electrica==== | ||
+ | {{:pm:prj2021:avaduva:schema_electrica_guitar_tuner.png?700|}} | ||
- | ===== Schema bloc ===== | + | * Utilitatea potentiometrului este pentru a regla luminozitatea celulelor matricei ecranului LCD. |
- | {{:pm:prj2021:avaduva:schema_bloc_guitartuner.png|}} | + | * 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. | ||
+ | |||
+ | {{:pm:prj2021:avaduva:guitar_tuner_hardware.jpeg?700|}} | ||
+ | |||
+ | * 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. | ||
+ | <note tip>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 </note> | ||
+ | |||
+ | |||
+ | <note> | ||
+ | [1][[https://github.com/kosme/arduinoFFT/blob/master/Examples/FFT_03/FFT_03.ino| Arduino FFT]] | ||
+ | </note> | ||
- | ===== Schema electrica ===== | + | ===== Resurse ===== |
- | {{:pm:prj2021:avaduva:schema_electrica_guitar_tuner.png?800|}} | + | <note important> |
- | ==== PDF ==== | + | {{:pm:prj2021:avaduva:guitar_tuner_333cc_cojocaru_andreea_pm.zip|Arhiva: video demo + cod}} |
- | Click [[https://ocw.cs.pub.ro/courses/pm/prj2021/avaduva/guitar_tuner?do=export_pdf|Aici]] | + | </note> |
+ | ===== Descarcare pagina ===== | ||
+ | Click [[https://ocw.cs.pub.ro/courses/pm/prj2021/avaduva/guitar_tuner?do=export_pdf|aici]] pentru descarcarea PDF a paginii curente. |