Proiectul consta in realizarea unui pian ce reda output-ul folosind un sintetizator MIDI, astfel sunetele vor avea o calitate mult mai buna comparativ cu cele care ar fi fost produse din generare de PWM.
Scopul proiectului este obtinerea unui dispozitiv asemanator unui pian, insa capabil sa emuleze o gama mai mare de sunete (ex. chitara, harpa, toba etc.)
Componenta de baza a proiectului o reprezinta shield-ul VS1053B cu care se poate comunica prin intermediul microcontroller-ului ATMEGA324A.
Butoanele disponibile vor reprezenta 8 note dintr-o singură octavă.
De asemenea, in proiect am introdus si un buton auxiliar ce poate fi folosit pentru a schimba instrumentul curent.
Piese | |
---|---|
1. | Boxe cu jack |
2. | 9 Butoane |
3. | Shield VS1053 pentru Arduino |
4. | Fire de legatura (mama-mama si tata-mama) |
5. | Acumulator pe USB |
6. | 2 X breadbord mic |
In urma simularii, rezultatele au fost cele asteptate. Placuta Atmega primeste pe pinii de pe port-ul A semnale, pe care le transmite catre shield-ul VS1053B, prin intermediul interfetei seriale (USART). Comunicatia dintre cele doua are loc folosind protodolul MIDI (8 biți de date, 1 bit de stop, fără paritate). De aici, pe baza instrumentului selectat de catre utilizator, shield-ul va trimite catre boxele conectate, o serie de sunete (conforme cu butoanele apasate - fiecare buton este encodat ca fiind o anumita nota muzicala din gama instrumentului).
Ca mediu de dezvoltare al proiectului am folosit sublime text 3.
Pentru comunicatia dintre shield si placuta de PM m-am folosit de codul prezentat la laboratorul 1 (USART).
Pentru comunicatia dintre placuta si VS1053B in ceea ce priveste notele muzicale, m-am folosit de codul prezentat in github-ulVS1053 (mai exact functiile noteON si noteOFF).
Codul a fost compilat folosind: avr-gcc si urcat pe placuta folosind bootloadHID.
Tema a fost pe cat de interesanta pe atata de frustranta. Am crezut ca partea de hardware o sa imi faca probleme, insa a fost chiar foarte usoara comparativ cu cea de software. Principala sursa de probleme a fost comunicarea cu shield-ul VS1053B.
Ca si cheltuieli am ajuns undeva in jurul sumei de 300 lei :), componenta cea mai scumpa fiind VS1053B-ul (pe care am dat frumoasa suma de 160 lei).
In arhiva este sunt incluse urmatoarele: