Nokia Snake
Autor: Croitoru Nicolae-Valentin
E-mail: nicolae.croitoru99@stud.acs.upb.ro
Introducere
Utilizatorul foloseste rotirea pe axele gx si gy ale giroscopul din cadrul modulului MPU-6500 pentru controlul sarpelui. Pe modulul LCD se va misca sarpele, care va urmari sa ajunga la mancare.
Scopul proiectului este familiarizarea cu giroscopul si LCD-ul Nokia, folosite pentru finalizarea proiectului.
Ideea de la care am pornit a fost recrearea minimalista a jocului Snake.
Este un un proiect destul de comun care ajuta la dezvoltarea cunostintelor folosirii Arduino.
Descriere generală
Schema bloc
Hardware Design
Listă de piese
Arduino Uno
Breadboard
Cablu USB
Fire tata-tata
Modul Accelerometru și Giroscop MPU6500 GY
Modul LCD Nokia 5110 (84×48)
Rezistente(1×330Ω, 1x1k, 4x10k)
Schemă electrică
Software Design
Descrierea codului aplicaţiei (firmware):
mediu de dezvoltare: Arduino IDE
librării şi surse 3rd-party:
Adafruit_GFX.h
Adafruit_PCD8544.h
MPU6050.h
stdlib.h
time.h
Wire.h
algoritmi şi structuri pe care plănuiţi să le implementaţi
surse şi funcţii implementate
surse:
-
-
-
functii:
intro(): afisarea mesajului de inceput pe lcd
init_snake(): la fiecare joc nou se initializeaza scorul, directiile, pozitiile hranei si a capului sarpelui, lungimea sarpelui, corpul sarpelui (si desenarea acestuia implicita).
setup(): initializarea giroscopului, lcd-ului, apelul intro() si init_snake(), definirea altor variabile legate de joc si scor.
loop(): verificarea daca jocul trebuie sa reinceapa (trebuie reinitializat sarpele), citirea de la accelerometru/giroscop a datelor, desenare margini (ziduri), desenarea sarpelui, desenarea hranei, implementarea logicii miscarii, coliziunea dintre capului sarpelui si margini, respectiv mancare, generearea unei pozitii noi pentru hrana, daca meciul se termina, se afiseaza mesajul de final impreuna cu scorul curent si cel mai bun scor din sesiunea curenta, iar apoi reincepe jocul).
Rezultate Obţinute
Concluzii
Overall, it was pretty funny
. A fost interesant sa lucrez la proiect, pentru partea de hardware am fost putin confuz la inceput, insa a mers totul bine, iar pe partea de software a durat ceva pana sa folosesc datele corect de la giroscop. Am finalizat proiectul, daca m-as fii apucat mai din timp probabil as mai fii incercat sa implementez cateva mici functionalitati, precum cresterea in lungime a sarpelui la fiecare punct in plus si cresterea vitezei acestuia la anumite milestone-uri de punctaj.
Download
Bibliografie/Resurse