This is an old revision of the document!
PONG GAME
Introducere
Proiectul consta in implementarea unui joc de tip Pong pentru doi jucatori utilizand o placa de dezvoltare ATmega328P Xplained Mini, un display OLED 128×64 si module LED pentru feedback vizual. Fiecare jucator controleaza o paleta prin intermediul a doua butoane, unul pentru deplasarea in sus si unul pentru deplasarea in jos. Scopul jocului este de a lovi mingea si de a inscrie puncte impotriva adversarului.
Descriere generală
Sistemul implementat reprezinta un joc interactiv in timp real pentru doi jucatori. Fiecare jucator controleaza o paleta aflata pe marginea ecranului, iar mingea se deplaseaza continuu intre cele doua parti. Directia mingii se modifica in functie de coliziunea cu marginile ecranului sau cu paletele jucatorilor.
Jocul include un sistem de scor care este actualizat automat atunci cand unul dintre jucatori nu reuseste sa loveasca mingea. Afisarea elementelor grafice se realizeaza pe display-ul OLED, iar interactiunea utilizatorului este realizata prin intermediul butoanelor. Pentru imbunatatirea experientei de joc, sistemul poate genera semnale sonore folosind un buzzer la evenimente precum coliziunile sau marcarea unui punct.
Proiectul foloseste si doua module LED de tip semafor pentru feedback vizual. Acestea indica starea jocului in timpul countdown-ului, marcheaza vizual momentul in care un jucator inscrie si evidentiaza castigatorul la finalul meciului.
Hardware Design
Lista de piese (Bill of Materials):
Placa de dezvoltare ATmega328P Xplained Mini: Microcontrollerul principal care gestioneaza logica jocului, citirea input-urilor si controlul perifericelor.
Display OLED 0.96” SSD1306 cu interfata I2C: Ecran grafic utilizat pentru afisarea paletelor, mingii si scorului in timpul jocului.
Module buton KY-004: 4 bucati utilizate pentru controlul paletelor celor doi jucatori prin miscari sus si jos.
Modul buzzer pasiv KY-006: Utilizat pentru generarea efectelor sonore controlabile prin software la coliziuni sau marcarea punctelor.
Module LED semafor compatibile Arduino: 2 bucati utilizate pentru feedback vizual, cate unul pentru fiecare jucator. Acestea indica starea jocului, marcheaza inscrierea unui punct si semnalizeaza castigatorul.
Breadboard 400 puncte: Folosit pentru realizarea conexiunilor hardware si prototiparea circuitului fara lipire.
Fire Dupont Tata-Tata si Tata-Mama: Utilizate pentru realizarea conexiunilor electrice intre placa de dezvoltare, module si breadboard.
Conexiunile hardware finale sunt urmatoarele:
| Componenta | Pin componenta | Conectare |
| OLED SSD1306 | VCC | VCC microcontroller |
| OLED SSD1306 | GND | GND microcontroller |
| OLED SSD1306 | SDA | PC4 microcontroller |
| OLED SSD1306 | SCL | PC5 microcontroller |
| Componenta | Pin componenta | Conectare |
| Buton P1_UP KY-004 | S | D2 microcontroller |
| Buton P1_DOWN KY-004 | S | D3 microcontroller |
| Buton P2_UP KY-004 | S | D4 microcontroller |
| Buton P2_DOWN KY-004 | S | D5 microcontroller |
| Toate butoanele KY-004 | - | GND breadboard |
| Toate butoanele KY-004 | pin mijloc | neconectat |
| Componenta | Pin componenta | Conectare |
| Buzzer pasiv KY-006 | S | D6 microcontroller |
| Buzzer pasiv KY-006 | minus | GND breadboard |
| Componenta | Pin componenta | Conectare |
| Modul LED Player 1 | R | D7 microcontroller |
| Modul LED Player 1 | Y | D8 microcontroller |
| Modul LED Player 1 | G | D9 microcontroller |
| Modul LED Player 1 | GND | GND breadboard |
| Modul LED Player 2 | R | D10 microcontroller |
| Modul LED Player 2 | Y | D11 microcontroller |
| Modul LED Player 2 | G | D12 microcontroller |
| Modul LED Player 2 | GND | GND breadboard |
| Componenta | Conectare |
| Breadboard | GND microcontroller → bara GND breadboard |
Software Design
Descrierea codului aplicaţiei (firmware):
mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR)
librării şi surse 3rd-party (e.g. Procyon AVRlib)
algoritmi şi structuri pe care plănuiţi să le implementaţi
(etapa 3) surse şi funcţii implementate
Rezultate Obţinute
Care au fost rezultatele obţinute în urma realizării proiectului vostru.
Concluzii
Download
O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună

.
Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.
Jurnal
Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.
Bibliografie/Resurse
Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.