This is an old revision of the document!


Identificator Note Muzicale

Introducere

Proiectul este un instrument ce masoara frecventa unor note muzicale inregistrate. El stocheaza ce aude dupa ce este pornit, analizeaza frecventa sunetelor, o reda pe un ecran LCD, apoi trimite frecventa ca nota MIDI pe interfata USB pentru procesare la o statie.

El este util pentru acordarea instrumentelor muzicale, am pornit de la ideea de aparat de acordat o chitara. Poate fi folosit si pentru transmitere live a muzicii cantate pe o aplicatie Desktop, sau in orice aparat ce poate primi evenimente MIDI.

Descriere generală

Schema bloc:

Schema electrica:

Placa Arduino Mega va calcula frecventa, va controla componentele individuale si le va alimenta. Microfonul capteaza sunetele, pe care arduino-ul le va stoca in cardul SD cu ajutorul modulului SD. Rezultatele analizei vor fi afisate pe disply-ul LCD.

Placa Arduino Mega este alimentata (momentan) de la PC prin USB. Componentele sunt alimentate de catre pinii de 5V si 3.3V de pe Arduino. Microfonul transmite output pe pinul A0. Cititorul de card SD este conectat la pinii SPI. CS la 53, SCK la 52, MOSI la 51 si MISO la 50. Ecranul LCD 1602 foloseste un modul I2C. Pinii SDA/SCL de pe modul sunt conectati la pinii 20/21 de pe Arduino.

Proiectul in stadiul curent:

Captura output microfon:

Hardware Design

-Placa Arduino UNO Rev3

-Microfon cu amplificare Adafruit MAX9814

-Cititor card SD ce comunica prin SPI

-Card SD 16GB

-Ecran LCD 1602 cu modul I2C

-Cablu USB

-Baterie 9V

-Buton

-Dioda Verde

-Rezistente 2200 Ohm

Software Design

Aparatul analizeaza in continuu sunetele pe care microfonul le capteaza. Acesta este legat la pinul A0, pe care se face o conversie DAC cu precizie pe 8 biti. Conversia se face la interrupt cu o frecventa de 9615Hz.

Dupa ce se capteaza un numar setat de valori, acestea sunt trimise la o functie ce calculeaza frecventa fundamentala pe baza valorilor. Algoritmul este unul de autocorelatie cu interpolare si normalizare. Am ales acest alogritm datorita limitarilor de memorie, nu este la fel de precis dar consuma mult mai putina memorie decat analiza spectrala cu transformata Fourier.

Dupa ce se detecteaza o frecventa se va salva in cardul SD. Pentru comunicare se vor folosi SPI.h si SD.h.

Frecventele detectate vor fi afisate pe LCD. Comunicare cu LCD va folosi biblioteca LiquidCrystal I2C.

Rezultate Obţinute

Concluzii

Download

Jurnal

Bibliografie/Resurse

pm/prj2024/tdicu/alexandru.jipa2803.1716796336.txt.gz · Last modified: 2024/05/27 10:52 by alexandru.jipa2803
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