Differences

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

Link to this comparison view

pm:prj2025:fstancu:rares.stoica2609 [2025/05/25 16:58]
rares.stoica2609 [Software Design]
pm:prj2025:fstancu:rares.stoica2609 [2025/05/30 00:26] (current)
rares.stoica2609 [Download]
Line 117: Line 117:
  
 ===== Software Design ===== ===== Software Design =====
 +
 +
 +!!!!!!!Am pus la sectiunea de DOWNLOAD fisierele
  
 1. **Motivarea alegerii bibliotecilor folosite:** 1. **Motivarea alegerii bibliotecilor folosite:**
Line 124: Line 127:
       * serial (PySerial): pentru comunicarea între aplicația Python și Arduino Mega, separând comanda modurilor (pe COM4) de datele RGB (pe COM5).       * serial (PySerial): pentru comunicarea între aplicația Python și Arduino Mega, separând comanda modurilor (pe COM4) de datele RGB (pe COM5).
       * PyQt5: pentru interfața grafică a aplicației pe PC. Permite o interfață prietenoasă și modernă, cu butoane pentru comutarea modurilor.       * PyQt5: pentru interfața grafică a aplicației pe PC. Permite o interfață prietenoasă și modernă, cu butoane pentru comutarea modurilor.
-      * Pillow + NumPy: folosite pentru capturarea ecranului și analiza pixelilor in mod ambilight, oferind culori dinamice pentru fiecare ​LED.+      * Pillow + NumPy: folosite pentru capturarea ecranului și analiza pixelilor in mod ambilight, oferind culori dinamice pentru fiecare ​LE
  
 +2. **Elementul de noutate al proiectului:​**
 +      * Utilizarea simultană a două canale seriale distincte: COM4 pentru comenzi, COM5 pentru date RGB, evitând conflictele de bandă sau blocajele de sincronizare.
 +      * Modul FOCUSED bazat pe senzor PIR: ecranul OLED se aprinde doar când detectează mișcare, ideal pentru medii low-power sau scenarii de concentrare.
 +      * Modul ;)) unic, cu animație grafică pe OLED și efecte LED calde (roz, rosu, portocaliu) sincronizate.
 +      * Aplicație Python cu design personalizat și build final .exe portabil, realizat cu Inno Setup.
  
 +3. **Justificarea utilizării funcționalităților din laborator:​**
 +      * Lab 1 (USART): proiectul folosește ambele porturi seriale (USB și CH340) pentru comunicație bidirecțională,​ conform structurii laboratorului.
 +      * Lab 2 (Timer și Întreruperi):​ folosirea millis() pentru actualizări temporizate (citire senzor/​refresh LED) evită delay(), asigurând rulare fluidă.
 +      * Lab 3 (PWM): modulul FastLED utilizează PWM hardware/​software pentru generarea culorilor RGB precise.
 +      * Lab 4 (ADC): senzorul DHT are un semnal digital, dar utilizarea sa este complet integrată într-un flux de actualizare periodică.
 +      * Lab 6 (I2C): display-ul OLED si Modulul RTC funcționează pe magistrala I2C, gestionată simultan cu alți senzori.
  
-Elementul de noutate al proiectului:​+4. **Structura ​proiectului ​și interacțiunea funcționalităților:** 
 +      * Arduino Mega primește comenzi pe Serial1 (COM4) de la aplicația Python (mod TEMP, AMBILIGHT, FOCUSED, ;)). 
 +      * Pe COM5 (USB), Arduino primește continuu date RGB doar când e în modul AMBILIGHT. 
 +      * Senzorul DHT este folosit în TEMP și FOCUSED pentru afișarea temperaturii. 
 +      * Senzorul PIR controlează aprinderea display-ului doar la mișcare (mod FOCUSED). 
 +      * Display-ul OLED afișează ora/​temperatura în toate modurile, cu animație într-un mod special. 
 +      * Aplicația Python trimite comenzi și, când e cazul, date RGB capturate live de pe ecran.
  
-Utilizarea simultană a două canale seriale distincteCOM4 pentru comenziCOM5 pentru date RGBevitând conflictele de bandă sau blocajele de sincronizare.+5. **Validarea funcționalităților ​fost realizată prin:** 
 +      * observarea efectului LED vizual (culoareanimațieoprire). 
 +      * testarea comutării rapide între moduri. 
 +      * monitorizare Serial pentru debug și afșaj OLED pentru feedback.
  
-Modul FOCUSED bazat pe senzor PIR: ecranul OLED se aprinde doar când detectează mișcare, ideal pentru medii low-power sau scenarii de concentrare. 
  
-Modul ;)) uniccu animație grafică ​pe OLED și efecte LED calde (roz, rosu, portocaliu) sincronizate.+6. **Calibrarea elementelor de senzoristică:​** 
 +      * DHT22 a fost plasat într-un mediu static pentru validarea temperaturii față de un termometru de cameră. 
 +      * PIR a fost reglat prin blocarea vederii lentilei in lateraleastfel va detecta doar miscarea de deasupra (detecție doar la mâna). 
 +      * valorile din senzor au fost afișate ​pe OLED și comparate cu mișcarea fizică efectivă.
  
