Luminita VOICU - Acoustic Guitar Tuner

Autorul poate fi contactat la adresa : luminita.voicu98@gmail.com

Introducere

Am ales ca tema proiectului meu sa fie: Tuner pentru Chitara Acustica deoarece m-a atras ideea de a implementa ceva care sa aiba o legatura directa cu unul dintre hobby-urile mele.

Descriere generală

Proiectul are ca scop implementarea unui tuner care sa preia sunetul generat de o coarda, sa identifice nota muzicala si sa afiseze pe un LCD daca coarda respectiva genereaza o frecventa corespunzatoare notei identificate.
In cazul in care frecventa este potrivita, se va aprinde un led verde.
Daca frecventa este decalata peste o valoare de prag, atunci se va aprinde un led rosu si pe ecranul LCD se va preciza daca frecventa generata este prea joasa sau prea inalta.

Schema bloc

Hardware Design

Piese necesare

  • placa de baza PM
  • afisaj LCD 2*16
  • breadboard 420
  • led rosu
  • led verde
  • microfon ELECTRET
  • amplificator operational LM358
  • condensator 220uF
  • condensator 10uF
  • 3 rezistente 10K
  • rezistenta 1K
  • rezistenta 100K
  • cabluri mama-mama
  • cabluri tata-tata
  • cabluri mama-tata

Schema electrica

Amplificator operational LM358

Circuit integral

Software Design

Am lucrat pe Linux Mint si am folosit Vim ca editor de text.

Interfatare LCD

Pentru a implementa afisarea pe LCD 2*16 am folosit ca model scheletul din laboratorul 2 de pm si am modificat fisierul header astfel incat pinii folositi sa se potriveasca cu pinii conectati la LCD.

Conversia Analog-Digitala

Pentru initializarea ADC-ului am folosit prescaler de 32, o tensiune de referinta de 2.56V si pentru detectia frecventei, am setat bitii aliniati la stanga. Pentru detectia frecventei am apelat la un algoritm care retine intr-un buffer timpul intre doua treceri ascendente prin punctul de mijloc (2.5V). Deoarece trebuie luat in considerare si zgomotul pentru a se mentine acuratetea, algoritmul nu ia in considerare decat serii de astfel de perioade constante.

Am folosit un vector pentru cele 6 note posibile si un vector pentru frecventele de referinta din tuning-ul standard. Daca frecventa este corecta, atunci se afiseaza mesajul “OK”. Altfel, se afiseaza ”«” sau ”»” daca nota trebuie sa aiba o tonalitate mai scazuta, respectiv mai ridicata pentru a ajunge la frecventa corecta.

Pentru preluarea corzii care se doreste sa se verifice am folosit butonul BTN de pe placuta, care va cicla prin note in ordinea: E A D G B e. Apasarea butonului este implementata in rutina de tratare a intreruperii PCINT1, cu o tehnica de debouncing.

Rezultate obținute

In ceea ce priveste partea de hardware, circuitul este perfect functional (a fost verificat cu un osciloscop). Din pacate, implementarea pe partea de software mi-a pus mai multe probleme decat ma asteptam. Algoritmul meu nu reuseste sa calculeze frecventa corecta a notei amplificate si ofera doar o apreciere aproximativa (si de multe ori nehotarata) a acesteia. Din lipsa de timp (deoarece am lucrat mult timp la algoritmul de detectie a frecventei si imi doream ca acesta sa functioneze) am tot amanat adaugarea pe placuta a ledurilor (verde si rosu) care sa semnaleze cand o coarda este acordata corect si cand nu.

Concluzii

Proiectul mi s-a parut foarte interesant si am lucrat cu placere la el, in special la partea de hardware, care a reprezentat ceva ce nu am mai realizat pana acum. Faptul ca tuner-ul nu este functional este dezamagitor pentru mine, insa in acelasi timp ma motiveaza sa continui sa il perfectionez in afara perioadei de lucru.

Jurnal

Etapa 1

Lipirea componentelor pe placa de baza

Etapa 2

Circuitul amplificator LM358 cu microfon

Etapa 3

Conectarea LCD-ului la placuta

Etapa 4

Conectarea circuitului amplificator la placuta

Etapa 5

Implementarea software

Arhiva

Bibliografie

Laboratoarele de PM (in special 0, 2 si 6) ro
lm358-mic-amp
arduino-guitar-tuner
Arduino-Guitar-Tuner

Documentatie .pdf

pm/prj2019/ctranca/acoustic-guitar-tuner.txt · Last modified: 2021/04/14 17:07 (external edit)
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