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.
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.
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.
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.
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.
Filmulet: watch
Proiectul e interesant si poate fi finalizat lejer. Totusi cel mai mult m-a atras editarea melodiei si lipirea pieselor :D.
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.
Datasheet pentru ATMEGA324. Laboratorul 2 ( PWM, Intreruperi ), Laboratorul 1( butoane si LED-uri).