Andrei ANCUȚA (78649) - Acordor chitara

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Acordorul va ajuta utilizatorul in identificarea frecventelor notelor mai precis decat o poate face o ureche neantrenata, pentru a putea acorda o chitara sau a invata notele de pe griful acesteia.

Descriere generală

Hardware Design

Lista de piese

  • Placa de baza si toate elementele necesare pentru aceasta
  • Atmega324
  • LCD text
  • Senzor de vibratie piezo
  • 1xC100nF, 1xC10uF
  • 1xLM358 amplificator operational
  • 1xR220K, 1xR470, 1xR47K

Este necesara amplificarea semnalului venind de la senzorul de vibratie. Dupa masuratori folosind osciloscopul si mai multe incercari, am ajuns la un factor de amplificare egal cu: (1+R_18/R_19) = 1+ 220K/470 ~ 469.1

Schema in Eagle a proiectului, incluzand amplificator, este prezenta in resurse.

Software Design

Mediu de dezvoltare:

  • Linux, VIM

Librarii si surse third party folosite:

  • FFTAVR
  • Libraria pentru LCD Text din laboratoarele de PM

Algoritmi:

  • Algoritmul pe care se bazeaza proiectul este FFT, dupa care se ia o decizie cu privire la nota printr-un algoritm greedy si se afiseaza pe ecran rezultatul. Exista doua moduri de afisare.

Proiectul are doua functii implementate:

  • Afisare nota si deplasament (default)
  • Afisare transformata Fourier pe LCD text folosind caractere custom (atunci cand se apasa BTN)

Rezultate Obţinute

FFT folosind 128 de esantionari cu o frecventa de 1KHz functioneaza cel mai bine, insa 128 de esantionari sunt insuficiente pentru o precizie buna a notei. La 256 de esantionari, memoria RAM dedicata structurii .data devine insuficienta (lookup tables pentru sin, cos si frecventele notelor). Dupa mutarea acestora in ROM folosind PROGMEM, se observa ca microcontrollerul nu face fata din punct de vedere al timpului de procesare cu 256 de puncte.

Concluzii

Proiectul, per total, a fost distractiv si am avut multe de invatat. Rezultatele nu reprezinta intocmai ce mi-am dorit pentru ca microcontrollerul este prea slab pentru o precizie mare, insa produce rezultate destul de apropiate de adevar.

Download

Bibliografie/Resurse

Documente:

Resurse software:

  • Biblioteca FFTAVR (FFT pentru AVR in assembly): fftavr
  • Biblioteca pentru LCD text folosita la laboratorul de PM
pm/prj2018/dghilinta/4352463.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