Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2024:fstancu:mircea.popa2709 [2024/05/05 18:38]
mircea.popa2709
pm:prj2024:fstancu:mircea.popa2709 [2024/05/27 11:25] (current)
mircea.popa2709
Line 1: Line 1:
 ====== Smart Lights ====== ====== Smart Lights ======
 +**Mircea Popa**
 +**333CD**
 +
  
 ===== Introducere ===== ===== Introducere =====
  
-<note tip>+
 Prezentarea proiectului:​ Prezentarea proiectului:​
-  * Bandă LED smart +  ​* **Bandă LED smart** 
-  * Scopul: Creșterea imersiunii în timpul vizionării de filme sau jocuri, reducerea ​obosealii ​oculare și crearea unui ambient plăcut. +  * Scopul: Creșterea imersiunii în timpul vizionării de filme sau jocuri, ​**reducerea ​oboselii** ​oculare și crearea unui ambient plăcut. 
-  * Ideea de la care ați pornit: Îmbunătățirea experienței utilizatorilor în fața ecranelor. +  * Ideea de la care a pornit: Îmbunătățirea experienței utilizatorilor în fața ecranelor. 
-  * Utilitate: Util atât pentru experiența personală cât și ca studiu ​în eficiența sistemelor ​de iluminare dinamică.+<note tip> 
 +Această Bandă LED este concepută să fie plasată **în spatele monitorului** îndreptat spre un perete ​de culoare deschisă
 </​note>​ </​note>​
  
-===== Descriere generală ===== 
  
