This shows you the differences between two versions of the page.
pm:prj2022:abirlica:lightsinger [2022/06/01 00:02] ionut_cristian.tacu |
pm:prj2022:abirlica:lightsinger [2022/06/01 00:56] (current) ionut_cristian.tacu [Concluzii] |
||
---|---|---|---|
Line 11: | Line 11: | ||
{{ :pm:prj2022:abirlica:schema_bloc_tic.png?500 |}} | {{ :pm:prj2022:abirlica:schema_bloc_tic.png?500 |}} | ||
+ | Toate componentele sunt conectate la Arduino prin intermediul Breadboard-ului. | ||
===== Schema electrica ===== | ===== Schema electrica ===== | ||
{{:pm:prj2022:abirlica:schema_electrica_tic.jpeg?600 |}} | {{:pm:prj2022:abirlica:schema_electrica_tic.jpeg?600 |}} | ||
- | |||
- | Toate componentele sunt conectate la Arduino prin intermediul Breadboard-ului. | ||
===== Hardware Design ===== | ===== Hardware Design ===== | ||
Line 25: | Line 24: | ||
* Wires | * Wires | ||
+ | {{:pm:prj2022:abirlica:poza_hard_tic.jpeg?800|}} | ||
+ | |||
+ | Avand in vedere conectarea elementelor am folosit un Breadboard, pentru reutilizarea componentelor, si usurarea mentenantei. | ||
===== Software Design ===== | ===== Software Design ===== | ||
Line 35: | Line 37: | ||
===== Software - Diagrama de activitati (Organigrama) ===== | ===== Software - Diagrama de activitati (Organigrama) ===== | ||
- | {{:pm:prj2022:abirlica:diagram_tic.png?450 |}} | + | {{:pm:prj2022:abirlica:diagram_tic.png?500|}} |
Programul are urmatorul flow: | Programul are urmatorul flow: | ||
- | * Se preia valoarea intensitatii luminoase de la fotorezistenta (marja de aproximativ 0 - 1000) | + | |
- | * In functie de intensitatea luminoasa, se poate ajunge in unul din cele 3 cazuri : | + | Se preia valoarea intensitatii luminoase de la fotorezistenta (marja de aproximativ 0 - 1000). |
- | - Ordered List ItemUnordered List Item Unordered List Item | + | |
+ | 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 ===== | ===== Rezultate Obţinute ===== | ||
Line 48: | Line 67: | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | |||
+ | In urma dezvoltarii proiectului am inteles mecanismele din spatele buzzer-ului pasiv pentru crearea unei melodii. Fiind pasionat de pian si creare de acompaniamente, am avut ocazia de a simula unele melodii preferate (corespunzatoare vremii din punctul meu de vedere) in buzzer. | ||
+ | |||
+ | Cele mai mari provocari au reiesit din urmatoarele: | ||
+ | * Asocierea notelor cu frecventele, pana cand am obtinut notele reale | ||
+ | * Gasirea timpilor potriviti pentru fiecare nota cantata si simularea tempo-ului cat mai potrivit | ||
+ | * Crearea imaginilor pe pixelii lcd-ului | ||
===== Download ===== | ===== Download ===== |