Differences

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

Link to this comparison view

pm:prj2024:avaduva:bogdan.dragomir2809 [2024/05/18 13:17]
bogdan.dragomir2809 [Diagrama]
pm:prj2024:avaduva:bogdan.dragomir2809 [2024/05/25 16:19] (current)
bogdan.dragomir2809 [Download]
Line 108: Line 108:
  
  
-<note tip> +==== Mediu de dezvoltare ==== 
-Descrierea codului aplicaţiei (firmware): + 
-  ​* ​mediu de dezvoltare ​(if any) (e.g. AVR StudioCodeVisionAVR) +Pentru dezvoltarea acestui firmware a fost utilizat Arduino IDE, un mediu de dezvoltare ​integrat specific pentru programarea microcontrolerelor din familia ArduinoAcest IDE oferă un mediu simplu și intuitiv pentru scrierea coduluicompilare și încărcare pe microcontroler. 
-  * librării şi surse 3rd-party ​(e.gProcyon AVRlib) + 
-  * algoritmi şi structuri pe care plănuiţsă le implementaţ+==== Librării și surse 3rd-party ​==== 
-  * (etapa 3surse şfuncţii implementate + 
-</​note>​+  * Wire.h - Aceasta este o librărie standard pentru comunicarea I2C, utilizată pentru a interacționa cu diverse dispozitive periferice
 +  * LiquidCrystal_I2C.h - Aceasta este o librărie utilizată pentru controlul afișajelor LCD cu interfață I2C. Facilitează interacțiunea cu ecranele LCD, reducând numărul de pini necesari pentru conectare. 
 + 
 +==== Algoritmi și structuri ​implementate ==== 
 + 
 +=== Algoritmul de citire a culorilor === 
 + 
 +Utilizarea unui senzor de culoare pentru a detecta valorile RGB. Senzorul utilizează semnale digitale pentru a indica prezența diferitelor culori. 
 +Citirea valorilor pentru fiecare componentă RGB prin configurarea și măsurarea impulsurilor generate de fotodiodă pentru fiecare culoare. 
 + 
 +=== Algoritmul de detectare a culorilor specifice === 
 + 
 +Compararea valorilor RGB citite pentru a determina culoarea dominantă. Condițiile if-else sunt utilizate pentru a diferenția între culorile albe, roșii, albastre, verzi, galbene, portocalii, mov și negre, ​pe baza valorilor RGB detectate. 
 + 
 +=== Interacțiunea cu utilizatorul === 
 + 
 +Afișarea culorii detectate și a valorilor RGB pe un ecran LCD. 
 +Generarea de tonuri specifice utilizând un buzzer pasiv pentru a oferi feedback audio pentru fiecare culoare detectată
 + 
 +==== Surse șfuncții implementate ==== 
 + 
 +=== Funcția setup() === 
 + 
 +Inițializează pinii senzorului șafișajului LCD. 
 +Configurează comunicarea serială pentru debugging și afișajul LCD pentru a prezenta un mesaj de inițializare. 
 +Setează modul de operare al pinii senzorului de culoare pentru a obține frecvența de ieșire la 100%. 
 + 
 +=== Funcția GetColors() === 
 + 
 +Obține valorile RGB utilizând senzorul de culoare. Aceasta implică setarea pinii de selecție (S2, S3) și măsurarea duratei impulsurilor de ieșire pentru fiecare componentă de culoare. 
 + 
 +=== Funcția playTone(int frequency, int duration) === 
 + 
 +Redă un ton specific utilizând un buzzer pasiv. Frecvența și durata tonului sunt specificate ca parametri ai funcției. 
 + 
 +=== Funcția loop() === 
 + 
 +Este funcția principală care rulează continuu și include logica principală a programului:​ 
 +  * Apelează funcția GetColors() pentru a obține valorile RGB. 
 +  * Curăță afișajul LCD șafișează culoarea detectată împreună cu valorile RGB. 
 +  * Redă un ton specific pentru fiecare culoare detectată. 
 +  * Introduce o întârziere de 2 secunde înainte de a repeta procesul. 
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
 +În urma implementării proiectului pentru detectarea culorilor folosind un senzor TCS3200/​TCS230 și un Arduino UNO, am reușit să realizăm următoarele:​
  
 +==== Detectarea Culorilor de Bază ====
 +
 +Sistemul poate detecta și afișa corect culorile roșu, verde și albastru pe un ecran LCD.
 +Fiecare culoare detectată este însoțită de un semnal sonor specific emis de un buzzer, facilitând utilizarea de către persoane cu deficiențe de vedere.
 +
 +==== Calibrarea și Maparea Valorilor RGB ====
 +
 +Valorile citite de senzor pentru fiecare componentă RGB au fost calibrate și mapate corect în intervalul 0-255.
 +Utilizarea funcției map a permis ajustarea frecvențelor citite în valori RGB coerente.
 +
 +==== Detectarea Culorilor Specifice ====
 +
 +Am implementat condiții precise pentru detectarea culorilor Orange, Yellow, Black și Purple, pe baza observațiilor și valorilor obținute în timpul testelor:
 +  * Orange: Red < Green && Red < Blue && abs(Green - Blue) <= 2
 +  * Yellow: Red > 10 && Red < 21 && Green > 10 && Green < 21 && Blue > 10 && Blue < 21
 +  * Black: Red > 50 && Green > 50 && Blue > 50
 +
 +Culorile detectate sunt afișate pe ecranul LCD și semnalizate prin tonuri specifice buzzer-ului.
 +
 +==== Afișarea Valorilor RGB ====
 +
 +Pe lângă numele culorii detectate, valorile RGB sunt afișate pe ecranul LCD pentru o monitorizare detaliată și verificare a acurateței.
 ===== Concluzii ===== ===== Concluzii =====
  
-===== Download =====+Proiectul pentru detectarea culorilor folosind un Arduino UNO și un senzor TCS3200/​TCS230 s-a dovedit a fi un succes, îndeplinind scopul de a oferi un instrument educațional eficient și util pentru persoanele cu deficiențe de vedere. În urma testelor și ajustărilor efectuate, am ajuns la următoarele concluzii:
  
 +==== Acuratețea Detecției ====
  
-===== Jurnal ​=====+Sistemul este capabil să detecteze corect o gamă largă de culori, inclusiv cele de bază (roșu, verde, albastru) și culori specifice precum Orange, Yellow și Black. 
 +Ajustările continue și calibrarea pragurilor de detecție au fost esențiale pentru îmbunătățirea acurateței. 
 + 
 +==== Utilizarea în Scopuri Educaționale ​==== 
 + 
 +Proiectul este ideal pentru utilizare în scopuri educaționale,​ oferind o modalitate clară și vizuală de a înțelege cum funcționează detecția culorilor și senzorii de lumină. 
 +Afișarea valorilor RGB și condițiile logice pentru detectarea culorilor oferă un exemplu practic de aplicare a teoriei în electronică și programare. 
 + 
 +==== Asistență pentru Persoanele cu Deficiențe de Vedere ==== 
 + 
 +Buzzer-ul integrat, care emite tonuri specifice pentru fiecare culoare detectată, adaugă o funcționalitate importantă pentru utilizatorii cu deficiențe de vedere, permițându-le să identifice culorile prin semnale auditive. 
 + 
 +==== Îmbunătățiri viitoare ==== 
 + 
 +Pe măsură ce sunt testate mai multe nuanțe și condiții de iluminare, proiectul poate fi extins pentru a include detectarea mai precisă a altor culori și nuanțe. 
 +Implementarea unor algoritmi mai avansați de calibrare și normalizare a valorilor RGB ar putea îmbunătăți și mai mult acuratețea detecției culorilor.  
 + 
 +=====  
 +În concluzie, proiectul a demonstrat viabilitatea și eficiența unui sistem simplu de detecție a culorilor utilizând Arduino și un senzor TCS3200/​TCS230,​ fiind aplicabil într-o varietate de scenarii educaționale și practice. 
 +===== Download ===== 
 + 
 +{{:​pm:​prj2024:​avaduva:​344c1_dragomirbogdan_proiectpm.zip|}} 
 +===== Resurse ​=====
  
 <note tip> <note tip>
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. +1. Documentație Arduino:
-</​note>​+
  
-===== Bibliografie/Resurse =====+Arduino: https://​www.arduino.cc/
  
 +https://​www.arduino.cc/​reference/​en/​
  
 +2. Senzor de culoare TCS230: http://​unihedron.com/​projects/​darksky/​tcs230-e33.pdf
  
-<​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</a></html>+https://howtomechatronics.com/​tutorials/​arduino/​arduino-color-sensing-tutorial-tcs230-tcs3200-color-sensor/​
  
 +3. LCD I2C: https://​www.arduinolibraries.info/​libraries/​liquid-crystal-i2-c
 +
 +https://​dronebotworkshop.com/​i2c-lcd-display/​
 +</​note>​
pm/prj2024/avaduva/bogdan.dragomir2809.1716027475.txt.gz · Last modified: 2024/05/18 13:17 by bogdan.dragomir2809
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