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. In acelasi timp, pe display o sa apara numarul recipientului si un led asociat o sa lumineze.
  • Scopul proiectului este de entertaiment. In loc sa cumperi un pian sau alt instrument, este mult mai ieftin sa faci tu acasa. Ideea a pornit atunci cand am vazut pe youtube pe cineva care canta la ocarinahttps://www.youtube.com/watch?v=VhvRAcsfPsI&ab_channel=TheHeartOfGaming
  • 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 scoate sunete diferite, 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 cifra recipientului si un led o sa se aprinda.

Cand senzorul primeste iar lumina, buzzerul se opreste si led-ul se stinge. Pe display o sa apara in continuare cifra recipientului. In timp ce se canta si diferiti senzori sunt activati, numerele, reprezentand numarul fiecarui recipient, sunt afisate intr-o coada pe display, fiind sterse dupa ce eranul este plin.

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():
  • pentru citirea starii butonului;
  • se considera ca butonul a fost apasata o singura data atunci cand trec 10 milisecunde si intreruperea este gata;
  • void press_button():
  • se verifica ce tip de tonalitatea trebuie sa fie;
  • void setup():
  • se configureaza pinii;
  • se initializeaza oled-ul;
  • se adauga o intrerupere pentru buton;
  • 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 rezistenta 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;
  • void playNote(int noteFrequency):
  • daca una dintre fotorezistente nu este luminata, buzzerul canta o nota specifica, pana cand fotorezistenta este luminata iar;

Biblioteci utilizate:

  • Adafruit_SSD1306.h

Codul si demo: cod_demo.zip

Rezultate Obţinute

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

pm/prj2023/apredescu/light-based-musical-instrument.1685382505.txt.gz · Last modified: 2023/05/29 20:48 by maria.popescu2704
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