This is an old revision of the document!
Light-based Musical Instrument
Introducere
Nume: Popescu Maria-Mateea
Grupa: 331CA
Prezentarea pe scurt a proiectului vostru:
Proiectul este un instrument muzical pe baza de lumina. Este alcatuit din 4 recipiente, in momentul in care unu din cele 4 obiecte este acoperit sau lumina nu mai poate ajunge la el, incepe sa cante pe o anumita tonalitate. In acelasi timp, pe display o sa apara numarul notei care este cantata si un led asociat o sa lumineze. Mai este si un buton care atunci cand e apasat tonalitatea o sa se schimbe.
-
Am zis ca sigur se poate face ceva pornind de la asta. La fel cum pentru flaut si ocarina ai nevoie sa acoperi diferite gauri pentru a canta anumite note, asa si la acest instrument e nevoie sa acoperi recipientele pentru a scoate sunete.
Descriere generală
Pentru realizarea proiectului este nevoie de 4 senzori de lumina, fiecare fiind lipit de baza unui recipient. Recipientul este deschis in partea opusa fata de unde se afla senzorul, astfel incat atunci cand este acoperita aceasta zona, senzorul sa nu mai primeasca deloc lumina. In mometul in care acest lucru se intampla, buzzerul o sa porneasca sa cante, pe display o sa apara nota care este cantata si un led asociat o sa se aprinda.
Pe suport este si un buton care atunci cand e apasat schimba tonalitatea notelor. Pentru fiecare recipient o sa fie cate 2 tonalitati una joasa si una ridicata.
Cand senzorul primeste iar lumina, buzzerul se opreste si led-ul se stinge, iar pe dislay o sa apara urmatoarele optiuni: “Vrei sa canti?” daca toate fotorezistentele sunt luminate, “Tonalitate schimbata” daca butonul este apsat sau nota de la alt senzor acoperit.
Hardware Design
Lista piese:
Aruino Uno
ecran OLED
4 senzori de lumina
4 LED-uri
buzzer
breadboard
baterie
fire
buton
Software Design
Pentru realizarea proiectului am implementat urmatoarele functii
* void button_intrerrupt_handler():
pentru tratarea intreruperilor in momentul in care butonul este apasat;
functia este apelata in setup, in functia attachInterrupt;
* bool read_button():
* void press_button():
* void setup():
* void loop():
verific daca butonul este schimbat, atunci se schimba tonalitatea;
daca toate fotorezistentele sunt luminate se afiseaza un mesaj sugestiv;
se verifica pe rand fiecare fotorezistenta daca este acoperita. Daca una din ele nu mai primeste lumina, se lumineaza led-ul corespunzator fotorezistentei respective si se afiseaza nota corespunzatoare pe lcd. Este apelata ulterior functia care porneste buzzerul playNote;
* void playNote(int noteFrequency):
Biblioteci utilizate:
Rezultate Obţinute
Rezultatul final
Circuit
Demo
Concluzii
Download
O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună
.
Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.
Jurnal
Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.
Bibliografie/Resurse
Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.
Export to PDF