Differences

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

Link to this comparison view

pm:prj2026:vlad.radulescu2901:ioan_stefan.greere [2026/05/08 21:39]
ioan_stefan.greere [Concluzii]
pm:prj2026:vlad.radulescu2901:ioan_stefan.greere [2026/05/16 16:52] (current)
ioan_stefan.greere [Imagini ale montajului și teste hardware]
Line 1: Line 1:
-====== ColorTrack - Color Quality Logger ​======+====== ColorTrack - Sistem embedded de detecție și scanare a culorilor ​======
  
-**Sistem embedded pentru ​verificarea culorii ​și jurnalizarea detecțiilor**+**Sistem embedded pentru ​identificarea culorilor, control vizual prin LED RGB și scanare automată cu motor pas cu pas**
  
 <​note>​ <​note>​
Line 10: Line 10:
 ===== Introducere ===== ===== Introducere =====
  
-**ColorTrack** este un sistem embedded bazat pe **microcontrollerul ​ATmega328P**,​ proiectat pentru ​verificarea culorii unor obiecte, etichete sau ambalaje în cadrul unui proces simplu ​de control al calității.+**ColorTrack** este un sistem embedded bazat pe microcontrollerul ​**ATmega328P**,​ proiectat pentru ​detecția și căutarea automată a culorilor. Proiectul pornește de la un scenariu practic ​de control al calității, în care culoarea unui obiect, a unei etichete sau a unei mostre trebuie verificată rapid și consecvent.
  
-Ideea proiectului pornește de la un scenariu practic ​în care culoarea ​unui obiect ​trebuie verificată rapid și consecventDe exempluîntr-un proces de producție sau sortareanumite piese pot trebui identificate ca fiind roșii, verzi sau albastre, iar rezultatele verificărilor și numarul exemplarelor trebuie păstrate ​pentru ​consultare ulterioară. Astfel, ColorTrack poate fi privit ca un prototip ​de sistem de control al calității la scară redusă, în care culoarea unui obiect este verificată automat, iar rezultatul este salvat pentru trasabilitate.+Sistemul poate funcționa ​în două moduri. Primul mod permite detectarea punctuală a culorii ​unui obiect ​plasat în fața senzorului. Rezultatul este afișat pe LCD, transmis prin interfața serială și semnalizat printr-un LED RGBÎn acest modLED-ul RGB nu indică doar una dintre culorile principaleci folosește PWM software ​pentru ​a aproxima nuanța detectată de senzor.
  
-Față de un detector simplu de culoare, proiectul adaugă o componentă de jurnalizareFiecare detecție este înregistrată într-un fișier de pe cardul microSDîmpreună cu momentul măsurării de la apăsarea butonului de start și valorile citite de la senzor. Astfeldispozitivul poate fi folosit nu doar pentru ​afișarea instantanee a culoriici și pentru păstrarea unui istoric al verificărilor.+Al doilea mod permite căutarea automată a unei culori țintă. Utilizatorul selectează culoarea dorită prin interfața serială, iar sistemul rotește o platformă cu ajutorul unui motor pas cu pas. La fiecare pas, senzorul verifică culoarea detectată. Când culoarea țintă este găsită, motorul se opreșterezultatul este afișat pe LCDLED-ul RGB se aprinde corespunzător, iar platforma este rotită înapoi în poziția inițială.
  
 Scopul proiectului este realizarea unui sistem capabil să: Scopul proiectului este realizarea unui sistem capabil să:
-  ​* detecteze culoarea dominantă a unui obiect; + 
-  * afișeze ​rezultatul ​pe un ecran LCD; +  ​* detecteze culoarea dominantă a unui obiect ​folosind senzorul TCS230
-  * semnalizeze culoarea ​detectată ​printr-un ​LED RGB; +  * afișeze ​starea sistemului și rezultatele ​pe un LCD 1602 cu interfață I2C
-  * transmită informații prin interfața serială pentru debugging+  * aproximeze nuanța ​detectată ​prin LED RGB controlat cu PWM software
-  * salveze fiecare ​detecție pe un card microSD+  * permită alegerea modului de funcționare ​prin USART; 
-  * permită consultarea ulterioară a istoricului ​de verificări.+  * controleze un motor pas cu pas prin driver ULN2003; 
 +  * caute automat o culoare ​țintă pe o platformă rotativă; 
 +  * folosească întreruperea externă INT0 pentru pornirea ​detecției sau scanării
 +  * păstreze modulul microSD conectat pentru o posibilă extensie ​de jurnalizare.
  
 ===== Descriere generală ===== ===== Descriere generală =====
  
-**ColorTrack** funcționează ca un sistem ​simplu ​de verificare ​culorii unui obiect. Utilizatorul ​plasează obiectul în fața senzorului ​de culoare și pornește procesul de detecție folosind un buton. Microcontrollerul citește semnalul furnizat de senzor, determină culoarea dominantă și afișează rezultatul pe LCD.+ColorTrack funcționează ca un sistem de inspecție și scanare ​culorilor. Utilizatorul ​interacționează cu sistemul prin interfața serială, alegând unul dintre cele două moduri ​de funcționare.
  
-În paralel, sistemul aprinde LED-ul corespunzător culorii detectate și transmite informații prin interfața serială. Pentru păstrarea istoricului verificărilor,​ fiecare detecție este salvată într-un fișier pe cardul microSD.+**Modul 1 Detecție simplă**
  
-Datele salvate pe cardul microSD pot avea un format ​de tip CSV:+În acest mod, utilizatorul trimite comanda `1` prin USART. Sistemul intră în modul de detecție simplă și aprinde LED-ul RGB în alb, indicând faptul că așteaptă o comandă de start. Detecția propriu-zisă se face doar după apăsarea butonului. După citirea senzorului TCS230, microcontrollerul determină culoarea dominantă, afișează rezultatul pe LCD și controlează LED-ul RGB prin PWM software pentru a aproxima nuanța detectată.
  
-<​code>​ +**Modul 2 - Căutare ​culoare**
-timp_ms,culoare,​red,​green,​blue +
-1532,​ROSU,​34,​72,​81 +
-8120,​VERDE,​70,​28,​64 +
-12450,​ALBASTRU,​91,​78,​29 +
-</​code>​+
  
-{{ :​pm:​prj2026:​vlad.radulescu2901:​schemabloc.png?700 |}}+În acest mod, utilizatorul trimite comanda `2` prin USART, apoi alege culoarea țintă folosind una dintre comenzile `R`, `G` sau `B`După apăsarea butonului, motorul pas cu pas rotește platforma în pași succesivi. La fiecare interval de pași, senzorul TCS230 citește culoarea curentă. Dacă este detectată culoarea țintă, motorul se oprește, rezultatul este afișat pe LCD, LED-ul RGB indică vizual culoarea găsită, iar motorul revine în poziția inițială.
  
-Modulele principale ale sistemului sunt:+**Modulele principale ale sistemului sunt:**
  
   * microcontrollerul ATmega328P - coordonează întregul sistem;   * microcontrollerul ATmega328P - coordonează întregul sistem;
   * senzorul TCS230 - detectează culoarea obiectului;   * senzorul TCS230 - detectează culoarea obiectului;
-  * LCD-ul 1602 I2C/TWI - afișează ​culoarea detectată ​și starea sistemului+  * LCD-ul 1602 I2C - afișează ​starea sistemului ​și rezultatul
-  * LED-ul RGB - oferă feedback vizual ​rapid+  * LED-ul RGB - oferă feedback vizual ​și aproximare de nuanță prin PWM software
-  * modulul microSD ​salvează istoricul ​detecțiilor+  * butonul de start declanșează detecția sau scanarea, folosind întreruperea externă INT0
-  * butonul de start pornește procesul ​de verificare+  * driverul ULN2003 ​controlează motorul pas cu pas; 
-  * interfața ​serială ​- permite ​afișarea informațiilor pentru debugging ​și monitorizare.+  * motorul pas cu pas 28BYJ-48 - rotește platforma ​de scanare
 +  * interfața ​USART - permite ​alegerea modului de funcționare ​și a culorii țintă; 
 +  * modulul microSD - conectat hardware prin SPI, păstrat pentru o extensie ulterioară de jurnalizare.
  
-Fluxul general de funcționare este următorul:+**Fluxul general de funcționare este următorul:**
  
   - sistemul este alimentat și inițializează modulele hardware;   - sistemul este alimentat și inițializează modulele hardware;
-  - utilizatorul apasă butonul de start+  - LCD-ul afișează meniul principal
-  - obiectul este plasat în fața senzorului ​de culoare+  - utilizatorul selectează modul de funcționare prin USART
-  - senzorul furnizează valorile corespunzătoare componentelor de culoare+  - în modul 1, utilizatorul apasă butonul, iar sistemul face o detecție simplă; 
-  - microcontrollerul determină ​culoarea ​dominantă; +  - în modul 2, utilizatorul alege culoarea ​țintă, apoi apasă butonul pentru pornirea scanării
-  - rezultatul este afișat pe LCD+  - motorul rotește platforma și sistemul citește periodic senzorul
-  - LED-ul corespunzător este aprins+  - dacă este găsită culoarea dorită, motorul se oprește
-  - datele sunt trimise prin interfața serială; +  - LED-ul RGB și LCD-ul afișează rezultatul
-  - detecția este salvată pe cardul microSD.+  - motorul revine în poziția inițială. 
 + 
 +{{ :​pm:​prj2026:​vlad.radulescu2901:​schema_bloc_color.png?​800 |}}
  
 ===== Hardware Design ===== ===== Hardware Design =====
  
