This is an old revision of the document!
Pong Revolution
Nume și Prenume: ALEXANDRU ANDREEA
Grupă: 333CB
Introducere
„Pong Revolution” propune o versiune actualizată a clasicului joc Pong, care adaugă elementul de strategie și imprevizibilitate prin intermediul power-up-urilor (avantaje/dezavantaje temporare). Jucătorii se vor confrunta pe tabla de joc virtuală, folosindu-și abilitățile și reflexele pentru a marca puncte și pentru a obține victoria. Jocul va fi însoțit de un dinamism care va anima experiența de joc.
Scopul proiectului este de a oferi o experiență distractivă și captivantă jucătorilor, prin combinarea elementelor clasice ale jocului Pong cu inovații care aduc un plus de strategie și divertisment. Acest proiect își propune să atragă atât fanii jocului original, cât și noii jucători, adăugând un plus de strategie și dinamism.
Ideea proiectului a pornit de la dorința de a reanima un joc clasic, păstrând esența originalului, dar adăugând elemente noi pentru a îmbunătăți experiența de joc.
Utilitatea proiectului:
Jocul proiectat oferă o formă de divertisment captivantă, potrivită pentru jucători de toate vărstele, oferind sesiuni de joc cu elemente strategice și dinamică imprevizibilă. Totodată, interventiile sonore și vizuale îmbunătățesc experiența de joc prin stimularea multisenzorială.
Dintr-o altă perspectivă, proiectarea jocului Pong Revolution este o provocare personală care facilitează dezvoltarea abilităților tehnice: cunoștințe și abilități în programare, design de jocuri, integrare de efecte sonore și vizuale.
Descriere generală
Descriere sumară mod de funcționare
Jocul implementat „Pong Revolition” funcționează după următorul mecanism de bază: jucătorii controlează fiecare o paletă pe tabla de joc și trebuie să lovească pucul pentru a-l trimite către adversar, scopul fiind marcarea punctelor prin trecerea pucului pe cealaltă parte a tablei de joc fără ca adversarul să-l returneze. Pe măsură ce jocul progresează, power-up-uri aleatorii apar pe tabla de joc. Acestea oferă avantaje sau dezavantaje temporare, modificând dinamica jocului. Pentru a captura un power-up jucătorul trebuie să își coordoneze mișcările astfel încât pucul sa intre în contact cu simbolul acestuia, activându-se automat. Mișcările vor fi ghidate prin utilizarea unui joystick care permite mișcări sus/jos, stânga/dreapta pe un anumit perimetru.
Jocul se va încheia fie când un jucător atinge un anumit număr de puncte, fie când timer-ul expiră.
De asemenea, jocul va interacționa în mod activ cu jucătorii prin lumini, sunete de victorie/înfrângere, intervenții sonore redate de pe un card SD.
Schemă Bloc
Hardware Design
listă de piese
scheme electrice
descriere pini
imagini demonstrative
Listă Piese
- Arduino UNO R3 ATMEGA328p
- Display LCD 128x160px, SPI
- Breadboard
- 2 x Joystick
- Buzzer
- buton
- rezistențe: R = 330 Ohm; R = 1K Ohm
- tranzistor BC337
- LED Bicolor de 3 mm Rosu si Verde cu Anod Comun
- fire
- cablu USB
Schemă eletrică
Descriere pini
Conexiuni Modul LCD - SPI și Controller ST7735S ↔ Arduino UNO R3:
1. SCK (Serial Clock): pinul de ceas serial (CLK) → pin digital 13
2. SDA/DIN (Serial Data): pinul de date seriale (MOSI) → pin digital 11
3. A0/ DC: selectare între date și comenzi → pin digital 9
4. RESET: pinul de resetare (RST) → pin digital 8
5. CS (Chip Select): selectare cip → pin digital 10
6. LED/BL: pinul de backlight → pin digital 4
7. VCC: alimentare
8. GND
Conexiuni Buzzer activ ↔ Arduino UNO R3:
1. VCC
2. GND
3. I\O: pin pentru semnalul de intrare/ieșire → pin digital D2
Conexiuni LED anod comun ↔ Arduino UNO R3:
- pentru pinii de culoare (roșu și verde): am conectat câte o rezistență de limitare a curentului și câte un pin digital: 1 și 4
- pentru pinul comun (anodul) → pin digital 7
Conexiuni buton ↔ Arduino UNO R3:
- pin conectat la GND
- pin de semnal al butonului → pin digital 0
Conexiuni joystick ↔ Arduino UNO R3:
1. GND
2. VCC
3. VRX: citire poziție pe axa Ox → pin analogic A3 (respectiv A1)
4. VRY: citire poziție pe axa Oy → pin analogic A4 (respectiv A5)
5. SW: citire stare buton → pin digital 5 (respectiv 6)
Imagini
Software Design
Descrierea codului aplicaţiei (firmware):
Mediu de dezvoltare: Arduino IDE (placă utilizată Arduino UNO R3);
Librării şi surse 3rd-party:
Adafruit GFX Library: oferă funcții grafice pentru a desena pe display-ul TFT
Adafruit ST7735: Controler pentru display-ul ST7735, care gestionează comunicarea cu display-ul TFT
Algoritmi şi structuri de implementat:
Controlul Joystick-ului: Citirea valorilor analogice de la joystick pentru a controla mișcarea paletelor.
Detecția Coliziunilor: Algoritmi pentru a detecta coliziunile bilei cu paletele și marginile ecranului.
Algoritmul de mișcare a bilei și actualizarea poziției acesteia pe ecran.
Algoritmul de actualizare a scorului și resetare a poziției bilei.
Gestionarea Scorului: Funcții pentru actualizarea și afișarea scorului pe ecran.
Controlul Jocului: Inițierea jocului la apăsarea unui buton de start.
Controlul buzzer-ului pentru semnalizarea evenimentelor de joc.
Controlul LED-ului pentru indicarea stării jocului.
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ă

.
Sursă github: https://github.com/andreeaalexandru323cb/PONG_revolution
Jurnal
→ MARTIE - APRILIE: alegere proiect;
→ 22 APRILIE - 26 APRILIE: confirmarea și stabilirea proiectului;
→ 29 APRILIE - 05 MAI: creare pagină wiki și adăugare documentație;
→ 06 MAI - 12 MAI: achiziționare piese;
→ 09 MAI - 12 MAI: creare schemă electrică;
→ 15 MAI: finalizare asamblare hardware;
→ 16 MAI: testare funcționalitate componente;
→ 15 MAI - 25 MAI: dezvoltare software;
→ 26 MAI: completare pagină wiki;
Bibliografie/Resurse