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/09 12:57]
marius.gaibu [Hardware Design]
pm:prj2026:cezar.zlatea:marius.gaibu [2026/05/15 20:34] (current)
marius.gaibu [Hardware Design]
Line 22: Line 22:
 {{:​pm:​prj2026:​cezar.zlatea:​diagrama_block_marius_gaibu.png?​600|Schema bloc a proiectului Console Chess}} {{:​pm:​prj2026:​cezar.zlatea:​diagrama_block_marius_gaibu.png?​600|Schema bloc a proiectului Console Chess}}
 ===== Hardware Design ===== ===== Hardware Design =====
 +
 +**Stadiul actual al implementării (Milestone 2):** Hardware-ul a fost asamblat cu succes pe breadboard. Microcontrolerul ATmega328P comunică corect cu ecranul TFT, generând imaginea tablei de șah. Divizorul de tensiune implementat manual protejează ecranul, iar perifericele de feedback (LED RGB, Buzzer) sunt integrate și gata de utilizare. Din cauza constrângerilor de spațiu fizic de pe breadboard (datorate rezistențelor),​ numărul de butoane pentru D-Pad a fost redus de la 5 la 4.
  
 ^ Nume Componentă ^ Cantitate ^ ^ Nume Componentă ^ Cantitate ^
 | Placă de dezvoltare ATmega328P Xplained Mini |  1| | Placă de dezvoltare ATmega328P Xplained Mini |  1|
 | Ecran afișaj TFT LCD 2.8''​ (Interfață SPI) |  1| | Ecran afișaj TFT LCD 2.8''​ (Interfață SPI) |  1|
-| Modul Convertor de Nivel Logic Bidirecțional cu 8 canale (TXS0108E) |  1| 
 | Breadboard 830 puncte |  1| | Breadboard 830 puncte |  1|
-| Butoane tactile (Microîntrerupătoare 6x6x6 mm) pentru D-Pad |  ​5|+| Butoane tactile (Microîntrerupătoare 6x6x6 mm) pentru D-Pad |  ​4|
 | Modul Buzzer Pasiv (suport semnal PWM) |  1| | Modul Buzzer Pasiv (suport semnal PWM) |  1|
 | LED RGB (pentru indicarea turei jucătorilor) |  1| | LED RGB (pentru indicarea turei jucătorilor) |  1|
-| Rezistențe 220 Ohm (pentru protecția LED-ului RGB) |  ​3|+| Rezistențe ​(1k Ohm, 2k Ohm, 220 Ohm) pt. divizor tensiune și LED |  ​Set|
 | Set fire de conexiune Dupont (Tată-Tată și Tată-Mamă de 20 cm) |  1| | Set fire de conexiune Dupont (Tată-Tată și Tată-Mamă de 20 cm) |  1|
 | Cablu USB (pentru alimentare și programare) |  1| | Cablu USB (pentru alimentare și programare) |  1|
  
-<note tip> +**Maparea Pinilor și Justificarea Alegerii Lor:** 
-Aici puneţtot ce ţine de hardware ​design: + 
-  listă ​de piese +^ Componentă ^ Pin ATmega328P ^ Rol șJustificare ^ 
-  scheme electrice ​(se pot lua şi de pe Internet şi din datasheet-uri, e.g. http://www.captain.at/​electronic-atmega16-mmc-schematic.png) +| **TFT - MOSI** | PB3 (Digital 11) | Linia de date SPI. Folosit pinul hardware ​SPI pentru viteză maximă de desenare. | 
-  * diagrame ​de semnal ​ +**TFT - SCK** | PB5 (Digital 13) | Linia de ceas SPI. Folosit pinul hardware SPI. | 
-  * rezultatele simulării +**TFT - CS** | PB2 (Digital 10) | Chip Select. Semnalizează ecranului când să asculte magistrala SPI. | 
-</​note>​+| **TFT - DC** | PB1 (Digital 9) | Data/​Command. Diferențiază între datele pentru culori școmenzile ​de configurare. | 
 +| **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 - Albastru** | PD6 (Digital 6) | Pin cu suport PWMfolosit 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. 
 +| **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)
 + 
 +**Schema Electrică (Simulare vsRealitate):​** 
 + 
 +{{:​pm:​prj2026:​cezar.zlatea:​screenshot_2026-05-15_140135.png?800|Schema electrica simulata in Wokwi}} 
 + 
 +Schema de mai sus a fost primul meu pas, realizat în mediul Wokwi pentru a valida logica conexiunilor. Totuși, trecerea de la simulator la breadboard-ul real a venit cu provocări practice pe care a trebuit să le rezolv: 
 + 
 +  * **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și, deci logica pinilor s-a potrivit perfect. 
 +  * **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 5V, aș fi prăjit controlerul ecranului. Pentru că nu am folosit un modul dedicat de tip Level Shifter, a 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 ecran, menținând viteza SPI. 
 +  * **Compromisul Butoanelor:​** În planul din simulare aveam 5 butoane. Când am transpus asta pe breadboard, construcț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.1778320621.txt.gz · Last modified: 2026/05/09 12:57 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