This is an old revision of the document!


Retro Games

Jugulete George Marius Alexandru 331 AC
1. Descriere generala

Proiectul propus consta in realizarea unei console simple de jocuri bazata pe microcontrollerul ATmega328P Xplained Mini. Consola va avea un meniu afisat pe un display LCD 16×2, unde utilizatorul poate selecta unul dintre cele 3 jocuri disponibile: Snake, Tetris si Connect 4. Navigarea in meniu se face folosind un joystick analogic stanga/dreapta, iar selectarea jocului se face printr-un buton. Dupa selectare, jocul va fi afisat pe o matrice de LED-uri controlata prin modulul MAX7219. Pe parcursul jocurilor vor exista si functii de pauza si revenire in meniu.

2. Componente utilizate

Componente principale:

  • microcontroller (ATmega328P Xplained Mini)
  • display LCD 16×2
  • modul interfata I2C pentru LCD
  • matrice LED -joystick analogic
  • 3 butoane (pentru meniu, pauza si selectare/rotatie/confirmare pozitie)

Componente de suport:

  • driver pentru matrice LED (MAX7219)
  • breadboard
  • fire de conexiune
  • rezistent
3. Periferice utilizate pe microcontroller
  • GPIO : utilizati pentru butoane si control general.
  • ADC : utilizat pentru citirea joystick-ului, axe X si Y
  • SPI : utilizat pentru comunicarea cu matricea LED prin modulul MAX7219
  • I2C : utilizat pentru comunicarea cu display-ul LCD, prin modulul I2C
  • Timer: utilizat pentru gestionarea timpului in joc, animatii si eventuale sunete
4. Analiza pinilor

Pentru acest proiect, numarul pinilor necesari este urmatorul:

  • pentru joystick 3
  • pentru butoane 3
  • pentru LCD I2C 2
  • pentru matricea LED 3

Totalul pinilor se incadreaza in limitele microcontrollerului

5. Schema bloc a sistemului

6. Descrierea functionare

La pornirea consolei se aprinde ecranul LCD si se afiseaza un meniu in care jucatorul va avea de selectat intre 3 jocuri: Snake, Tetris si Connect 4. Utilizatorul navigheaza printre optiuni cu ajutorul joystick-ului. Cand un joc a fost selectat, acesta este afisat pe matricea LED. Pentru jocul Snake, pe matrice vor aparea 3 led-uri aprinse ce vor reprezenta corpul sarpelui, led-uri cu o luminozitate puternica, iar cu o luminozitate mai slaba vor fi punctele pe care sarpele le va colecta pentru a se mari. Folosim luminozitati diferite deoarece matricea ne ofera doar o singura culoare, astfel se poate face mai usor diferenta dintre corpul sarpelui si puncte. Regulile sunt cele clasice: sa evite sa intre in corpul sau si in margini, iar miscarea se realizeaza cu ajutorul joystick-ului: sus – jos – stanga – dreapta. Pentru jocul Tetris, pe matrice, pe primul rand, va aparea o forma aleatoare predefinita care va cadea usor la baza. Utilizatorul va putea misca forma cu joystick-ul in stanga sau dreapta, o va putea roti cu butonul care in mod normal este de selectie joc, acesta avand mai multe roluri, iar la apasarea joystick-ului se va mari viteza de cadere. Scopul jocului este de a rezista cat mai mult timp si de a obtine un scor cat mai mare, conditia de pierdere fiind ca figurile sa ajunga la ultimele randuri de sus. De asemenea, vor exista aproximativ 5 niveluri de luminozitate pentru a simula culori diferite. Pentru Connect 4, va fi nevoie de 2 utilizatori. Fiecare jucator, pe rand, va alege pozitia bilei cu joystick-ul; se va aprinde led-ul cel mai de sus al coloanei selectate, iar la apasarea butonului de confirmare, cel de selectare joc, bila va cadea pe cel mai de jos led neaprins de pe coloana respectiva. Scopul jocului este de a conecta 4 bile vertical, orizontal sau diagonal. Pentru un jucator vor fi led-uri aprinse puternic, iar pentru celalalt mai slab aprinse.

7. Diagrama de Activitati

pm/prj2026/andrei.batasev/george.jugulete.1778313858.txt.gz · Last modified: 2026/05/09 11:04 by george.jugulete
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