This is an old revision of the document!


Snake Game

  • Autor: Voicu Andrei-Silviu
  • Grupa: 334CB

Introducere

  • ce face? Joc clasic Snake pe Arduino cu 4 butoane pentru mișcare, OLED 128×64 pe I2C pentru grafică și meniu, cronometru (timer hardware/RTC I2C) și salvare/încărcare a progresului pe USB prin SPI.
  • care este scopul lui? Să aplice practic interfețele I2C, SPI și timerele hardware într-un sistem interactiv de gaming.
  • care a fost ideea de la care ați pornit? Dorința de a construi un proiect educativ și distractiv care să îmbine control digital, afișaj grafic și stocare externă.
  • de ce credeți că este util pentru alții și pentru voi? Oferă experiență reală în integrarea hardware-software pe Arduino și un punct de plecare pentru proiecte embedded avansate.

Descriere generală

Module și piese:

  • 4 butoane digitale → Input Handler: citește stările butoanelor pentru direcție și pauză.
  • Game Logic & Timer ISR: actualizează poziția șarpelui, verifică coliziuni, declanșează frame-ul la interval hardware.
  • Display Driver (I2C): afișează tabla de joc, meniuri şi cronometru pe OLED.
  • Storage Manager (SPI): salvează și încarcă starea jocului (hartă, scor, timp) pe USB.
  • Cronometru RTC/Timer: furnizează timpul curent sau tick-uri de ceas pentru joc.
  • Indicator LED (PWM): semnalizează evenimente (mâncare, Game Over).

Schemă bloc:

Hardware Design

Listă de piese:

  • Arduino UNO
  • 4 butoane
  • OLED 128×64
  • Modul USB
  • Modul RTC
  • LED
  • Breadboard + fire

Schematic:

Proiect asamblat:

Software Design

Descrierea codului aplicaţiei (firmware):

  • mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR)
  • librării şi surse 3rd-party (e.g. Procyon AVRlib)
  • algoritmi şi structuri pe care plănuiţi să le implementaţi
  • (etapa 3) surse şi funcţii implementate

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

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF

pm/prj2025/atoader/andrei_silviu.voicu.1747555813.txt.gz · Last modified: 2025/05/18 11:10 by andrei_silviu.voicu
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