This is an old revision of the document!


Brick Breaker Game

Cristina-Andreea Szabo, 334CA

Introducere

Proiectul meu este un joc de tip Breakout, controlat cu Arduino Uno, care se joaca pe un display I2C OLED. Jucatorul controleaza paleta folosind un joystick, scopul fiind sa loveasca mingea si sa sparga toate blocurile fara sa piarda toate vietile.

Am vrut sa recreez jocul copilariei mele si sa-l adaptez intr-o forma fizica, folosind componente simple. Am adaugat un buton pentru a pune jocul pe pauza, un modul semafor cu trei LED-uri care indica vietile ramase si un fotorezistor cu ajutorul caruia se schimba culoarea graficii de pe ecran in functie de cata lumina este in camera. Acest proiect imi ofera o baza pe care pot sa o extind pe viitor, adaugand noi niveluri si functionalitati.

Descriere generală

Pentru realizarea acestui proiect am folosit mai multe componente hardware care lucreaza impreuna pentru a face jocul sa functioneze corect. In centrul sistemului se afla placa Arduino Uno, care controleaza toate celelalte module. Pentru controlul paletei am folosit un joystick KY023, care trimite semnale analogice catre Arduino in functie de miscarea pe axa X. Aceste semnale sunt interpretate si paleta este mutata stanga-dreapta pe ecran.

Afisajul pe care se vede jocul este un display OLED de 0.96 inch, cu interfata I2C si rezolutie 128×64. El este conectat la Arduino prin pinii SDA si SCL si afiseaza grafic toate elementele jocului: mingea, paleta, caramizile si scorul. Am adaugat si un buton 6x6x5 care este conectat la un pin digital si are rolul de a pune jocul pe pauza atunci cand este apasat. Astfel, jucatorul poate intrerupe jocul si il poate relua oricand doreste.

Pentru afisarea vizuala a numarului de vieti ramase, am folosit un modul semafor cu trei LED-uri, conectate fiecare la cate un pin digital. La inceput toate trei sunt aprinse, iar pe masura ce se pierd vieti, ele se sting unul cate unul. Un alt element important este fotorezistorul, care este conectat la un pin analogic. Acesta citeste lumina ambientala si permite Arduino-ului sa adapteze culorile jocului.

Lista de componente:

- Arduino Uno - Placa de baza care controleaza intregul proiect

- Joystick KY023 pe doua axe XY - Folosit pentru a controla paleta din joc

- Display OLED 0.96” I2C - Afiseaza jocul

- Buton 6x6x5 - Permite punerea jocului pe pauza

- Modul LED semafor - Reprezinta vietile ramase ale jucatorului

- Fotorezistor - Detecteaza lumina ambientala

- Breadboard - Pentru montarea componentelor

- Fire de conexiune - Pentru legarea componentelor intre ele si la Arduino

- Rezistenta 10k - Folosita impreuna cu fotorezistorul

Hardware Design

BOM:

Componenta Link-uri
Arduino Uno Link
Breadboard 830 puncte MB-102 -
Modul LED semafor, 56mm, 3.3-5V R → D3, Y → D4, G → D5, GND → GND
Buton Mini 6x6x5, 4 pini Un pin → D13, celalalt → GND
Fotorezistor (5537) 5mm Un capat → 5V, celalalt → A0 si rezistenta de 10k → GND
Modul joystick doua axe XY VRx → A1, VRy → A2, VCC → 5V, GND → GND, SW → D7
Display OLED 0.96” I2C IIC Albastru Link
Fire de conexiune Leaga pinii Arduino cu componentele pe breadboard

Descriere pini folositi:

Componenta Pini Arduino folositi Functie
Joystick KY-023 VRx → A1, VRy → A2 (nefolosit) Axa X - control prin semnal analogic
SW → D7 Buton apasare joystick
VCC → 5V Alimentare
GND → GND Masa
Display OLED I2C SDA → A4 Comunicare I2C - date
SCL → A5 Comunicare I2C - ceas
VCC → 5V Alimentare
GND → GND Masa
Buton 6x6x5 mm Un pin → D13 Detecteaza intrerupere - pauza
Celalalt pin → GND Inchide circuitul
Modul semafor LED Rosu → D3, Galben → D4, Verde → D5 Indica vietile ramase
GND → GND Masa comuna
Fotorezistor Un capat → 5V Alimentare
Celalalt → A0 Citeste nivelul de lumina
Rezistenta 10k → intre A0, GND Formeaza divizor de tensiune

Implementare hardware:

Schema electrica:

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.

Export to PDF

pm/prj2025/vstoica/cristina.szabo.1747593908.txt.gz · Last modified: 2025/05/18 21:45 by cristina.szabo
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