This is an old revision of the document!
LightSinger
Introducere
Vrei sa fii in aceeasi stare cu vremea de afara ? LightSinger iti ofera posibilitatea de a asculta o melodie in functie de starea vremii.
Descriere generală
Un dispozitiv de masurare a intensitatii luminii, care in functie de aceasta afiseaza o imagine reprezentativa pe un ecran LCD si canta o melodie (intuneric - afiseaza o stea, canta twinkle little star)
Toate componentele sunt conectate la Arduino prin intermediul Breadboard-ului.
Schema electrica
Hardware Design
Software Design
Descrierea codului aplicaţiei (firmware):
Software - Diagrama de activitati (Organigrama)
Programul are urmatorul flow:
Se preia valoarea intensitatii luminoase de la fotorezistenta (marja de aproximativ 0 - 1000).
In fiecare caz se afiseaza o imagine creata pe bitii lcd-ului, iar buzzer-ul canta o melodie care este corespunzatoare luminozitatii.
Notele buzzer-ului sunt reprezentate de frecvente, iar ele sunt asociate unui array de litere (De exemplu C este nota Do, in notatia notelor). De asemenea, in melodie, fiecare nota are asociata o durata pentru a stii cat timp se canta nota.
Pentru fiecare melodie se foloseste o viteza (speed), pentru a canta toate notele intr-un anumit tempo.
Functia playTone(int tone, int duration, float speed) se ocupa cu activarea buzzer-ului (punerea pe HIGH) pentru a canta nota primita ca parametru intr-un anumit timp
Functia playNote(char note, int duration, float speed) se ocupa de cautarea frecventei asociate in functie de litera primita ca parametru
Fiecare cantec este reprezentat de o parcurgere a unui array de litere si a unuia de durate, reprezentand notele melodiei si timpul cat ele sunt activate.
Fiecare imagine este reprezentata de o functie in care sunt activati doar anumiti pixeli din lcd
In functie de intensitatea luminoasa, se poate ajunge in unul din cele 3 cazuri
Cand intensitatea este sub 300, se foloseste ramura Dark. Se afiseaza o stea si se canta o melodie linistita
Cand intensitatea este intre 300 si 650, se foloseste ramura Cloudy. Se afiseaza un nor si se canta o melodie intermediara
Cand intensitatea este peste 650, se foloseste ramura Sunny. Se afiseaza un soare si se canta o melodie mai energica
Rezultate Obţinute
Care au fost rezultatele obţinute în urma realizării proiectului vostru.
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
Bibliografie/Resurse