Nume și Prenume: ALEXANDRU ANDREEA
Grupă: 333CB
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.
- 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
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)
→ SPI (Serial Peripheral Interface):
Controlul display-ului TFT: Display-ul TFT este controlat prin protocolul SPI folosind librăriile Adafruit_GFX și Adafruit_ST7735. Pinii TFT_CS, TFT_DC, și TFT_RST sunt folosiți pentru comunicarea SPI cu display-ul.
→ GPIO (General Purpose Input/Output):
Controlul LED-urilor: LED-urile sunt controlate folosind pini GPIO. De exemplu, pinul LED_PIN, LED_GREEN_PIN și LED_RED_PIN sunt definiți și utilizați pentru a indica diferite stări ale jocului.
→ Timere:
Gestionarea pickup-urilor: Timer-ele sunt utilizate pentru a gestiona apariția și dispariția pickup-urilor pe ecran (PICKUP_APPEAR_INTERVAL, PICKUP_TIMEDOUT). Funcția millis() este folosită pentru a măsura timpul scurs și a declanșa evenimente la intervale regulate.
→ PWM (Pulse Width Modulation):
Controlul Buzzer-ului: Funcția tone() folosită pentru controlul buzzer-ului utilizează PWM pentru a genera sunetele necesare în timpul jocului.
În concluzie, proiectul a atins obiectivele propuse, oferind o experiență de joc atractivă.
Demo → pong_revolution_demo.zip
Resurse Hardware:
- Arduino UNO R3 → https://www.optimusdigital.ro/ro/placi-avr/1685-uno-r3-atmega328p-atmega16u2-placa-de-dezvoltare-compatibila-cu-arduino.html
- LCD display Module → https://www.optimusdigital.ro/en/lcds/12670-128x160-general-18inch-lcd-display-module.html