This shows you the differences between two versions of the page.
|
pm:prj2026:cezar.zlatea:marius.gaibu [2026/05/09 12:37] marius.gaibu [Descriere generală] |
pm:prj2026:cezar.zlatea:marius.gaibu [2026/05/15 20:34] (current) marius.gaibu [Hardware Design] |
||
|---|---|---|---|
| Line 23: | Line 23: | ||
| ===== Hardware Design ===== | ===== Hardware Design ===== | ||
| - | <note tip> | + | **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. |
| - | Aici puneţi tot ce ţine de hardware design: | + | |
| - | * listă de piese | + | |
| - | * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri, e.g. http://www.captain.at/electronic-atmega16-mmc-schematic.png) | + | |
| - | * diagrame de semnal | + | |
| - | * rezultatele simulării | + | |
| - | </note> | + | |
| + | ^ Nume Componentă ^ Cantitate ^ | ||
| + | | Placă de dezvoltare ATmega328P Xplained Mini | 1| | ||
| + | | Ecran afișaj TFT LCD 2.8'' (Interfață SPI) | 1| | ||
| + | | Breadboard 830 puncte | 1| | ||
| + | | Butoane tactile (Microîntrerupătoare 6x6x6 mm) pentru D-Pad | 4| | ||
| + | | Modul Buzzer Pasiv (suport semnal PWM) | 1| | ||
| + | | LED RGB (pentru indicarea turei jucătorilor) | 1| | ||
| + | | 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| | ||
| + | | Cablu USB (pentru alimentare și programare) | 1| | ||
| + | |||
| + | **Maparea Pinilor și Justificarea Alegerii Lor:** | ||
| + | |||
| + | ^ Componentă ^ Pin ATmega328P ^ Rol și Justificare ^ | ||
| + | | **TFT - MOSI** | PB3 (Digital 11) | Linia de date SPI. Folosit pinul hardware SPI pentru viteză maximă de desenare. | | ||
| + | | **TFT - SCK** | PB5 (Digital 13) | Linia de ceas SPI. Folosit pinul hardware SPI. | | ||
| + | | **TFT - CS** | PB2 (Digital 10) | Chip Select. Semnalizează ecranului când să asculte magistrala SPI. | | ||
| + | | **TFT - DC** | PB1 (Digital 9) | Data/Command. Diferențiază între datele pentru culori și 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 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. | | ||
| + | | **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 vs. Realitate):** | ||
| + | |||
| + | {{: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 ===== | ||