This is an old revision of the document!


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)

+ multe alte beculete pe pinii 21-53

Am inceput prin lipirea led-urilor intre ele. (dupa multe incercari de a le lipi pe o sarma, am trecut la rezistente pentru structura de rezistenta=). Am lipit catodul fiecarui beculet intre ele si le-am conestat la arduino prin becurile din colturi astfel incat rezistentele folosite pentru sustinere, nu influenteaza=)

Apoi am facut cablajul si le-am pus fiecaruia dintre ele cate o rezistenta , apoi am conectat la mega si lcd-ul cu joystick-ul pentru a incepe sa pot scrie software-ul

M-am decis ulterior sa pun o singura rezistenta pentru toate led-urile


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

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

Concluzii

Download

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

pm/prj2024/rvirtan/snakecube3d.1716715189.txt.gz · Last modified: 2024/05/26 12:19 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