Flashing LED Lights

Autor: Leoveanu Maria-Alexandra

Grupa: 333CA

Introducere

  • O banda LED care poate lumina in diferite moduri: in functie de sunetul redat de laptop, flashing, rainbow spectrum etc. Banda poate fi controlata prin intermediul telefonului pentru a schimba modul de luminare.
  • Am ales acest proiect deoarece am deja niste benzi LED in camera, insa acestea nu pot lumina in functie de muzica. Mi se pare o adaugare buna la ce am deja, si ceva ce chiar as putea folosi. De asemenea, prin intermediul telefonului, pot customiza oricat de mult vreau modul de luminare al benzii.
  • Cred ca este util pentru cei care vor sa aiba o varietate / flexibilitate mai mare in controlul benzii LED.

Descriere Generala

Aplicatia de pe telefon se va conecta la modulul bluetooth. Atunci cand se transmit date pe acest canal, modul de luminare al benzii se schimba. Placa audio va colecta sunetele din laptop, si daca utilizatorul alege acest mod de luminare din aplicatie, luminile vor varia in functie acel sunet.

Hardware Design

Componente folosite:

  • Placuta Arduino UNO
  • Modul Bluetooth HC-05
  • Modul Microfon Placa audio externa
  • Banda LED NeoPixel
  • Breadboard
  • Fire mama-tata, tata-tata
  • Condensator 1000uF
  • Rezistenta 1kOhm

Schema Electrica

Software Design

Intreaga implementare se afla in fisierul 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.

Pentru a comunica cu modulul bluetooth am instalat pe telefon aplicatia ArduTooth care are deja comunicarea telefon-modul implementata

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.

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.

  • 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 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

Concluzii

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

Download

Jurnal

25.04.2021 - Adaugare pagina proiect ocw

9.05.2021 - Modificare (mica) a implementarii: In loc de microfon voi folosi o placa audio externa pentru a reda sunetul ce iese din laptop in placuta. Astfel, transmit in placuta exact semnalul audio redat de laptop; microfonul nu capta sunetele din fundal, ci doar cele foarte apropiate de el, si rezultatul nu a fost cel asteptat.

16.05.2021 - Finalizare implementare proiect software + hardware

20.05.2021 - Adaugare schema electrica ocw

01.06.2021 - Adaugare explicatii software ocw

Bibliografie/Resurse

pm/prj2021/cghenea/71.txt · Last modified: 2021/06/02 17:59 by maria.leoveanu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0