Snakecube3d

Introducere

  • Florea Radu
  • 332CD
  • Indrumator: Razvan Virtan

Inspirat de jocul clasic Snake și dorind să aduc o nouă dimensiune acestei experiențe, am conceput SnakeCube 3D. Acest proiect implică crearea unui cub de led-uri care servește ca platformă de joc tridimensională, unde jucătorii controlează un “șarpe” luminos.

Utilizând un joystick și două butoane, jucătorii pot naviga prin spațiul tridimensional al cubului de led-uri, încercând să evite coliziunile cu marginile cubului sau cu propriul corp al șarpelui. Mișcarea șarpelui este simulată printr-o succesiune de lumină care se deplasează pe suprafața cubului, oferind o experiență vizuală captivantă.

SnakeCube 3D reprezintă o îmbinare între hardware și software, folosind Arduino pentru a controla afișajul de led-uri și interacțiunea cu jucătorul. Scopul acestui proiect este de a aduce o reinterpretare modernă a jocului Snake, aducând o nouă dimensiune și o experiență vizuală fascinantă în lumea jocurilor tradiționale.

Descriere generală

Utilizatorul poate comunica cu cubul de leduri prin intermediul joystick-ului si a celor 2 butoane

  • joystick-ul mișcă șarpele pe Oy-Oz
  • butoanele comuta între dimensiuni pe Ox

Hardware Design

În realizarea proiectului voi folosi:

  • MEGA 2560 R3
  • 48 led-uri
  • 2 butoane (pe pinii 2 si 19)
  • 1 Joystick Module (Pe A0 si A1)
  • 1 ecran lcd 1602 cu I2C (pe pinii de SCL si SDA 20 si 21)
  • 1 buzzer pasiv conectat pe portul 56 (A2)

+ multe alte beculețe pe pinii 21-53

Am început prin lipirea led-urilor între ele. (după multe încercări de a le lipi pe o sârmă, am trecut la rezistențe pentru structura de rezistență=). Am lipit catodul fiecărui beculeț între ele și le-am conectat la arduino prin becurile din colturi astfel incât rezistențele folosite pentru susținere, nu influențează=)

Apoi am fâcut cablajul si le-am pus fiecăruia dintre ele câte o rezistență , apoi am conectat la mega si lcd-ul cu joystick-ul pentru a începe sa pot scrie software-ul

M-am decis ulterior să pun o singură rezistență pentru toate led-urile

Am pus pe un breadboard separat joystick-ul si 2 butoane pentru a simula un controller


Software Design

Link pentru repo-ul de Git: GitHub

Am început cu un joc clasic de Snake, la care am adăugat două butoane pentru a permite jucătorului să comute între trei niveluri ale cubului. De asemenea, am integrat melodia iconică Nokia, care se redă atunci când jucătorul pierde.

În ceea ce privește logica jocului, jucătorul începe cu un șarpe de lungime 2. Obiectivul este să caute și să consume mere, care apar pe hartă. De fiecare dată când șarpele consumă un măr, lungimea acestuia crește cu 1 unitate. Jocul se încheie atunci când capul șarpelui intră în coliziune cu oricare parte a corpului său. Scorul, care reprezintă numărul de mere consumate, este afișat pe ecranul LCD

Biblioteci folosite:

  • LiquidCrystal_I2C.h Aceasta bibliotecă este folosită pentru a inițializa și controla afișajul LCD.
  • Wire.h: În acest cod, Wire.h este inclusă, dar nu este folosită direct. Aceasta este necesară deoarece LiquidCrystal_I2C.h depinde de ea pentru a funcționa. Bibliotecile care folosesc I2C utilizează în mod implicit Wire.h pentru a gestiona comunicația I2C.

Rezultate Obţinute

Download

Bibliografie/Resurse

pm/prj2024/rvirtan/snakecube3d.txt · Last modified: 2024/05/26 22:33 by radu.florea
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