Denisa-Alina TROZNAY (25417) - Tuner Chitara

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Guitar Tuner - despre

Proiectul constă în realizarea unui tuner care va permite utilizatorului să își acordeze chitara. Principiul de funcționare este același cu al oricărui alt tuner: acesta se plasează pe/lângă chitară, iar după lovirea corzii și preluarea sunetului produs de aceasta, va indica pe ecranul LCD cum trebuie ajustată coarda.

Guitar Tuner - motivație

Am ales acest proiect deoarece mereu m-a fascinat chitara și orice ține de ea: de la cum o simplă lovire a corzilor poate produce un sunet deosebit până la modul de funcționare al echipamentului implicat (amplificatoare, acordoare etc). Am decis așadar că un tuner de chitară este proiectul cel mai potrivit pentru mine.

Descriere generală

Modul de funcționare este descris prin următoarea schemă bloc: Microfonul va prelua sunetul de la chitară. Acesta va fi analizat în cadrul programului software, iar pe ecranul LCD se vor afișa detalii despre cum trebuie acordată chitara.

Hardware Design

LISTĂ PIESE

Componentă Număr
LCD Text 16×2 - RAYSTAR OPTRONICS RC1602B-GHY-CSXD 1
Microfon 1
Rezistență 10k 2
Rezistență 100k 1
Tranzistor 2N3904 1
Condensator 0.1uF 2
Elemente de conectică -

SCHEMĂ ELECTRICĂ

Software Design

Pentru realizarea proiectului am folosit avr-gcc instalat pe Linux, iar codul a fost editat în Notepad++ pe Windows, unde am rulat și HIDBootFlash v.1.0

Pentru implementare, am folosit sursele din laboratorul 1 (lab1) pentru LCD pe care le-am modificat pentru a se potrivi.

Software-ul este realizat astfel încât șă permită utilizatorului să selecteze ce coardă (notă) dorește sa acordeze. Acest lucru se face în funcția move_n_select prin utilizarea butonului care va selecta de pe afișor nota. Ideea aceasta mi-a venit după ce m-am uitat peste câteva din proiectele realizate în anii trecuți. Ca implementare, am plasat cursorul pe rândul în cauză și l-am deplasat (prin scrierea unui șir vid în locul aferent notei). Pentru a facilita selecția, între note s-a lăsat un spațiu.

LCD_printAt(LINE2_START, "E A D G B EH :) ");
LCD_printAt(LINE2_START + note * 2, "" );

În funcție de nota selectată, de la pin-ul de input (PA0) se va prelua semnal și se vor număra întreruperile. Se calculează apoi diferența dintre numărul înregistrat și numărul corect, aferent notei alese, iar în funcție de valoarea diferenței, se afișează pe ecran un mesaj corespunzător.

ISR (PCINT0_vect) {
    if ((PINA & (1 << PA0)) == 0) {
        counter++;
    }
}

diff = counter - frecv[note];

Frecvențele de refetință sunt cele de pe Wikipedia:

#define E  164.81 
#define A  220.00
#define D  293.66
#define G  391.99
#define B  493.88
#define EH 659.26

O altă funcție implementată este start_lcd care va afișa un mesaj de întâmpinare.

:!: Această implementare nu este foarte precisă, motiv pentru care am încercat și o implementare folosind un ADC de la care preluam semnal, îl transformam și număram fronturile crescătoare. Din cauză că m-am apucat târziu de implementarea acestei idei, nu am putut sa o duc la bun sfârșit. În arhivă se găsește și această implementare. Pentru a încerca această rezolvare, am folosit API-ul din laboratorul 5 (lab6)

Rezultate Obţinute

În stadiul actual, proiectul este funcțional, însă nu are o foarte mare acuratețe. Am modificat circuitul de intrare cu unul achiziționat și am reușit să-l fac să capteze semnalul ok. Mi-aș fi dorit însă să reușesc să termin implementarea cu ADC, deoarece ar fi fost mult mai precisă, însă dându-mi seama foarte târziu, nu am reușit sa o finalizez.

Concluzii

A fost un proiect interesant, la care m-am bucurat ca am avut ocazia să lucrez. Dacă ar fi să îl iau de la început, aș aborda cea de-a doua idee de implementare.

Download

Arhiva: tda_tuner.zip

Conține:

  • API-ul pentru LCD din laboratorul 1
  • tuner.c - rezolvarea proiectul
  • with_adc.c - încercarea nefinalizată de a realiza proiectul folosind ADC

Jurnal

Things done
Milestone 1 alegere temă; schema bloc
Milestone 2 placa de bază
Milestone 3 lista de piese
Milestone 4 schema electrică
Milestone 5 realizarea proiectului

Au urmat apoi:

  • Realizarea soft-ului pe bază de întreruperi
  • Modificarea circuitului de intrare
  • Constatarea că există o variantă mai bună & încercarea implementării ei.

Bibliografie/Resurse

pm/prj2016/avoinescu/tuner_chitara.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