This is an old revision of the document!
Snake Game
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