Grupa: 334CC
Implementarea jocului clasic de Pong dar controlat in aer prin miscarea mainii. Odata inceput un joc acesta va fi afisat printr-un display LCD cu o rezolutie de 84×48. De asemenea, pe un alt display LCD se vor afisa diverse informatii despre jocul curent, iar prin intermediul unui buzzer se vor crea efecte sonore.
Scopul jocului este acela de relaxare si divertisment.
Cand consola va fi pornita se va astepta se vor utiliza 3 butoane pentru a naviga prin meniuri si a schimba diferitele setari ale jocului, precum alegerea numarului de puncte cu care se castiga jocul sau timpul limita al unui joc. Jocul va porni cand este aleasa optiunea de “start”.
Odata inceput jocul, paletele se vor putea controla prin miscarea unor palete fizice de ping pong in sus si in jos, folosind 2 senzori de distanta, unul pentru fiecare jucator.
Jocul se va desfasura display-ul de Nokia 5110, fiecare paleta, fiind reprezentata prin dreptunghiuri pozitionate pe verticala, iar mingea printr-un patrat. Scopul jocului este ca mingea sa ajunga in poarta adversarului.
In cadrul jocului, informatii precum scorul sau punctajele vor fi afisate pe display-ul LCD. Buzzer-ul va produce sunete, pentru marcarea unui gol.
Ca mediu de dezvoltare pentru proiect am ales Arduno IDE. Am folosit biblioteca “LiquidCristal_I2C” pentru controlul display-ului LCD 1602 prin I2C. Bibliotecile “SPI.h”, “Adafruit_GFX.h” si “Adafruit_PCD8544.h” au fost folosite pentru controlul display-ului de Nokia, prin protocolul SPI.
Funcționalitatea proiectului a fost spartă in funcții pentru a fi mai usor de urmarit cursul execuției programului.
In loop în funcție de valoarea unei variabile de stare a programului, se poate ajunge în funcția responsabila pentru meniul principal, in diversele meniuri pentru setari ale consolei, in modul de joc sau in ecranul de final al jocului.
Deoarece au fost utilizați toti pinii digitali, nu am putut folosi timere reglate prin registre, cum am făcut si la laborator, de accea am fost nevoit sa folosesc funcția millis pentru a controla rata cu care erau actualizate functiile jocului.
Flow-ul jocului este format din urmatorii:
Am reusit sa creez un joc interactiv pentru 2 jucatori, care atrage jucatorii prin maniera mai speciala de control prin miscarea paletelor de ping pong prin aer. De asemenea, am reusit sa combin toate componentele intr-o carcasa, care face jocul mai usor de transporat si are si rolul de suport pentru paletele de ping pong.
Mi s-a parut foarte interesant acest proces prin care am putut sa creez o miniconsola de jocuri. Cu toate acestea, daca ar fi sa o iau de la inceput, nu stiu daca as mai incerca sa fac alt joc deoarece odata cu marirea complexitatii am resimtiti limitarile hardware ale arduinio-ului uno, fiind destul de dificil sa creez o experienta fluida la final.
Fisierele folosite in cadrul proiectului: Arhiva Proiect