Proiectul consta in dezvoltarea unui prototip de geaca cu LED-uri, ce poate fi purtata oriunde (petreceri/club, strada, sala etc). LED-urile pot fi controlate prin intermediul telefonului (comunicare Bluetooth), astfel utilizatorii dispun de numeroase functii/animatii. Cand este pornit sistemul, LED-urile intra initial in modul Standby (animatie basic), iar prin apasarea diferitelor butoane, utilizatorul isi poate alege functia de Sound Visualizer sau Fire Animation. In modul Sound Visualizer, sistemul se adapteaza la sunetele din imprejur (muzica de preferat), iar LED-urile genereaza o animatie bazata pe volumul/ritmul zgomotelor, fiind afisate diferite culori (in functie de intensitatea sunetului) ce se propaga de-a lungul benzii de LED-uri. In modul Fire Animation este simulata arderea unei flacari si propagarea caldurii, astfel culorile LED-urilor variaza intre rosu (fierbinte) si alb/galben (mai rece).
Schema bloc:
Placuta Arduino UNO este conectata direct la modulele Bluetooth, microfon si banda de LED-uri. Initial banda de LED-uri intra in modul Standby (animatie basic) si asteapta input de la utilizator. Prin intermediul aplicatiei de telefon, utilizatorul poate schimba animatia ce ruleaza, comunicarea telefon-modul Bluetooth fiind asigurata non-stop. Cand este apasat un buton pentru schimbarea animatiei, este trimisa o comanda catre modulul Bluetooth (respectiv placuta Arduino), aceasta este procesata, iar in functie de comanda primita placuta incepe urmatorul proces. Daca comanda primita este de tip Sound Visualizer, atunci microfonul incepe sa asculte/primeasca input din exterior, proceseaza sunetele si intensitatea lor si aprinde LED-urile in functie de acestea. Altfel (mod Fire Animation), placuta Arduino incepe sa ruleze animatia de flacara pe LED-uri.
Componente folosite:
Schema electrica:
Schema fizica:
Mediu de dezvoltare: Arduino IDE, Android Studio
Librarii aditionale: FastLED.h, SoftwareSerial.h
Mod functionare cod:
void setup() : aici este setat initial animation_code ca fiind 0 (STANDBY), sunt pornite LED-urile, este pornita animatia de Standby si este initializata calea de comunicare prin Bluetooth.
void Recursive_Clear() : aici sunt oprite LED-urile in mod secvential, cu delay de 40 ms intre ele. Este folosita in rularea animatiei de Standby, dupa ce sunt aprinse toate LED-urile cu o anumita culoare, se face clean-up pentru a pregati afisarea urmatoarei culori, si tot asa (ciclu).
void Standby() : ruleaza animatia initiala de Standby, astfel toate LED-urile sunt aprinse treptat (cu 40 ms delay intre ele), iar cand sunt aprinse toate se face clean-up (cu Recursive_Clear() ) si se trece la urmatoarea culoare (ciclu rosu-mov-albastru).
void Sound_Visualizer() : incepe sa fie preluata informatie din exterior prin intermediul microfonului, se face analogRead pe pinul A0, este citita valoarea, iar in functie de aceasta LED-urile centrale (de la jumatatea benzii) afiseaza o culoare potrivita valorii si o propaga mai departe (stanga/dreapta), pana in capetele benzii. Culorile sunt alese in functie de intensitatea sunetelor (zgomote puternice ⇒ rosu, zgomote joase ⇒ mov).
void Fire_Animation() : este simulata propagarea temperaturii unei flacari. Toata procedura este randomizata, astfel primele LED-uri sunt mereu rosii (simuland temperatura ridicata) si se pot extinde de-a lungul benzii la momente aleatoare de timp, fiind suprascrise valorile precedente ale LED-urilor (daca LED-urile afisau portocaliu/galben/alb, adica temperatura mai mica, culoarea rosie este propagata peste ele, iar cand este atins maximul de temperatura/varful flacarii, temperatura incepe sa scada).
void loop() : non-stop se verifica daca a fost primita informatie prin Bluetooth. Daca este primita informatie, aceasta este procesata si se schimba animatia ce ruleaza. Valoarea '0' este pentru Standby Animation, '1' este pentru Sound Visualizer, iar '2' este pentru Fire Animation. In functie de variabila animation_code se apeleaza functiile descrise mai sus (functiile animatiilor).
Ware Android App:
Standby Animation:
Sound Visualizer:
Fire Animation:
Prezentare:
https://www.youtube.com/watch?v=S_izPQXYr_0&t=7s&ab_channel=AndreiIonescu
Arhiva Ware Android App: ware.zip
Arhiva .ino file: wareino.zip