-**Componente folosite**+==== Stadiul actual al implementării hardware ==== 
 + 
 +În stadiul actual, au fost conectate și testate principalele componente hardware ale proiectului. LCD-ul 1602 cu interfață I2C afișează mesaje de stare, senzorul TCS230 este folosit pentru citirea componentelor de culoare, LED-ul RGB oferă feedback vizual, iar motorul pas cu pas este controlat prin driverul ULN2003. 
 + 
 +Sistemul permite selectarea modului de funcționare prin USART. Butonul conectat pe pinul INT0 este folosit pentru declanșarea detecției sau a scanării. În modul de scanare, motorul rotește platforma până la găsirea culorii țintă sau până la parcurgerea limitei de rotație. Pentru protejarea machetei, după scanare motorul revine în poziția inițială prin rotirea inversă cu același număr de pași. 
 + 
 +Modulul microSD este păstrat conectat la pinii SPI ai microcontrollerului,​ însă funcția de scriere pe card nu este inclusă în varianta curentă stabilă a proiectului. Acesta rămâne o extensie posibilă pentru jurnalizarea detecțiilor. 
 + 
 +==== Componente folosite ​====
  
 ^ Componentă ^ Cantitate ^ Scop ^ ^ Componentă ^ Cantitate ^ Scop ^
