Table of Contents

Iulia-Andreea OPREA (66906) - Oprea's Snake

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

In cadrul acestui proiect voi crea un snake cu accelerometru. Jocul va fi proiectat astfel incat sa foloseasca datele furnizate de accelerometru pentru miscarea personajului vizat pe ecran. Evolutia implica cresterea punctajului, lucru ce poate avea loc prin consumarea resurselor (hrana) ce apar pe ecran.

Descriere generală

In cadrul proiectului datele vor fi preluate de la accelerometru si transmise catre microcontroller pentru a fi procesate, ulterior view-ul jocului va fi updatat.

Hardware Design

Componente de baza:
  ATMega 324 PA-PU
  USB-B: USB B-PCB-R
  Quartz 16 MHz: Q16.00 MHz HC-49S
  2 diode Zener
  2 leduri: CLL-50221
  condensatoare: 1 x 100 uF, 3 x 100 nF, 2 x 15 pF
  Soclu microcontroller: LC40
  Rezistente: 10K, 1K5, 470R, 100R
  2 pushbuttons: TS-06E
  Pin header: K2X10, K1X10
Componente specifice:
  LCD qtouch TFT 320-QVT
  Accelerometru MPU-6050 6DOF
  Fire conectoare mama-mama
Schema electrica:

Software Design

Se propune afisarea pe ecran a siglei materiei, care este stocata pe cardul SD din spatele LCD-ului. Sarpele va fi control cu ajutorul accelerometrului, care va dicta directia in care acesta se indreapta. Fiecare bucatica de mancare prinsa de sarpe va fi “marcata” prin incrementarea unei variabile de scor.

Pentru retinerea datelor legate de mancare si sarpe, s-a creat structura pixel, in care se regasesc coordonatele x si y. Dupa initializarea accelerometrului, initializez lcd-ul si setez contrastul acestuia. Jocul va incepe prin afisarea unui mesaj sugestiv, “Let the game begin”, urmand sa apara ulterior jocul propriu-zis. Cat timp sarpele nu ajunge la dimensiune maxima (depasire ecran) sau nu a pierdut, se aduc date de la accelerometru care au ca scop stabilirea directiei in care se deplaseaza “vedeta” jocului. Deplasarea se va efectua verificand, la fiecare pas, daca se trece de una din partile ecranului, sa se iasa prin cea opusa. De asemenea,se vor verifica elemente precum validitatea miscarilor (ex: nu merg spre stanga si incerc sa fac dreapta) sau intalnirea de mancare.

In realizarea proiectului am folosit codul de lcd din laborator, dar si biblioteci preluate de pe internet (atasate la sfarsitul wiki-ului).

Rezultate Obţinute

Prima varianta de proiect:


A doua varianta de proiect:

Concluzii

A fost interesant sa am sansa de a lucra la un proiect in care sa imbin hardware-ul cu software-ul. Din pacate, am intampinat dificultati in gasirea componentelor necesare, in sensul ca am asteptat mult timp atat pentru obtinerea lcd-ul (pe care l-am cumparat nefunctional, fiind nevoita sa caut din nou un altul care sa-si poata atinge scopul) cat si in gasirea unei placi de test potrivite pentru componentele care trebuiau lipite. Per total, a fost o experienta din care am avut multe de invatat (in special pe partea de rabdare si perseverenta).

Download

Prima varianta aplicatie:
oprea.zip

A doua varianta, adaptata pt lcd 84 x 48:
cod_final.zip

Jurnal

30 martie - achizitionare piese baza
4 aprilie - stabilirea temei proiectului
19 aprilie - finalizare placuta de baza
21 aprilie - planificarea achizitionarii celorlalte componente necesare
29 aprilie - schema electrica a proiectului
30 aprilie - achizitionarea unei parti din componente
8 mai - inceputul implementarii algoritmului
16 mai - cumpararea pieselor ramase
20 mai - cumparare placa de test
20 mai - lipirea tuturor componentelor hardware
21 mai - continuarea dezvoltarii software
22 mai - achizitionarea unui alt lcd, dat fiind faptul ca primul s-a dovedit a fi nefunctional
22 mai - prezent - testare si verificare functionalitate

Bibliografie/Resurse

1. Pentru LCD - link
2. Pentru Accelerometru - link