Table of Contents

Diana BARDAC (78683) - Jocul 2048

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Tema proiectului o reprezintă o implementare a jocului 2048 în care deplasarea pieselor este controlată cu ajutorul unui senzor de măsură a accelerației.
Prin înclinarea dispozitivului se declanșează deplasarea pieselor în direcția respectivă, simulând astfel efectul gravitației asupra pieselor din joc.

Descriere generală

Schema bloc a dispozitivului este următoarea:

Datele de la accelerometru sunt prelucrate de către ATMega 324, rezultând direcția de înclinare a senzorului.
LED-urile confirmă decizia de deplasare a pieselor jocului în direcția în care s-a înclinat senzorul, se execută mutarea pieselor, iar pe display se afișează starea jocului.

Hardware Design

Lista de componente include:

In faza de proiectare:
img_5891.jpg

Schema electrica a dispozitivului este următoarea:

Software Design

In cadrul software-ului, am folosit biblioteca grafica u8glib pentru afisajul LCD-ul ERM12864_6 cu controlerul ST7920 si biblioteca ADXL345 impreuna cu biblioteca ce implementeaza I2C Master pentru accelerometrul ADXL345-gy291. Am inceput prin a incerca sa inteleg mai bine interactiunea cu aceste biblioteci, prin a apela diverse functii din ele de care am avut nevoie: in cadrul accelerometrului initializarea comunicatiei cu acesta si citirea datelor de la el, cu functia adxl_get_acc, precum si la LCD prin printarea de diferite caractere sau stringuri la pozitii diverse pentru a intelege mai bine plasarea caracterelor pe display. Am folosit aceste biblioteci impreuna (am testat afisand acceleratiile pe cele trei axe ale accelerometrului pe lcd) pentru a obtine informatiile necesare jocului si a urmat etapa de implementare efectiva a jocului. Am implementat jocul 2048 folosind accelerometrul pentru a sesiza inclinarea montajului si a lua deciziile de mutare a pieselor in functie de aceasta inclinare. Simultan am comandat si aprinderea unor leduri de confirmare a directiilor in care se fac mutarile. Cu ajutorul unui buton cu led se poate schimba valoarea inclinarii la care are loc declansarea unei mutari, iar ledul confirma aceasta modificare(aprins=inclinare mai mica, sensibilitate mai mare).

Mi s-a parut destul de interesant acest proiect, drept urmare am decis sa mai fac si alte montaje electronice cu sisteme folosind microcontrolerul.

Rezultate Obţinute

Jocul este functional si interesant prin modul natural in care par sa se miste piesele in sensul gravitatiei.
img_6159.jpg

img_6172.jpg

img_6173.jpg

Concluzii

In concluzie, pot spune ca proiectul m-a ajutat sa inteleg mai bine cum functioneaza anumite elemente hardware si cum se realizeaza interactiunea cu acestea. In plus, mi s-a parut interesant faptul ca a trebuit sa imi realizez singur placa de test pe care mi-am lipit componentele in functie de schema electrica realizata. Dezvoltarea de software a fost una interesanta pentru ca am experimentat interactiunea dintre LCD si accelerometru, jocul devenind mai interesant.

Download

Schema electrica este: schema2048.sch joc-2048.zip

Jurnal

Etapele:

  1. Am primit placuta.
  2. Am achizitionat LCD-ul, accelerometrul, piesele de baza si tot ce mai era necesar(letcon, fire, leduri, rezistente, butoane).
  3. Am lipit piesele de baza pe placuta.
  4. Am incorporat si acele piese atat fizic cat si software (prin realizarea codului).


img_6145.jpg

img_6174.jpg

Bibliografie/Resurse

1. Datasheet ATmega324A:doc8272.pdf

2. Datasheet ADXL345:adxl345-hookup-guide

3. Datasheet ST7920:lcd-display-serial-graphic-display-128x64-st7920-white-on-blue

* Documentația în format PDF