-Microcontroller ​ATmega328P | 1 | Unitatea ​centrală a proiectului; coordonează citirea senzorului, afișarea rezultatului și salvarea datelor. | +| ATmega328P-XMINI ​| 1 | Placa de dezvoltare folosită ca unitate ​centrală a proiectului. | 
-| Senzor de culoare TCS230 | 1 | Detectează culoarea obiectului prin măsurarea componentelor roșu, verde și albastru. | +| Senzor de culoare TCS230 | 1 | Detectează culoarea obiectului prin semnal digital cu frecvență dependentă de lumină. | 
-| LCD 1602 cu interfață ​I2C | 1 | Afișează culoarea detectată și starea ​sistemului. | +| LCD 1602 I2C | 1 | Afișează ​meniul, modul curent, ​culoarea detectată și starea ​scanării. | 
-| Modul microSD | 1 | Permite conectarea cardului microSD la microcontroller prin SPI. | +| LED RGB catod comun | 1 | Oferă feedback ​vizual; în modul 1 este controlat prin PWM software. | 
-| Card microSD | 1 | Stochează fișierul de log cu istoricul detecțiilor. | +| Rezistențe ​220Ω | 3 | Limitează curentul prin canalele ​LED-ului RGB. | 
-| LED RGB | 1 | Semnalizează vizual ​culoarea detectată folosind canalele roșu, verde și albastru. | +| Buton | 1 | Declanșează detecția sau scanarea folosind întreruperea externă INT0. | 
-| Rezistențe ​pentru LED | 3 | Limitează curentul prin cele trei canale ale LED-ului RGB. | +Driver ULN2003 ​| 1 | Permite ​controlul motorului pas cu pas din pini digitali ai microcontrollerului. | 
-| Buton | 1 | Declanșează ​procesul de detecție a culorii. | +| Motor pas cu pas 28BYJ-48 | 1 | Rotește platforma de scanare în modul de căutare culoare. | 
-Breadboard ​| 1 | Permite ​realizarea ​și testarea montajului fără lipire. | +| Modul microSD | 1 | Modul conectat prin SPI, păstrat pentru extensie de jurnalizare. | 
-Fire jumper | mai multe | Realizează conexiunile dintre ​microcontroller ​și modulele proiectului. | +Card microSD | 1 | Suport de stocare planificat pentru salvarea viitoare a detecțiilor. | 
-| Sursă de alimentare | 1 | Alimentează ​microcontrollerul ​și modulele conectate. |+| Breadboard / fire jumper | | Realizează conexiunile dintre ​placa de dezvoltare ​și module. | 
 +| Sursă de alimentare ​5V | 1 | Alimentează ​placa și modulele conectate. | 
 + 
 +==== Conectarea pinilor ==== 
 + 
 +^ Componentă ^ Pin componentă ^ Pin ATmega328P-XMINI ^ Pin microcontroller ^ Rol ^ 
 +| LCD 1602 I2C | SDA | A4 | PC4 | Linie de date I2C/TWI | 
 +| LCD 1602 I2C | SCL | A5 | PC5 | Linie de ceas I2C/TWI | 
 +| LCD 1602 I2C | VCC | 5V | - | Alimentare | 
 +| LCD 1602 I2C | GND | GND | - | Masă comună | 
 +| TCS230 | S0 | 5V | - | Scalare frecvență fixată hardware | 
 +| TCS230 | S1 | GND | - | Scalare frecvență fixată hardware | 
 +| TCS230 | S2 | A0 | PC0 | Selectare filtru culoare | 
 +| TCS230 | S3 | A1 | PC1 | Selectare filtru culoare | 
 +| TCS230 | OUT | D8 | PB0 | Semnal digital de ieșire de la senzor | 
 +| TCS230 | VCC | 5V | - | Alimentare | 
 +| TCS230 | GND | GND | - | Masă comună | 
 +| LED RGB | R | D6 | PD6 | Control canal roșu prin rezistență 220Ω | 
 +| LED RGB | G | D5 | PD5 | Control canal verde prin rezistență 220Ω | 
 +| LED RGB | B | D3 | PD3 | Control canal albastru prin rezistență 220Ω | 
 +| LED RGB | Catod comun | GND | - | Masă comună | 
 +| Buton start | pin 1 | D2 | PD2 / INT0 | Declanșare prin întrerupere externă | 
 +| Buton start | pin 2 | GND | - | Apăsare = nivel logic LOW | 
 +| ULN2003 | IN1 | A2 | PC2 | Control fază motor | 
 +| ULN2003 | IN2 | A3 | PC3 | Control fază motor | 
 +| ULN2003 | IN3 | D9 | PB1 | Control fază motor | 
 +| ULN2003 | IN4 | D4 | PD4 | Control fază motor | 
 +| ULN2003 | VCC | 5V | - | Alimentare driver/​motor | 
 +| ULN2003 | GND | GND | - | Masă comună | 
 +| USART | RX | D0 | PD0 | Recepție comenzi din terminal | 
 +| USART | TX | D1 | PD1 | Transmitere mesaje către terminal | 
 +| microSD | CS | D10 | PB2 | Selectare dispozitiv SPI | 
 +| microSD | MOSI | D11 | PB3 | Linie SPI Master Out Slave In | 
 +| microSD | MISO | D12 | PB4 | Linie SPI Master In Slave Out | 
 +| microSD | SCK | D13 | PB5 | Ceas SPI | 
 +| microSD | VCC | 5V | - | Alimentare modul microSD | 
 +| microSD | GND | GND | - | Masă comună | 
 + 
 +Pinii A4 și A5 au fost aleși pentru LCD deoarece aceștia corespund interfeței hardware I2C/TWI a microcontrollerului. Pinii D10-D13 au fost rezervați pentru modulul microSD, deoarece aceștia corespund interfeței SPI hardware. 
 + 
 +Butonul a fost conectat la D2 deoarece acest pin poate fi folosit ca întrerupere externă INT0. Astfel, apăsarea butonului poate declanșa rapid o acțiune, fără a fi necesară verificarea continuă a stării butonului în bucla principală. 
 + 
 +Motorul pas cu pas este controlat prin patru pini digitali conectați la intrările IN1-IN4 ale driverului ULN2003. Driverul este necesar deoarece pinii microcontrollerului nu pot furniza direct curentul necesar pentru alimentarea bobinelor motorului. 
 + 
 +Pinii S0 și S1 ai senzorului TCS230 au fost fixați hardware la 5V, respectiv GND. Această configurație setează scalarea frecvenței de ieșire la aproximativ 20%, valoare potrivită pentru măsurarea cu microcontrollerul. Pinii S2 și S3 rămân controlați software pentru selectarea filtrului de culoare.
  
 ==== Senzor de culoare TCS230 ==== ==== Senzor de culoare TCS230 ====
  
-Senzorul ​de culoare ​este folosit pentru determinarea culorii dominante ​a obiectului plasat în fața sa. Acesta ​are pini pentru selectarea filtrului de culoare și un pin de ieșire ​pe care se obține un semnal ​digital dependent ​de culoarea detectată.+Senzorul ​TCS230 ​este folosit pentru determinarea culorii dominante. Acesta ​nu transmite direct valori RGB în intervalul 0-255, ci generează ​un semnal digital ​pe pinul OUT. Frecvența acestui ​semnal ​depinde ​de intensitatea luminii detectate prin filtrul selectat.
  
-În cadrul proiectului,​ senzorul va fi folosit ​pentru ​citirea componentelor ​roșu, verde și albastruPe baza valorilor ​obținute, ​microcontrollerul va decide culoarea dominantă a obiectului verificat.+Pinii S2 și S3 sunt folosiți ​pentru ​selectarea filtrului ​roșu, verde sau albastru. Microcontrollerul selectează pe rând fiecare filtru ​și măsoară semnalul de ieșire folosind Timer1Valorile ​obținute ​sunt valori brute de timp/​frecvențănu valori RGB standard. În cod, o valoare mai mică indică o frecvență mai mare, deci o componentă de culoare mai intensă.
  
 ==== LCD 1602 I2C/TWI ==== ==== LCD 1602 I2C/TWI ====
  
