Proiectul este un gameboy, un dispozitiv pe care poti juca jocuri rudimentare. Voi folosi un display lcd pentru afisare si un accelerometru drept intrare. Scopul este de a crea un joc care ofera o experienta placuta.
Scurta descriere a jocului implementat: Jucatorul detine o nava pe care o controleaza cu un joystick (acesta consista de un accelerometru si un montaj din piese lego). Nava se poate misca sus-jos stanga-dreapta in jumatatea de jos a ecranului si trage constant gloante in fata. Din fata inspre nava vin constant asteroizi de diferite marimi. Contactul unui asateroid cu nava rezulta in pierderea unei vieti. Gloantele distrug asteroizi. Scopul jocului este de a supravietui cat mai mult.
Accelerometrul este lipit pe o componenta lego care poate pivota pe 2 axe, simulant astfel un joystick.
Ecranul este lipit pe o componenta lego care poate pivota pe o axa, utilizatorul putand sa il roteazsa in pozitia optima pentru sine.
Dispozitivul este portabil, putand fiind alimentat de orice baterie externa.
Componentele hardware sunt cuplate cu suportul facut din lego cu o combinatie de banda dublu adeziva, scotch si sperante.
Lista componente:
Accelerometrul comunica cu procesorul atmega prin protocolul I2C, in scrierea codului m-am utilizat de tutorialul de la adresa [1] Am folosit din MPU6050 sensorul de acceleratie pentru a detecta orientarea lui pe axele X si Y.
Procesorul comunica cu display-ul prin protocolul SPI, in scrierea codului m-am utilizat de solutia de la laboratorul 5.
In functie de pozitia joystick-ului nava se va misca in una sau doua din cele patru directii cu viteza de 1 sau 2 pixeli per update de ecran.
Jocul se va misca din ce in ce mai rapid cu cat jucatorul va supravietui mai mult.
Jucatorul are trei vieti la inceputul jocului.
Accelerometrul s-a dovedit a fi nesigur pe el, dand din cand in cand rezultate complet gresite. Asa ca am efectuat cate 10 citiri si am facut media lor, aceasta am folosito drept input la miscare a navei.
In final jocul are 3 nivele, din ce in ce mai dificile, si o tabela cu top 10 scoruri.