-<​note ​tip>+<​note ​important>**Scurt demo:** https://​www.youtube.com/​watch?​v=-Ufe48yoyLg</​note>​ 
 + 
 + 
 +{{https://​ocw.cs.pub.ro/​courses/​_media/​pm/​prj2024/​fstancu/​whatsapp_image_2024-05-27_at_10.13.27_7e7a2770.jpg?​400}} 
 +{{https://​ocw.cs.pub.ro/​courses/​_media/​pm/​prj2024/​fstancu/​whatsapp_image_2024-05-27_at_10.13.27_a404598c.jpg?​400}} 
 + 
 +<​note>​ 
 +În modul de iluminare //​immersive//,​ culoarea luminii ambientale este **corelată cu conținutul de pe ecran** 
 +</​note>​ 
 + 
 +===== Descriere generală =====
 Schema bloc a proiectului:​ Schema bloc a proiectului:​
-  ​* Module Hardware: Arduino ​Nano, banda LED WS2812, cabluri de conectare. + 
-  * Module Software: Aplicație GUI în Windows pentru controlul culorilor și efectelor de iluminare.+{{https://​ocw.cs.pub.ro/​courses/​_media/​pm/​prj2024/​fstancu/​mp_diagram.png}} 
 + 
 +  ​* Module Hardware: ​**Arduino ​UNO, banda LED WS2812 ​(44 led-uri), cabluri de conectare**
 +  * Module Software: ​**Aplicație GUI în Windows** pentru controlul culorilor și efectelor de iluminare.
   * Interacțiunea între module: Arduino primește semnale de la aplicația GUI prin USB, controlând banda LED.   * Interacțiunea între module: Arduino primește semnale de la aplicația GUI prin USB, controlând banda LED.
 +
 +<note tip>
 +Dispozitivul cu Windows și plăcuța de dezvoltare Arduino comunică (unidirecțional) folosind un format de date specific descris mai jos
 +
 </​note>​ </​note>​
  
 ===== Hardware Design ===== ===== Hardware Design =====
 +Schema hardware:
  
-<note tip> +{{https://ocw.cs.pub.ro/​courses/​_media/​pm/​prj2024/​fstancu/​scheme-it-export-new-project-2024-05-17-11-05.png?​400}} 
-  * Listă de pieseArduino Nano, banda LED WS2812, cablu USB Mini USB. +{{https://ocw.cs.pub.ro/courses/​_media/​pm/​prj2024/​fstancu/​whatsapp_image_2024-05-27_at_10.13.25_01796a10.jpg?​400}}
-  * Scheme electrice: Schema de conectare a benzii LED la Arduino. +
-  * Diagrame de semnal: Semnale digitale între Arduino și banda LED+
-  * Rezultatele simulăriiTeste de funcționare pentru ajustarea culorilor și efectelor. +
-</note>+
  
-===== Software Design =====+Listă de piese: 
 +  * Arduino UNO 
 +  * bandă LED WS2812 
 +  * cablu USB 
 +  * fire de curent
  
 <note tip> <note tip>
-  * Mediu de dezvoltare: Arduino IDE. +Au fost utilizate lipituri pentru legarea sursei la banda ledFirele ​de GND și semnal digital sunt legate direct pe plăcuțde dezvoltare
-  * Librării și surse 3rd-party: Adafruit NeoPixel Library. +
-  * Algoritmi și structuri: Calculul culorilor în funcție ​de informațiile primite de la GUI. +
-  * Surse și funcții implementate:​ Funcții specifice pentru controlul efectelor ​de iluminare.+
 </​note>​ </​note>​
  
-===== Rezultate Obținute ===== 
  
-<note tip> +===== Software Design ===== 
-Descrierea rezultatelor testărilor și efectele îmbunătățirii vizuale și reducerea oboselei oculare. +Proiectul se împarte în **două module software**:  
-</​note>​+  * Codul pentru controlul plăcuței Arduino 
 +  * Aplicația cu interfață grafică pentru Windows
  
-===== Concluzii =====+<note important>​Link GitHub: https://​github.com/​mircea-popa02/​smart-lights</​note>​
  
-===== Download =====+==== Arduino ​==== 
 +Codul utilizează biblioteca **FastLED** pentru controlul semnalului.
  
-<note warning>​ +Inițializare:​ Se configurează LED-urile ​și începe comunicarea serială //(default pe portul 9600)// 
-Arhivă cu fișierele proiectuluisursescheme, documentație. Încărcare pe wiki sub namespace-ul :pm:prj20??:c?:nume_student. +Citire și interpretare intrări serialeCitește date de la portul serialinterpretează comanda primită și actualizează modul de animație și parametrii LED-urilor //(culori și întârzieri)//​. 
-</​note>​+Control LED-uri: În funcție de modul selectat //(RAINBOW, PULSE, SOLID, IMMERSIVE)//,​ actualizează LED-urile corespunzător: 
 +  * **RAINBOW**Afișează un efect curcubeu. 
 +  * **PULSE**Afișează pulsarea culorii specificate alternând luminozitatea 
 +  * **SOLID**Afișează o culoare solidă fără alte animații sau efecete 
 +  * **IMMERSIVE**:​ Tranziție lină între culori.
  
-===== Jurnal =====+<​note>​ 
 +Modul **IMMERSIVE** se bazează pe un flux constant de date prin portul serial provenit de la computer 
 +</​note>​
  
 +Codul folosește delay-uri pentru a temporiza actualizarea LED-urilor conform parametrilor primiți.
 <note tip> <note tip>
-Documentare progres, modificări și testări.+**Capitolele din laborator** înglobate sunt: 
 +  * **GPIO** - Codul folosește pinul digital 6 pentru a controla LED-urile prin biblioteca FastLED 
 +  * **UART** - Comunicarea serială este realizată cu ''​Serial.begin(9600)''​ în ''​setup()'' ​și ''​Serial.readStringUntil('​\n'​)''​ în ''​loop()''​ 
 +  * **Timere** - Funcția delay(animationDelay) folosește timerul intern al microcontrolerului pentru a introduce întârzieri între actualizările LED-urilor. 
 +  * **PWM** - Deși nu este folosit explicit PWM în codul prezentat pentru controlul direct al intensității LED-urilor, conceptul de ajustare a luminozității LED-urilor prin modificarea valorilor RGB sau a intensității (ex. brightness în modul PULSE) este similar cu controlul prin PWM.
 </​note>​ </​note>​
  
-===== Bibliografie/​Resurse =====+==== GUI ==== 
 +Interfață grafică Python //​(biblioteca Tkinter)//​ 
 + 
 +Funcția ''​get_dominant_screen_color''​ preia o captură de ecran, calculează culoarea dominantă și o ajustează pentru a avea saturație și valoare maxime. 
 + 
 +Trimiterea comenzilor către Arduino: Funcțiile ''​send_rgb'',​ ''​send_immersive'',​ ''​send_rainbow'',​ și ''​send_pulse''​ trimit diferite comenzi către Arduino pentru a schimba modul de iluminare și parametrii acestuia (culoare și viteză).
  
 <​note>​ <​note>​
-Documente, datasheet-uri,​ resurse Internet folosite.+Funcția ''​periodic_update''​ verifică periodic dacă modul **IMMERSIVE** este activ și actualizează automat culoarea bazată pe culoarea dominantă a ecranului.
 </​note>​ </​note>​
  
-<html><a class="​media mediafile mf_pdf"​ href="?​do=export_pdf"​>Export to PDF</a></html>+**Formatul de date trimis** de aplicația GUI către Arduino prin portul serial urmează o structură specifică, care constă dintr-o serie de valori separate prin virgule. Această structură permite Arduino-ului să interpreteze corect comanda și să ajusteze modul de iluminare și parametrii corespunzători. 
 + 
 +Formatul general al datelor trimise este: 
 +''​<mode>,<speed>,<red>,<green>,<​blue>''​ 
 + 
 + 
 +Interfața grafică 
 + 
 +{{https://​ocw.cs.pub.ro/​courses/​_media/​pm/​prj2024/​fstancu/​333995159-07addfa4-28dc-4bac-a9dc-6b6ac8684be3.png?​400}} 
 + 
 +Culoarea selectată se actualizează dinamic când slider-urile RGB sunt modificate (valori de la 0 la 255).  
 + 
 +Apăsarea unuia dintre cele 4 butoane determină schimbarea modului de iluminare și trimiterea noilor parametri prin serial. 
 + 
  
pm/prj2024/fstancu/mircea.popa2709.1714923490.txt.gz · Last modified: 2024/05/05 18:38 by mircea.popa2709
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