This shows you the differences between two versions of the page.
pm:prj2021:cghenea:71 [2021/06/01 13:08] maria.leoveanu [Rezultate Obtinute] |
pm:prj2021:cghenea:71 [2021/06/02 17:59] (current) maria.leoveanu [Rezultate Obtinute] |
||
---|---|---|---|
Line 38: | Line 38: | ||
====== Schema Electrica ====== | ====== Schema Electrica ====== | ||
- | {{:pm:prj2021:cghenea:schemaelectricamarialeoveanu.png?750|}} | + | {{:pm:prj2021:cghenea:maria_leoveanu_schema.png?850 |}} |
====== Software Design ====== | ====== Software Design ====== | ||
+ | |||
+ | Intreaga implementare se afla in fisierul [[https://github.com/mariaLeoveanu/FlashingLedLights/blob/master/FlashLEDS.ino|FlashLEDS.ino]] | ||
+ | |||
+ | In bucla principala se verifica de fiecare data care e modul in care ar trebui sa lumineze banda. Apoi, daca modulul de bluetooth a primit date prin intermediul telefonului pentru a schimba modul, acesta se actualizeaza, si la urmatoarea bucla banda va lumina diferit. | ||
+ | <note>Pentru a comunica cu modulul bluetooth am instalat pe telefon aplicatia [[https://play.google.com/store/apps/details?id=com.frederikhauke.ArduTooth&hl=en&gl=US|ArduTooth]] care are deja comunicarea telefon-modul implementata</note> | ||
+ | |||
+ | Mesajele "intelese" de placuta sunt: | ||
+ | * **1**: modul de luminare in functie de muzica ce se aude din laptop | ||
+ | |||
+ | Deoarece semnalul primit de la laptop are forma sinusoidala, am ales sa reprezint in jocul de lumini doar punctul maxim local al fiecarei unde. Pentru asta, am ales (arbitrar, in functie de valorile pe care am vazut ca le are semnalul) o valoare de "prag" sub care sa nu mai modific ledul. Astfel, pentru valorile mai mici la care semnalul coboara, ledul nu va clipi de fiecare data, ci va ramane cu ce culoare avea inainte. In functie de intensitatea semnalului, ledul va avea una din cele 3 culoari, corespondente anumitor range-uri de valori intre care am observat ca se afla in general. | ||
+ | |||
+ | {{:pm:prj2021:cghenea:maria_leoveanu_semnal.png?600 |}} | ||
+ | {{:pm:prj2021:cghenea:maria_leoveanu_semnal_2.png?600|}} | ||
+ | |||
+ | <note important>In prima poza este semnalul initial (cel primit de la placa audio), iar in cea de-a doua este semnalul final, cel care este reprezentat de led-uri. Se observa ca aici valoarea minima este mai mare; e pragul minim care trebuie sa fie trecut pentru ca ledul sa isi schimbe culoarea.</note> | ||
+ | |||
+ | |||
+ | * **2<R|O|Y|G|A|D|P|M|W>**: modul de luminare statica | ||
+ | In bucla, daca primul caracter primit este 2, se verifica si urmatorul, pentru a seta culoarea statica cu care se va aprinde banda. Apoi, in functia ''static_colour(colour)'' se seteaza toate ledurile benzii la acea culoare. | ||
+ | |||
+ | * **3**: mod de luminare tot dupa muzica, asemanator cu un vu metru | ||
+ | In cazul acestui mod am ales (din nou, arbitrar) 5 nivele diferite pana la care se poate aprinde ledul. Cu cat intensitatea sunetului e mai mare, cu atat se aprind mai multe leduri. In plus, ultimul led se aprinde rosu, iar penultimele 2 se aprind portocaliu (restul se aprind verde). In functia ''v_meter'', dupa ce stabilesc care e acel nivel, banda se lumineaza led cu led pana la maxim, si apoi, tot led cu led, se stinge pana la nivelul minim (0). | ||
+ | |||
+ | * **4**: rainbow spectrum | ||
+ | Banda cicleaza prin toate culorile curcubeului. Implementarea + obtinerea culorilor in ordinea curcubelui am facut-o cu ajutorul [[https://codebender.cc/sketch:80438#Neopixel%20Rainbow.ino|acestui snippet]]. Functia ''rainbow()'' reprezinta un ciclu complet de culori. Deci daca modul de luminare se schimba in mijlocul acesuia, ciclul de culori trebuie sa se termine inainte de a se schimba ⇒ va exista un delay pana cand modul de luminare se schimba. | ||
+ | * **5<A|B|C>**: fade | ||
+ | Ledurile isi schimba gradual culoarea de la o culoare 1 la o culoare 2. Valorile A/B/C reprezinta combinatiile de culori posibile intre care se poate face fade. In functia ''fade()'', in 2 bucle separate, se face o data tranzitia de la culoarea 1 la culoarea 2, apoi de la culoarea 2 la culoarea 1. La fel ca in cazul modului de 4, schimbarea din modul 5 in altul va avea un scurt delay deoarece trebuie sa se tremine un ciclu de fade complet. | ||
====== Rezultate Obtinute ====== | ====== Rezultate Obtinute ====== | ||
- | {{:pm:prj2021:cghenea:maria_leoveanu_1.jpeg?400|}} | + | {{:pm:prj2021:cghenea:maria_leoveanu_1.jpeg?300| }} |
- | {{:pm:prj2021:cghenea:maria_leoveanu_2.jpeg?400|}} | + | {{:pm:prj2021:cghenea:maria_leoveanu_2.jpeg?300|}} |
+ | |||
+ | [[https://youtu.be/n4634GmOONA|Demo muzica]] | ||
+ | |||
+ | [[https://youtu.be/aSLgd_5O-1M|Demo vu metru]] | ||
+ | |||
+ | [[https://youtu.be/VnFb-CQx4WA| Demo full]] | ||
====== Concluzii ====== | ====== Concluzii ====== | ||
+ | <note>Mi-a placut sa lucrez la acest proiect 😀. Mi s-a parut o combinatie buna a partii software cu cea hardware, si am putut sa experimentez cu mai multe moduri de luminare si de interpretare a semnalului </note> | ||
====== Download ====== | ====== Download ====== | ||
Line 57: | Line 91: | ||
**20.05.2021** - Adaugare schema electrica ocw | **20.05.2021** - Adaugare schema electrica ocw | ||
+ | |||
+ | **01.06.2021** - Adaugare explicatii software ocw | ||
====== Bibliografie/Resurse ====== | ====== Bibliografie/Resurse ====== |