This is an old revision of the document!


Pong Game

Introducere

Joc Pong pentru 2 jucatori. Jocul consta in doua “palete” aflate in stanga si respectiv in dreapta ecranului si o minge care va sari daca se loveste de “paleta”.

Scopul jocului e sa-ti aperi partea ta a ecranului si sa acumulezi mai multe puncte decat adversarul tau.

Jocul va fi acompaniat de muzica.

Am cautat mai multe variante de proiect si mi-a atras atentia acest joc, care mi-a trezit nostalgia asa ca am decis sa construiesc o mini consola cu un joc asemeni celor pe care le aveam in copilarie.

Consider ca e un joc distractiv si potrivit pentru a-ti petrece timpul cu un prieten.

Descriere generală

Schema bloc:

Hardware Design

Piese:

  • 4 butoane: pentru controlul “paletei”, 2 pentru fiecare jucator si un buton de start game.
  • ecran LCD 16×2: unde va fi afisat jocul
  • Arduino UNO (ATmega328P): placuta de baza pentru implementare
  • breadboard: pentru conectare intre componenete
  • buzzer: pentru acompanie muzicala
  • 5 rezistoare de 1k ohm
  • multe fire

Software Design

Biblioteci folosite:

  • LiquidCrystal.h
  • avr/interrupt.h

In implementare am folosit clase pentru diferite obiecte din joc, astfel avem urmatoarele clase:

Paddle - In care este implementata logica de pozitionare si miscare a unei palete.

Print - Care contine metode de afisare a textului de start, scorului, invingatorului etc.

Ball - In care a fost implementata majoritatea funtionalaitatii jocului si anume a miscarii mingii, sunt tratate mai multe cazuri cand se loveste de pereti sau de palete si cum isi schimba traiectoria. Se ia in considerare si in ce parte a paletei se va lovi mingea si astfel aceasta se va misca deferit.

In partea de setup este setat ecranul si este afisat textul initial si apoi jocul in sine cu palete pe pozitii initiale, sunt setatii pinii pentrubutoane si intreruperile.

Au fost implementate 2 intreuperi ca sa permita jocul concomitent a doi jucatori si miscarea concomitenta a paletelor.

Aditional a fost adaugate sunete atunci cand mingea se loveste de paleta sau perete si muzica atunci cand un jucator marcheaza sau castiga jocul.

Rezultate Obţinute

Concluzii

Proiectul s-a dovedit a fi putin mai greu decat am expectat dar a fost mai interesant de al dezvolta. Am invatat sa scriu cod pentru arduino in oop insa in loc de afisare la consola sau in apliactie, afisez pe un ecran separat. Partea de intreruperi am inteloso mai greu insa dupa inspectarea internetului au fost implementate in cateva randuri.

O probleama este implementarea fizica si anume a ecranului, initial a fost dezvoltata pe tinkercad insa diferite ecrane de la diferiti producatori au biblioteci proprii si ar fi nevoie de rescriere de cod dar totusi e asemanator cu cel de pe tinkercad insa trebuie sa fim atentie cu conectarea acestuia la arduino. Partea de buzzer era cea mai usor fiindca am implementato anterior la alte materii.

In general a fost satisfacator sa vezi rezultatul final, am primit aproape o cosnola de care aveam cand eram mic si acest proiect mi-a trezit mai mult interesul fata de dezvoltari pe placute.

Multumesc de atentie!

Download

Jurnal

21.04.2022: Am adăugat tema proiectului, componentele si schema bloc.

27.05.2022: Am adaugat milestone 2, parte de schema electrica, sectiunea de software conlcuzii si biografie.

Bibliografie/Resurse

pm/prj2022/imacovei/pong_game.1653672343.txt.gz · Last modified: 2022/05/27 20:25 by stanislav.onea
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