-LCD-ul este folosit pentru afișarea ​rezultatului detecției ​și a stării sistemului. Utilizarea interfeței I2C/TWI reduce numărul de pini necesari ​pentru conectarea ecranului la microcontroller.+LCD-ul este folosit pentru afișarea ​meniului, a modului curent ​și a rezultatelor. Utilizarea interfeței I2C reduce numărul de pini necesari, fiind folosite doar liniile SDA și SCL.
  
-Pe LCD pot fi afișate ​mesaje precum:+Exemple de mesaje ​afișate:
  
 <​code>​ <​code>​
 ColorTrack ColorTrack
-Asteptare...+USART: 1 sau 2
 </​code>​ </​code>​
  
-sau:+<​code>​ 
 +Mod 1detectie 
 +Apasa buton 
 +</​code>​
  
 <​code>​ <​code>​
-Culoare: +ALBASTRU gasit 
-ROSU+Pas: 2048
 </​code>​ </​code>​
  
-==== Modul microSD ​====+==== LED RGB și PWM software ​====
  
-Modulul microSD ​este folosit pentru ​salvarea istoricului ​detecțiilorComunicarea cu microcontrollerul ​se realizează ​prin SPI.+LED-ul RGB este folosit pentru ​feedback vizual. În modul de detecție simplă, valorile brute citite de la senzor sunt transformate într-o aproximare de intensitate pentru fiecare canal RGBControlul LED-ului ​se face prin PWM software, folosind o întrerupere periodică generată cu Timer2.
  
-Cardul microSD permite păstrarea unui fișier de log care poate fi analizat ulterior pe calculator. Acest lucru este important pentru partea de trasabilitate a proiectului, deoarece ​fiecare verificare poate fi salvată.+Această metodă nu reproduce perfect culoarea obiectului, deoarece ​senzorul nu oferă valori RGB calibrate, însă permite afișarea unei nuanțe aproximative și face rezultatul mai intuitiv pentru utilizator.
  
-Fișierul ​de log poate conține: +În modul de căutare, LED-ul rămâne aprins în alb cât timp sistemul scanează. După găsirea culorii ​țintă, LED-ul se aprinde în culoarea ​corespunzătoare.
-  * timpul scurs de la pornirea sistemului;​ +
-  * culoarea ​detectată+
-  * valorile citite de la senzor; +
-  * eventual un identificator al detecției.+
  
-==== LED RGB ====+==== Buton de start ====
  
-LED-ul RGB este folosit pentru ​semnalizarea vizuală a rezultatuluiPentru fiecare culoare detectată, sistemul aprinde LED-ul in culoarea corespunzătoare:​ +Butonul ​este folosit pentru ​declanșarea acțiunii curenteDupă alegerea modului prin USARTutilizatorul apasă butonul pentru ​începe detecția ​sau scanarea.
-Acest feedback vizual permite utilizatorului să observe rapid rezultatul verificării,​ fără a urmări permanent LCD-ul ​sau terminalul serial.+
  
-==== Buton de start ====+Butonul este conectat la pinul D2/PD2, care are funcția INT0. În cod este activat pull-up-ul intern, deci butonul conectează pinul la GND în momentul apăsării.
  
-Butonul este folosit pentru declanșarea procesului de verificare. Utilizatorul poate plasa obiectul în fața senzorului ​și apoi poate porni citirea prin apăsarea butonului.+==== Driver ULN2003 ​și motor pas cu pas ====
  
-Această abordare ​este utilă pentru controlul calitățiideoarece fiecare detecție este declanșată explicit și poate fi salvată ca intrare separată în jurnal.+Motorul pas cu pas 28BYJ-48 ​este controlat prin driverul ULN2003. Microcontrollerul comandă intrările IN1-IN4 ale driveruluiiar acesta alimentează bobinele motorului.
  
-==== Interfață serială ====+Motorul este folosit în modul de căutare culoare. Sistemul rotește platforma în pași succesivi, citește culoarea cu senzorul TCS230 și se oprește când detectează culoarea ​țintă. Pentru a proteja macheta și pentru a evita înfășurarea firelor, după scanare motorul se rotește înapoi cu același număr de pași parcurși.
  
-Interfața serială este folosită pentru ​debugging și monitorizarePrin aceasta se pot transmite către calculator informații despre starea sistemului, valorile citite de la senzor și culoarea ​detectată.+==== Modul microSD ==== 
 + 
 +Modulul microSD este conectat la interfața SPI hardware a microcontrollerului. În varianta curentă stabilă, cardul nu este folosit ​pentru salvare de date, dar a fost păstrat conectat ​pentru ​o extensie ulterioară a proiectului. 
 + 
 +Funcția planificată pentru acest modul este salvarea detecțiilor într-un fișier de tip CSVcare ar putea conține timpul detecției, culoarea detectată și valorile ​brute citite de la senzor
 + 
 +==== Interfață USART ==== 
 + 
 +Interfața USART este folosită pentru alegerea modului de funcționare ​și pentru afișarea mesajelor de debugging. Utilizatorul poate trimite următoarele comenzi: 
 + 
 +<​code>​ 
 +1 - Modul detectie simpla 
 +2 - Modul cautare culoare 
 +M - Afisare meniu 
 +</​code>​ 
 + 
 +În modul 2, după trimiterea comenzii `2`, utilizatorul trimite ​culoarea ​țintă
 + 
 +<​code>​ 
 +R - rosu 
 +G - verde 
 +B - albastru 
 +</​code>​
  
 ==== Alimentare ==== ==== Alimentare ====
  
-Sistemul este alimentat ​de la o sursă ​externă sau prin intermediul ​plăcii ​de dezvoltare folositeModulele trebuie alimentate conform specificațiilor lor, având grijă în special la modulul microSD, deoarece ​cardurile ​microSD funcționează la 3.3V.+Sistemul este alimentat la 5V prin placa de dezvoltare. Toate modulele au masă comună. Driverul ULN2003 și motorul pas cu pas pot consuma mai mult curent decât celelalte module, motiv pentru care alimentarea trebuie verificată în timpul funcționării. Dacă apar resetări ale plăcii, motorul poate fi alimentat dintr-o sursă ​separată de 5V, cu condiția ca GND-ul sursei externe să fie comun cu GND-ul ​plăcii. 
 + 
 +==== Schema electrică ==== 
 + 
 +Schema electrică a fost realizată în EasyEDA. Aceasta prezintă conexiunile dintre placa ATmega328P-XMINI și modulele externe folosite: senzorul TCS230, LCD-ul I2C, LED-ul RGB, butonul de start, driverul ULN2003 cu motor pas cu pas și modulul microSD
 + 
 +{{ :​pm:​prj2026:​vlad.radulescu2901:​schema_electrica_color.png?​800 |}} 
 + 
 +În schemă, modulele externe sunt reprezentate ca blocuri cu pini, deoarece ​acestea sunt module prefabricate. Scopul schemei este evidențierea conexiunilor dintre placa de dezvoltare și componentele folosite. 
 + 
 +==== Imagini ale montajului și teste hardware ==== 
 + 
 +În imagine se observă montajul integrat al proiectului:​ placa ATmega328P-XMINI,​ LCD-ul 1602 I2C, senzorul TCS230, LED-ul RGB, driverul ULN2003 cu motor pas cu pas, butonul de start și modulul ​microSD ​conectat fizic. LCD-ul este alimentat și afișează mesaje, iar LED-ul RGB este aprins, ceea ce demonstrează ​funcționarea componentelor de afișare/​feedback vizual. 
 + 
 +{{ :​pm:​prj2026:​vlad.radulescu2901:​color_hardware.jpeg?700 |}}
  
  
 ===== Software Design ===== ===== Software Design =====
  
-Această secțiune va fi completată în etapa dedicată implementării software.+Această secțiune va fi completată ​în detaliu ​în etapa dedicată implementării software.
  
-Pentru momentaplicația este gândită ca un firmware ​modularcare va controla perifericele microcontrollerului și va coordona procesul ​de detecțieafișare ​și jurnalizare.+În stadiul actual, firmware-ul permite testarea integrată a componentelor principale: LCDsenzor ​de culoareLED RGB cu PWM software, buton cu întrerupere externă, USART și motor pas cu pas.
  
-Mediul de dezvoltare ​planificat:+Mediul de dezvoltare ​folosit:
  
 +  * PlatformIO;
   * avr-gcc;   * avr-gcc;
-  * avr-libc;+  * avr-libc.
  
-Module software planificate:​+Module software ​utilizate sau planificate:​
  
   * modul pentru inițializarea și controlul pinilor GPIO;   * modul pentru inițializarea și controlul pinilor GPIO;
-  * modul pentru citirea senzorului ​de culoare;+  * modul pentru citirea senzorului ​TCS230;
   * modul pentru afișarea mesajelor pe LCD prin I2C/TWI;   * modul pentru afișarea mesajelor pe LCD prin I2C/TWI;
