Table of Contents

Ware - LED Jacket

Introducere

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).

Descriere generală

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.

Hardware Design

Componente folosite:

  1. placa Arduino UNO
  2. Arduino USB cable
  3. modul microfon
  4. modul Bluetooth HC-05
  5. Neopixel Ledstrip WS2812B (90 LEDs, 3 metri)
  6. 2 X rezistente 220 Ohm
  7. fire mama-tata
  8. breadboard
  9. sursa aditionala 5V
  10. mufa adaptare sursa aditionala
  11. banda dublu adeziva (multa)

Schema electrica:

Schema fizica:

Software Design

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).

Rezultate Obţinute

Ware Android App:

Standby Animation:

Sound Visualizer:

Fire Animation:

Prezentare:

https://www.youtube.com/watch?v=S_izPQXYr_0&t=7s&ab_channel=AndreiIonescu

Concluzii

Download

Arhiva Ware Android App: ware.zip

Arhiva .ino file: wareino.zip

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF