Differences

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

Link to this comparison view

pm:prj2026:cezar.zlatea:marius.gaibu [2026/05/15 20:25]
marius.gaibu [Hardware Design]
pm:prj2026:cezar.zlatea:marius.gaibu [2026/05/15 20:34] (current)
marius.gaibu [Hardware Design]
Line 45: Line 45:
 | **TFT - RST** | PB0 (Digital 8) | Hardware Reset pentru controlerul ecranului. | | **TFT - RST** | PB0 (Digital 8) | Hardware Reset pentru controlerul ecranului. |
 | **LED RGB - Roșu** | PD5 (Digital 5) | Pin cu suport PWM. Permite reglarea intensității sau folosirea ca pin digital simplu. | | **LED RGB - Roșu** | PD5 (Digital 5) | Pin cu suport PWM. Permite reglarea intensității sau folosirea ca pin digital simplu. |
-| **LED RGB - Albast** | PD6 (Digital 6) | Pin cu suport PWM, folosit pentru a indica rândul celui de-al doilea jucător. |+| **LED RGB - Albastru** | PD6 (Digital 6) | Pin cu suport PWM, folosit pentru a indica rândul celui de-al doilea jucător. |
 | **Buzzer Pasiv** | PD3 (Digital 3) | Pin cu suport PWM (Timer hardware), necesar pentru a genera tonuri de diferite frecvențe. | | **Buzzer Pasiv** | PD3 (Digital 3) | Pin cu suport PWM (Timer hardware), necesar pentru a genera tonuri de diferite frecvențe. |
 | **Butoane D-Pad** | PC0-PC3 (Analog A0-A3) | Deoarece pinii digitali sunt ocupați de SPI și PWM, am folosit pinii analogici configurați ca intrări digitale (I/O). | | **Butoane D-Pad** | PC0-PC3 (Analog A0-A3) | Deoarece pinii digitali sunt ocupați de SPI și PWM, am folosit pinii analogici configurați ca intrări digitale (I/O). |
Line 51: Line 51:
 **Schema Electrică (Simulare vs. Realitate):​** **Schema Electrică (Simulare vs. Realitate):​**
  
-{{AICI_ADAUGA_POZA_CU_SCHEMA_WOKWI.png?​800|Schema electrica simulata in Wokwi}}+{{:​pm:​prj2026:​cezar.zlatea:​screenshot_2026-05-15_140135.png?​800|Schema electrica simulata in Wokwi}}
  
-Schema ​electrică atașată ​mai sus a fost realizată și simulată inițial ​în mediul Wokwi. ​Este important de precizat câteva diferențe fundamentale între simulare ​și implementarea fizică: +Schema ​de mai sus a fost primul meu pas, realizat în mediul Wokwi pentru a valida logica conexiunilorTotuși, trecerea de la simulator la breadboard-ul real a venit cu provocări practice pe care a trebuit să le rezolv: 
-  * **Microcontrolerul:​** ​Simularea folosește un Arduino Uno standard, ​în timp ce implementarea ​fizică utilizează ​placa ATmega328P Xplained Mini. Arhitectura pinilor ​este identicăcodul fiind 100% compatibil+ 
-  * **Nivelul ​Logic (Foarte Important):** În Wokwi, ecranul ​TFT acceptă semnale ​logice ​de 5V direct ​de la microcontroler. În realitate, ecranul ​fizic suportă strict ​semnale ​de 3.3V pe liniile ​de date (MOSI, SCK, CS, DC, RST). Din acest motivîn implementarea fizică, firele nu merg direct din placă în ecran, ci trec printr-o rețea de **divizori de tensiune** ​formați din rezistențe ​(1k Ohm și 2k Ohm) care coboară nivelul semnalului logic de la 5V la ~3.3Vprotejând astfel ecranul de supratensiune+  * **Microcontrolerul:​** ​Deși în simulare apare un Arduino Uno clasic (din lipsa altor modele ​în simulator), ​fizic folosesc ​placa ATmega328P Xplained Mini. Din fericire, arhitectura cipului ​este aceeașideci logica pinilor s-a potrivit perfect
-  * **Butoanele:** În schemă figurează ​5 butoane. ​În montajul fizicdin cauza limitărilor ​de spațiu pe breadboard ​cauzate ​de aglomerarea rezistențelor pentru ​divizorul ​de tensiune, am redus interfațla 4 butoane (navigare direcțională).+  * **Problema Nivelului ​Logic (Protejarea Ecranului):** Aceasta a fost cea mai mare diferență față de simulare. ​În Wokwi, ecranul acceptă semnale de 5V direct ​din microcontroler, dar în realitate, ecranul ​meu funcționează strict ​cu logică ​de 3.3V. Dacă aș fi conectat pinii de date (MOSI, SCK, CS, DC, RST) direct la 5Vaș fi prăjit controlerul ecranului. Pentru că nu am folosit un modul dedicat de tip Level Shiftera trebuit să implementez manual ​**divizori de tensiune** ​pentru fiecare fir de date.  
 +  * **Cum funcționează divizorul:​** Am folosit o rețea de rezistențe. Din pinul plăcii pleacă o rezistență de **1k Ohm** (R1), urmată de o intersecție (nod) din care pleacă firul spre ecran, iar mai departe o rezistență de **2k Ohm** (R2) duce la masă (GND). Aplicând formula divizorului de tensiune ($V_{out} = V_{in} \times \frac{R_2}{R_1 + R_2}$), am obținut $5V \times \frac{2}{3} \approx ​3.33V$. Așa am asigurat o tensiune sigură pentru ecranmenținând viteza SPI
 +  * **Compromisul Butoanelor:** În planul din simulare aveam 5 butoane. ​Când am transpus asta pe breadboardconstrucția celor 5 divizori ​de tensiune (implicând 10 rezistențe și multe punți la GND) a ocupat foarte mult spațiu ​fizic. Pentru a păstra cablajul ordonat și a evita scurtcircuitele,​ am decis să scot butonul de "​Select"​ și să păstrez un D-Pad curat cu doar 4 direcții. 
 + 
 +**Rezultatul Hardware:​** 
 + 
 +{{:​pm:​prj2026:​cezar.zlatea:​whatsapp_image_2026-05-15_at_20.11.02.jpeg?​800|Asamblarea fizica a proiectului ​pe breadboard}} 
 + 
 +Imaginea ​de mai sus arată montajul final pe breadboard și confirmă că totul funcționează cum trebuie ​pentru ​acest milestone:​ 
 +  * **Ecranul merge perfect:** Se vede clar tabla de șah afișată pe ecran. Asta înseamnă că divizorii ​de tensiune ​făcuți din rezistențe funcționează bine, iar datele trimise de placă ajung corect și rapid la ecran fără să se piardă pe drum. 
 +  * **LED-ul RGB reacționează:** În poză se vede LED-ul aprins pe roșu. Asta îmi confirmă că pot folosi pinii digitali ca să arăt vizual starea jocului (de exemplu, când este rândul jucătorului cu piesele negre)
 +  * **Organizarea firelor:** Chiar dacă par foarte multe conexiuni, am încercat să le grupez logic: butoanele sunt în partea stângă, placa de control este sus, iar divizorii de tensiune și ecranul sunt așezate în partea dreaptă.
 ===== Software Design ===== ===== Software Design =====
  
pm/prj2026/cezar.zlatea/marius.gaibu.1778865957.txt.gz · Last modified: 2026/05/15 20:25 by marius.gaibu
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