-  * modul pentru ​comunicația SPI cu cardul microSD+  * modul pentru ​controlul LED-ului RGB prin PWM software
-  * modul pentru ​transmiterea mesajelor ​prin interfața serială; +  * modul pentru ​controlul motorului pas cu pas prin driver ULN2003; 
-  * modul pentru ​gestionarea stărilor sistemului+  * modul pentru pornirea acțiunilor folosind întreruperea externă INT0
-  * modul pentru ​salvarea detecțiilor într-un fișier de log.+  * modul pentru ​comunicarea cu utilizatorul prin USART
 +  * modul pentru ​comunicația SPI cu cardul microSD, planificat pentru extindere ulterioară.
  
-Logica aplicației ​va fi organizată în jurul unor stări ​principale:+Logica aplicației ​este organizată în jurul următoarelor ​stări:
  
-  * așteptare;​ +  ​* meniu principal;​ 
-  * detecție;+  * selectare mod prin USART; 
 +  ​* așteptare ​apăsare buton
 +  * detecție ​simplă; 
 +  * alegere culoare țintă; 
 +  * scanare cu motor;
   * afișare rezultat;   * afișare rezultat;
-  * salvare pe cardul microSD; +  * revenire la poziția inițială.
-  * tratare erori. +
- +
-Detaliile de implementare,​ structura codului, funcțiile folosite și eventualele biblioteci externe vor fi documentate în milestone-ul dedicat părții software.+
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-Această secțiune va fi completată după realizarea montajului și testarea sistemului.+Până în acest moment au fost obținute următoarele rezultate:
  
-Rezultatele urmărite sunt:+  * LCD-ul 1602 I2C a fost testat cu succes și afișează mesaje de stare; 
 +  * LED-ul RGB funcționează și poate fi controlat prin PWM software; 
 +  * senzorul TCS230 este integrat în procesul de detecție a culorii; 
 +  * butonul de start declanșează acțiunea curentă folosind întreruperea externă INT0; 
 +  * interfața USART permite alegerea modului de funcționare;​ 
 +  * motorul pas cu pas 28BYJ-48 este controlat prin driverul ULN2003; 
 +  * sistemul poate funcționa în modul de detecție simplă; 
 +  * sistemul poate funcționa în modul de scanare și se oprește când găsește culoarea țintă; 
 +  * după scanare, motorul revine în poziția inițială;​ 
 +  * modulul microSD este conectat fizic, dar funcția de jurnalizare este păstrată ca extensie ulterioară.
  
-  * detectarea corectă a culorilor principale;​ +Exemplu de mesaj afișat pe LCD în meniul principal:
-  * afișarea rezultatului ​pe LCD+
-  * aprinderea LED-ului corespunzător culorii detectate;​ +
-  * transmiterea datelor prin interfața serială; +
-  * salvarea detecțiilor într-un fișier pe cardul microSD; +
-  * obținerea unui jurnal de verificări care poate fi analizat ulterior.+
  
-Exemplu ​de rezultat așteptat pe LCD:+<​code>​ 
 +ColorTrack 
 +USART: 1 sau 2 
 +</​code>​ 
 + 
 +Exemplu ​pentru modul 1:
  
 <​code>​ <​code>​
-Culoare+Mod 1detectie 
-VERDE+Apasa buton
 </​code>​ </​code>​
  
-Exemplu ​de rezultat așteptat în fișierul de log:+Exemplu ​pentru modul 2:
  
 <​code>​ <​code>​
-timp_ms,​culoare,​red,​green,​blue +Mod 2: cautare 
-1532,​ROSU,​34,​72,​81 +Tinta: R/G/B
-8120,​VERDE,​70,​28,​64 +
-12450,​ALBASTRU,​91,​78,​29+
 </​code>​ </​code>​
  
-* Vor fi adăugate poze cu montajul final, schema electrică și exemple de fișiere generate pe cardul microSD.+Exemplu de rezultat la detectarea culorii țintă
 + 
 +<​code>​ 
 +ALBASTRU gasit 
 +Pas: 2048 
 +</​code>​
  
 ===== Concluzii ===== ===== Concluzii =====
  
-ColorTrack propune un sistem embedded pentru ​verificarea culorii unor obiecte ​și salvarea rezultatelor într-un jurnal de detecții. Proiectul are o utilitate practică în zona de control al calității la scară redusă, unde culoarea unui obiect poate fi un criteriu de validare ​sau sortare.+ColorTrack propune un sistem embedded pentru ​detecția ​și scanarea automată a culorilor. Proiectul are o utilitate practică în zona de control al calității la scară redusă, unde culoarea unui obiect poate fi un criteriu de validaresortare ​sau identificare.
  