-Aplicație Python cu design personalizat și build final .exe portabil, realizat cu Inno Setup. 
  
 +7. **Optimizări realizate:​**
 +      * Folosirea millis() în loc de delay() pentru actualizări precise.
 +      * Separarea modurilor pe porturi diferite previne blocajele.
 +      * Evitarea actualizării continue a OLED (doar la nevoie).
 +      * Trimiterea de date RGB doar când este cazul (mod activ).
 +      * Aplicație GUI minimală, eficientă, cu thread separat pentru RGB, evitând blocarea UI | Detectare automata porturi device!!!
 +      * Compilare PyInstaller + Inno Setup pentru portabilitate totală.
 +===== Rezultate Obţinute =====
 +**Demo**
  
 +<​html><​iframe width="​560"​ height="​315"​ src="​https://​www.youtube.com/​embed/​wAGGWOENbxo"​ title="​YouTube video player"​ frameborder="​0"​ allow="​accelerometer;​ autoplay; clipboard-write;​ encrypted-media;​ gyroscope; picture-in-picture;​ web-share"​ referrerpolicy="​strict-origin-when-cross-origin"​ allowfullscreen></​iframe></​html>​
  
-Justificarea utilizării funcționalităților din laborator: 
- 
-Lab 1 (USART): proiectul folosește ambele porturi seriale (USB și CH340) pentru comunicație bidirecțională,​ conform structurii laboratorului. 
- 
-Lab 2 (Timer și Întreruperi):​ folosirea millis() pentru actualizări temporizate (citire senzor/​refresh LED) evită delay(), asigurând rulare fluidă. 
- 
-Lab 3 (PWM): modulul FastLED utilizează PWM hardware/​software pentru generarea culorilor RGB precise. 
- 
-Lab 4 (ADC): senzorul DHT are un semnal digital, dar utilizarea sa este complet integrată într-un flux de actualizare periodică. 
- 
-Lab 6 (I2C): display-ul OLED si Modulul RTC funcționează pe magistrala I2C, gestionată simultan cu alți senzori, conform exercițiilor de laborator. 
- 
- 
-Structura proiectului și interacțiunea funcționalităților:​ 
- 
- 
-Arduino Mega primește comenzi pe Serial1 (COM4) de la aplicația Python (mod TEMP, AMBILIGHT, FOCUSED, ;)). 
- 
-Pe COM5 (USB), Arduino primește continuu date RGB doar când e în modul AMBILIGHT. 
- 
-Senzorul DHT este folosit în TEMP și FOCUSED pentru afișarea temperaturii. 
- 
-Senzorul PIR controlează aprinderea display-ului doar la mișcare (mod FOCUSED). 
- 
-Display-ul OLED afișează ora/​temperatura în toate modurile, cu animație într-un mod special. 
- 
-Aplicația Python trimite comenzi și, când e cazul, date RGB capturate live de pe ecran. 
- 
- 
-Validarea funcționalităților a fost realizată prin: 
- 
-observarea efectului LED vizual (culoare, animație, oprire) 
- 
-testarea comutării rapide între moduri 
- 
-monitorizare Serial pentru debug și afșaj OLED pentru feedback 
- 
- 
-Calibrarea elementelor de senzoristică:​ 
- 
-DHT22 a fost plasat într-un mediu static pentru validarea temperaturii față de un termometru de cameră 
- 
-PIR a fost reglat prin blocarea vederii lentilei in laterale, astfel va detecta doar miscarea de deasupra (detecție doar la mâna) 
- 
-valorile din senzor au fost afișate pe OLED și comparate cu mișcarea fizică efectivă. 
- 
- 
-Optimizări realizate: 
- 
-Folosirea millis() în loc de delay() pentru actualizări precise 
- 
-Separarea modurilor pe porturi diferite previne blocajele 
- 
-Evitarea actualizării continue a OLED (doar la nevoie) 
- 
-Trimiterea de date RGB doar când este cazul (mod activ) 
- 
-Aplicație GUI minimală, eficientă, cu thread separat pentru RGB, evitând blocarea UI 
- 
-Compilare PyInstaller + Inno Setup pentru portabilitate totală 
-===== Rezultate Obţinute ===== 
- 
-<note tip> 
-Care au fost rezultatele obţinute în urma realizării proiectului vostru. 
-</​note>​ 
  
 ===== Concluzii ===== ===== Concluzii =====
Line 210: Line 179:
 ===== Download ===== ===== Download =====
  
-<note warning> 
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului:​ surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). 
  
-Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:​pm:​prj20??:​c?​** sau **:​pm:​prj20??:​c?:​nume_student** (dacă este cazul). **Exemplu:​** Dumitru Alin, 331CC -> **:pm:prj2009:cc:dumitru_alin**. +{{:pm:prj2025:fstancu:proiect_arduino_.zip}}
-</​note>​+
  
 +{{:​pm:​prj2025:​fstancu:​aplicatie_RGB_Control.zip}}
 ===== Jurnal ===== ===== Jurnal =====
  
pm/prj2025/fstancu/rares.stoica2609.1748181517.txt.gz · Last modified: 2025/05/25 16:58 by rares.stoica2609
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