This shows you the differences between two versions of the page.
|
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 moment, conexiunile propuse sunt urmatoarele: | + | Schema electrica a proiectului este realizata pe breadboard, folosind placa Arduino Uno R3 ca unitate principala de control. Display-ul LCD ST7920 este conectat in mod serial, butoanele 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 | + | |