Differences

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

Link to this comparison view

pm:prj2026:victor.stoica0203:stefan.dumitrache [2026/05/23 12:24]
stefan.dumitrache [Functii implementate]
pm:prj2026:victor.stoica0203:stefan.dumitrache [2026/05/24 13:00] (current)
stefan.dumitrache [Schema electrica]
Line 37: Line 37:
 Majoritatea componentelor,​ in afara display-ului LCD grafic, sunt incluse intr-un kit Arduino basic. Majoritatea componentelor,​ in afara display-ului LCD grafic, sunt incluse intr-un kit Arduino basic.
  
-===== Schema electrica ​provizorie ​=====+===== Schema electrica =====
  
-Schema electrica ​finala va fi realizata ​dupa testarea componentelor ​pe breadboard. ​Pentru momentconexiunile propuse ​sunt urmatoarele:+Schema electrica ​a proiectului este realizata pe breadboard, folosind placa Arduino Uno R3 ca unitate principala de controlDisplay-ul LCD ST7920 este conectat in mod serialbutoanele ​sunt conectate la pini digitali folosind rezistentele interne de pull-up ale microcontrollerului,​ iar LED-ul RGB si buzzer-ul sunt folosite pentru feedback vizual si sonor. 
 + 
 +{{:pm:​prj2026:​victor.stoica0203:​schema_electrica_invaderzim.png?​200|}} 
 +==== Conectare alimentare ==== 
 + 
 +^ Componenta ^ Conectare ^ 
 +| Arduino 5V | Linia + de pe breadboard | 
 +| Arduino GND | Linia - de pe breadboard |
  
 ==== Conectare LCD 12864 ST7920 ==== ==== Conectare LCD 12864 ST7920 ====
  
-^ Pin LCD ST7920 ^ Pin Arduino ​Uno +^ Pin LCD ST7920 ^ Pin Arduino ​/ Breadboard ​
-VSS / GND | GND | +| GND / VSS | GND | 
-VDD / VCC | 5V |+| VCC / VDD | 5V |
 | VO / V0 | Pin mijloc potentiometru 10K | | VO / V0 | Pin mijloc potentiometru 10K |
 | RS / CS | D10 | | RS / CS | D10 |
-RW / SID | D11 |+R/W / SID | D11 |
 | E / SCLK | D13 | | E / SCLK | D13 |
 | PSB | GND | | PSB | GND |
 | RST | D8 | | RST | D8 |
 +| VOUT | Pin lateral potentiometru 10K |
 | BLA / LED+ | 5V | | BLA / LED+ | 5V |
 | BLK / LED- | GND prin rezistenta 220 Ohm | | BLK / LED- | GND prin rezistenta 220 Ohm |
 +
 +Pinii DB0-DB7 nu sunt folositi, deoarece display-ul este conectat in mod serial.
 +
 +==== Conectare potentiometru pentru contrast ====
 +
 +^ Pin potentiometru ^ Conectare ^
 +| Pin lateral 1 | LCD VOUT |
 +| Pin lateral 2 | GND |
 +| Pin mijloc | LCD VO / V0 |
 +
 +==== Conectare butoane ====
 +
 +Butoanele sunt configurate in cod folosind rezistentele interne de pull-up. Fiecare buton este conectat intre pinul digital al placii Arduino si GND.
 +
 +^ Buton ^ Pin Arduino ^ Cealalta parte ^
 +| Sus | D2 | GND |
 +| Jos | D3 | GND |
 +| Stanga | D4 | GND |
 +| Dreapta | D5 | GND |
 +
 +==== Conectare buzzer pasiv ====
 +
 +^ Pin buzzer ^ Conectare ^
 +| + | D6 |
 +| - | GND |
 +
 +==== Conectare LED RGB ====
 +
 +LED-ul RGB folosit este de tip catod comun. Fiecare culoare este conectata printr-o rezistenta de limitare a curentului.
 +
 +^ Pin LED RGB ^ Conectare ^
 +| Rosu | D7 prin rezistenta 220/330 Ohm |
 +| Verde | D9 prin rezistenta 220/330 Ohm |
 +| Albastru | D12 prin rezistenta 220/330 Ohm |
 +| Catod comun | GND |
 +
 +==== Observatii ====
 +
 +  * Display-ul LCD ST7920 foloseste pinii D10, D11 si D13 pentru comunicatia seriala.
 +  * Pinul PSB al display-ului este conectat la GND pentru selectarea modului serial.
 +  * Luminozitatea backlight-ului este redusa prin conectarea pinului BLK la GND printr-o rezistenta de 220 Ohm.
 +  * Butoanele folosesc rezistentele interne de pull-up, deci nu sunt necesare rezistente externe pentru acestea.
  
 ==== Conectare potentiometru pentru contrast ==== ==== Conectare potentiometru pentru contrast ====
Line 88: Line 138:
 ===== Software Design ===== ===== Software Design =====
  
-Proiectul este implementat in Arduino IDE, dar pentru partea de control hardware ​sunt folositi registrii microcontrollerului ATmega328P. Biblioteca standard Arduino este folosita doar pentru functii auxiliare, iar controlul principal al pinilor, UART-ului, timerului si interfetei ​SPI este realizat prin acces direct la registri.+Proiectul este implementat in Arduino IDE. Pentru controlul componentelor simple ​sunt folositi registrii microcontrollerului ATmega328P, iar pentru display-ul LCD ST7920 este folosita biblioteca U8g2 in mod software ​SPI.
  
-Codul implementeaza logica ​jocului ​2048 folosind o matrice 4x4. Dupa fiecare mutare ​valida, placutele sunt deplasate si combinate ​conform regulilor jocului, scorul este actualizat ​si se adauga o noua placuta cu valoarea 2 sau 4. Jocul se termina atunci cand nu mai exista mutari ​posibile ​sau cand este obtinuta ​valoarea 2048.+Logica ​jocului ​este implementata ​folosind o matrice 4x4. La fiecare mutare, linia sau coloana afectata este comprimata, placutele ​egale sunt combinate, scorul este actualizat, iar apoi se adauga o noua placuta cu valoarea 2 sau 4. Jocul verifica permanent daca exista mutari ​valide ​sau daca s-a ajuns la valoarea 2048.
  
 +Pentru debugging este folosita comunicatia UART, initializata prin registri. Pentru buzzer-ul pasiv este folosit Timer2 in mod CTC, iar LED-ul RGB si butoanele sunt controlate prin acces direct la registrii GPIO.
 ==== Laboratoare acoperite ==== ==== Laboratoare acoperite ====
  
Line 143: Line 194:
 ===== Jurnal ===== ===== Jurnal =====
  
-  * 8 mai - completare descriere, schema bloc si lista de componente +  * 8 mai - completare ​pagina OCW: scurta ​descriere, schema bloc si lista de componente 
-  * 11 mai - testare LCD ST7920, butoane, LED RGB si buzzer +  * 11 mai - realizare montaj hardware pe breadboard si testare ​componente 
-  * 11 mai - integrare hardware completa pe breadboard +  * 11 mai - testare LCD ST7920, butoane ​directionale, LED RGB si buzzer ​pasiv 
-  * 11 mai - implementare ​joc 2048 si trecere la control prin registri +  * 18 mai - implementare ​software pentru jocul 2048 
-  * urmeaza - finalizare schema electrica si realizare demo video+
pm/prj2026/victor.stoica0203/stefan.dumitrache.1779528287.txt.gz · Last modified: 2026/05/23 12:24 by stefan.dumitrache
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