This is an old revision of the document!
Munteanu Eugen 343C5
SnakeC este un sistem de calcul care ruleaza jocul clasic Snake, permitand utilizatorului sa controleze un sarpe prin intermediul unui joystick pentru a colecta fructe si a creste in dimensiune. Aplicatia include un meniu pentru selectarea nivelului de dificultate (fara obstacole sau cu obstacole) si introduce mecanici de tip power-up, precum incetinirea sarpelui sau distrugerea peretilor din nivelele complexe.
Ideea a pornit de la dorinta de a reimplementa un joc retro pe o arhitectura hardware simpla, adaugand elemente de gameplay pentru a creste complexitatea si interactivitatea fata de versiunea originala a jocului. Scopul reprezinta dezvoltarea unui sistem embedded capabil sa gestioneze logica unui joc in timp real, incluzand meniuri interactive, procesarea input-ului de la joystick si gestionarea conditiilor de finalizare a jocului.
Conform schemei bloc, unitatea centrala este reprezentata de microcontroller, care gestioneaza fluxul de date intre toate componentele sistemului. Controlul jocului este realizat prin intermediul joystick-ului, conectat prin pini GPIO (analogici A0 si A1). Microcontroller-ul citeste pozitia acestuia pentru a determina directia sarpelui, calculeaza noua stare a jocului si transmite datele procesate catre display prin SPI. Aceasta conexiune asigura actualizarea elementelor grafice, precum sarpele, meniurile si hartile de joc.
Pentru feedback audio, sistemul include un buzzer pasiv controlat prin semnal PWM. Comunicarea unidirectionala microcontroller-buzzer are rolul de a emite sunete specifice evenimentelor din joc.
Gestionarea timpului si schimbarea hartii sunt realizate cu ajutorul modulului RTC, conectat prin interfata I2C. Acesta functioneaza ca un furnizor de date independent, trimitand informatii despre ora curenta catre microcontroller, in vederea alegerii hartii corespunzatoare.
| Componenta | Cantitate | Link magazin |
|---|---|---|
| Microcontroller de tip Arduino Uno R3 | 1 | Optimus Digital |
| Breadboard 400p | 2 | Optimus Digital |
| Fire mama-tata set 10buc | 2 | Optimus Digital |
| Fire tata-tata set 40buc | 1 | Optimus Digital |
| Modul RTC | 1 | Optimus Digital |
| Joystick analogic | 1 | Sigmanortec |
| Buzzer pasiv | 1 | Bitmi |
| LCD ILI9341 | 1 | Bitmi |
Laboratoare folosite:
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.