Radu-Cristian NEAGOE - Rotitica

Autorul poate fi contactat la adresa: Login pentru adresa

Proiectul meu e destul de simplu. Se bazeaza pe citirea de valori pe axe de la un accelerometru digital si in functie de valori, trimiterea unui sunet spre un difuzor.

Introducere

Ideea de la care pornisem era sa fac un pian, cu butoane. Insa asistentul mi-a spus ca nu e prea atractiv, si sa fac ceva si mai interesant, folosind un accelerometru. Scopul lui este de a putea analiza datele primite de la accelerometru pentru a putea scoate un sunet corespunzator. Alt scop este deprinderea in a folosi un difuzor.

Descriere generală

Schema bloc cu modulele hardware:

Ca si piese am folosit urmatoarele: 1 difuzor de 8 ohmi si .5W - 3 lei; 1 condensator polarizat de 100uF - 1 leu; 1 placa de test mica - 2.5 lei cabluri de 0.14mm - 1.5 lei accelerometru mma7455 - 34 de lei.

Schema difuzorului conectat la microcontroller:

Schema accelerometrului

Schema alimentarii pentru accelerometru

SCL l-am conectat la PC0, iar SDA la PC1.

Software Design

Pentru dezvoltarea aplicatiei am folosit AVR Studio 5 ( din laborator ) si AVR Studio 6.1, acasa. Am folosit librariile avr/interrupt, util/delay si avr/io. Codul aplicatiei e destul de simplu. Folosesc intreruperi din 16 in 16 ms in care incrementez un numar. Cand acesta ajunge la o valoare, duc un sunet la difuzor, cresc contorul pentru urmatoarea nota si resetez acel numar. Nota o trimit la difuzor prin PD5 Algoritmul folosit e cam urmatorul : la fiecare intrerupere incrementez un i; cand i se face 19, trimit o nota cu indice j, si cresc pe j. Cand j se face 24 s-a terminat o melodie, si se va repeta. De fiecare data verific daca s-a apasat butonul user. Daca da, il incrementez pe pe m ( indice melodie ) si il resetez pe j la 0, crescand si indicele de pauza. La fiecare a patra apasare a butonului se va pune pauza. Totodata, pentru a suna mai bine, intrerup PWM-ul la contorul 13 al lui i in diverse momente, la melodiile 2 si 3, si pe tot parcursul primei melodii.

Rezultate Obţinute

Momentan am obtinut o placuta care scoate trei bucati de melodie, repetand una la infinit, pana cand apas butonul user. Cand il apas, se aprinde putin ledul de pe placuta si se trece la urmatoarea bucata. La a patra apasare se va pune pauza pana la urmatoarea apasare.

Accelerometrul este montat, dar nu am scris cod pentru comunicarea cu master-ul.

img_1909.jpg

img_1910.jpg

Filmulet: watch

Concluzii

Proiectul e interesant si poate fi finalizat lejer. Totusi cel mai mult m-a atras editarea melodiei si lipirea pieselor :D.

Download

Jurnal

17.05.2013: Am cumparat piesele mentionate, in afara de accelerometru, de pe Maica Domnului.

20.05.2013: Am lipit difuzorul si condensatorul de placuta de test si de microcontroller, si am testat programe simple, care nu au mers.

21.05.2013: Am rulat un cod la scoala care a mers! Am completat wiki-ul.

25.05.2013: Am actualizat wiki-ul cu noile specificatii si noul cod.

27.05.2013: Am primit accelerometrul si l-am montat pe placuta.

Bibliografie/Resurse

Datasheet pentru ATMEGA324. Laboratorul 2 ( PWM, Intreruperi ), Laboratorul 1( butoane si LED-uri).

pm/prj2013/amocanu/neagoe-radu-cristian.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