This shows you the differences between two versions of the page.
pm:prj2021:avaduva:guitar_tuner [2021/05/25 13:45] andreea.cojocaru99 |
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 ===== | ||
Line 14: | 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> | <note> | ||
* Arduino UNO | * Arduino UNO | ||
Line 26: | Line 31: | ||
* Breadbord | * Breadbord | ||
</note> | </note> | ||
- | |||
- | ===== Schema bloc ===== | ||
- | {{:pm:prj2021:avaduva:schema_bloc_guitartuner.png|}} | ||
- | ===== Hardware design ===== | ||
====Schema electrica==== | ====Schema electrica==== | ||
{{:pm:prj2021:avaduva:schema_electrica_guitar_tuner.png?700|}} | {{:pm:prj2021:avaduva:schema_electrica_guitar_tuner.png?700|}} | ||
- | {{:pm:prj2021:avaduva:guitar_tuner_hardware.jpeg?700|}} | + | * 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. | ||
+ | {{: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 ===== | ===== Software design ===== | ||
* Pentru lucrul cu LCD-ul am utilizat biblioteca LiquidCrystal.h. | * Pentru lucrul cu LCD-ul am utilizat biblioteca LiquidCrystal.h. | ||
Line 42: | Line 48: | ||
===Flow-ul general al aplicatiei=== | ===Flow-ul general al aplicatiei=== | ||
- | * se initializeaza datele, pe LCD apare mesajul "Press the button to start!", se ataseaza pinului 2, adica butonului, intreruperea | + | * 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 | + | * 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) | + | * 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. | + | * 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. | * 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 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> | ||
Line 56: | Line 62: | ||
===== Resurse ===== | ===== Resurse ===== | ||
<note important> | <note important> | ||
- | {{:pm:prj2021:avaduva:guitar_tuner_333cc_cojocaru_andreea_pm.zip|Arhiva- video demo + cod}} | + | {{:pm:prj2021:avaduva:guitar_tuner_333cc_cojocaru_andreea_pm.zip|Arhiva: video demo + cod}} |
</note> | </note> | ||
- | ==== PDF ==== | + | ===== Descarcare pagina ===== |
- | Click [[https://ocw.cs.pub.ro/courses/pm/prj2021/avaduva/guitar_tuner?do=export_pdf|Aici]] | + | Click [[https://ocw.cs.pub.ro/courses/pm/prj2021/avaduva/guitar_tuner?do=export_pdf|aici]] pentru descarcarea PDF a paginii curente. |