Table of Contents

Pong

Autor: Ionescu George-Valentin

Introducere

Scopul proiectului este implementarea jocului Pong folosind un ecran LCD și butoane care reprezintă schimbarea poziției paletelor pe ecran. Se poate juca în mod endless sau temporizat, în cazul celui din urmă afișându-se cine a câștigat la final.

Descriere generală

Cei doi jucători au câte un set de două butoane fiecare pentru deplasarea paletelor pe ecran. Pe lângă acestea, avem un buton de start/pauză și unul de reset. Paletele vor avea culori diferite, iar mișcarea mingii va fi acompaniată de un sunet produs de un buzzer. Scorul fiecărui jucător este afișat deasupra jumătății atribuite acestuia. În modul temporizat, la finalul jocului, se va afișa un mesaj de tipul „Player X won”.

Hardware Design

Lista de componente

Schema Bloc

Schema Electrică

Software Design

Algoritmul se bazează pe citirea stării butoanelor de direcție și actualizarea coordonatelor paletelor și a mingii în funcție de momentul în timp și de schimbarea direcției. La coliziuni, se pornește buzzer-ul. După fiecare minge ratată sau la apăsarea butonului de pauză, se afișează scorul. Modul temporizat/endless se alege la inceput, prin apăsarea butoanelor UP/DOWN ale celui de-al doilea jucător.

Modul “temporizat” de fapt așteapă ca un jucător să atingă un anumit scor, după declară un câștigător.

La finalul jocului, buzzer-ul va emite un sunet.

Funcții utilizate

Rezultate obținute

Link demo: https://www.icloud.com/sharedalbum/#B0hJtdOXmPSqd43

Concluzii

Download

333cc_george-valentin_ionescu_resurse.zip

pong_-_doc.pdf

Bibliografie/Resurse

https://github.com/adafruit/Adafruit-GFX-Library

https://github.com/adafruit/Adafruit-ST7735-Library/

https://www.instructables.com/Interfacing-Buzzer-to-Arduino/

https://arduino.stackexchange.com/questions/15844/pause-code-untill-a-button-is-pressed

https://www.youtube.com/watch?v=ZRL0GUqebFs&t=5s