Nokia Snake

Autor: Croitoru Nicolae-Valentin
E-mail: nicolae.croitoru99@stud.acs.upb.ro

Introducere

  • Ce face?

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.

  • Care este scopul lui?

Scopul proiectului este familiarizarea cu giroscopul si LCD-ul Nokia, folosite pentru finalizarea proiectului.

  • Care a fost ideea de la care aţi pornit?

Ideea de la care am pornit a fost recrearea minimalista a jocului Snake.

  • De ce credeţi că este util pentru alţii şi pentru voi?

Este un un proiect destul de comun care ajuta la dezvoltarea cunostintelor folosirii Arduino.

Descriere generală

Schema bloc

Hardware Design

Listă de piese

  1. Arduino Uno
  2. Breadboard
  3. Cablu USB
  4. Fire tata-tata
  5. Modul Accelerometru și Giroscop MPU6500 GY
  6. Modul LCD Nokia 5110 (84×48)
  7. 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
    • coliziunea intre doua puncte
    • instructiuni de logica (if, for)
  • surse şi funcţii implementate
    • surse:
    • functii:
      1. intro(): afisarea mesajului de inceput pe lcd
      2. init_snake(): la fiecare joc nou se initializeaza scorul, directiile, pozitiile hranei si a capului sarpelui, lungimea sarpelui, corpul sarpelui (si desenarea acestuia implicita).
      3. setup(): initializarea giroscopului, lcd-ului, apelul intro() si init_snake(), definirea altor variabile legate de joc si scor.
      4. 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

pm/prj2021/amocanu/nokia-snake.txt · Last modified: 2021/06/02 19:53 by nicolae.croitoru99
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0