-Prin acest proiect sunt integrate mai multe componente hardware și protocoale de comunicație. Senzorul ​de culoare ​furnizează informațiile necesare pentru identificarea obiectului, LCD-ul și LED-urile oferă feedback utilizatoruluiiar modulul microSD permite salvarea rezultatelor pentru analiză ulterioară.+În stadiul actual, proiectul integrează citirea unui senzor ​de culoare, ​afișarea rezultatului pe LCD, feedback prin LED RGB, selectarea modului prin USART, pornirea prin buton cu întrerupere externă ​și controlul unui motor pas cu pas. Prin adăugarea motoruluisistemul nu mai este doar un detector static de culoare, ci poate scana o platformă până la identificarea culorii dorite.
  
-Un avantaj important ​al proiectului este faptul că rezultatele nu sunt doar afișate temporar, ci sunt păstrate într-un fișier. Astfelsistemul poate fi folosit pentru trasabilitate,​ verificări repetate și analiză ulterioară+Un element suplimentar ​al proiectului este controlul LED-ului RGB prin PWM softwarecare permite aproximarea vizuală a nuanței detectate în modul de detecție simplă.
- +
-*Sectiunea aceasta se va completa ulterior.+
  
 +Modulul microSD a fost păstrat în schema hardware pentru extinderea ulterioară a proiectului cu funcție de jurnalizare,​ însă funcționalitatea stabilă curentă este detecția, scanarea și afișarea rezultatelor.
  
 ===== Download ===== ===== Download =====
Line 220: Line 322:
   * poze cu montajul;   * poze cu montajul;
   * fișier README;   * fișier README;
-  * eventual ​un exemplu de fișier de log generat pe cardul microSD.+  * eventual fișiere auxiliare pentru testare.
  
 ===== Jurnal ===== ===== Jurnal =====
Line 230: Line 332:
 ==== Săptămâna 2 ==== ==== Săptămâna 2 ====
  
-Am stabilit componentele principale ale sistemului: ​microcontroller ​ATmega328P, senzor ​de culoare ​TCS230, LCD 1602 I2C, LED RGB, modul microSD ​si am comandat piesele necesare.+Am stabilit componentele principale ale sistemului: ATmega328P-XMINI, senzor TCS230, LCD 1602 I2C, LED RGB, modul microSD ​și buton de start.
  
 ==== Săptămâna 3 ==== ==== Săptămâna 3 ====
  
-Am definit utilitatea practică a proiectului și am realizat schema bloc a sistemului si documentatia.+Am definit utilitatea practică a proiectului și am realizat schema bloc inițială. Am testat LCD-ul și LED-ul RGB. 
 + 
 +==== Săptămâna 4 ==== 
 + 
 +Am integrat senzorul TCS230 și am realizat citirea culorilor folosind semnalul de frecvență al senzorului. Am testat detectarea culorilor principale. Am conectat motorul pas cu pas 28BYJ-48 prin driverul ULN2003 și am testat rotirea în ambele sensuri. Am modificat proiectul pentru ​avea două moduri de funcționare selectabile prin USART: detecție simplă și scanare automată. Am adăugat revenirea motorului în poziția inițială după scanare. Am adăugat PWM software pentru controlul LED-ului RGB, astfel încât în modul de detecție simplă LED-ul să aproximeze nuanța detectată de senzor.
  
-Mai departe ​se va completa ​sectiunea ​pe parcurs.+Sectiunea ​se va completa pe parcurs
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
Line 245: Line 351:
   * Datasheet TCS230 Color Sensor;   * Datasheet TCS230 Color Sensor;
   * Documentație LCD 1602 cu interfață I2C;   * Documentație LCD 1602 cu interfață I2C;
 +  * Documentație driver ULN2003;
 +  * Documentație motor pas cu pas 28BYJ-48;
   * Documentație modul microSD;   * Documentație modul microSD;
   * Documentație protocol SPI;   * Documentație protocol SPI;
Line 254: Line 362:
   * Documentație avr-gcc;   * Documentație avr-gcc;
   * Documentație avr-libc;   * Documentație avr-libc;
-  * Exemple pentru comunicație SPI pe AVR;+  * Documentație PlatformIO;
   * Exemple pentru comunicație I2C/TWI pe AVR;   * Exemple pentru comunicație I2C/TWI pe AVR;
   * Exemple pentru comunicație USART pe AVR;   * Exemple pentru comunicație USART pe AVR;
-  * Documentație ​pentru ​lucrul ​cu sisteme de fișiere FAT/​FAT32 ​pe card SD.+  * Exemple ​pentru ​controlul motoarelor pas cu pas; 
 +  * Exemple pentru implementarea PWM software ​pe microcontrollere AVR.
  
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
pm/prj2026/vlad.radulescu2901/ioan_stefan.greere.1778265598.txt.gz · Last modified: 2026/05/08 21:39 by ioan_stefan.greere
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