Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2024:avaduva:ioana.dabelea [2024/05/02 12:51]
ioana.dabelea [Software Design]
pm:prj2024:avaduva:ioana.dabelea [2024/05/27 16:51] (current)
ioana.dabelea [Bibliografie/Resurse]
Line 1: Line 1:
 ====== Snake Game ====== ====== Snake Game ======
 +  * Nume: Dabelea Ioana-Viviana
 +
 +  * Grupa: 333CB
 ===== Introducere ===== ===== Introducere =====
  
Line 16: Line 19:
 ===== Hardware Design ===== ===== Hardware Design =====
  
-Lista piese+==Lista piese==
   * Placa de Dezvoltare Compatibila cu Arduino UNO R3 (ATmega328p + ATmega16u2)   * Placa de Dezvoltare Compatibila cu Arduino UNO R3 (ATmega328p + ATmega16u2)
   * Breadboard HQ   * Breadboard HQ
Line 24: Line 27:
   * Buzzer   * Buzzer
  
 +==Schema circuit:==
 +
 +{{:​pm:​prj2024:​avaduva:​schema_circuit_snake.jpg?​200|}}
 +
 +==Schem electrica:​==
 +
 +{{:​pm:​prj2024:​avaduva:​schema_electrica_snake.jpg?​200|}}
  
 ===== Software Design ===== ===== Software Design =====
  
 Mediu de Dezvolate: Arduino IDE Mediu de Dezvolate: Arduino IDE
-Biblioteci utilizate: LedControl 
  
-<​note ​tip> +Biblioteci Utilizate 
-Descrierea codului aplicaţiei ​(firmware): +  * SD.h: Pentru interacțiunea cu cardul SD. 
-  * mediu de dezvoltare ​(if any) (e.g. AVR StudioCodeVisionAVR+  * TMRpcm.h: Pentru redarea fișierelor audio de pe cardul SD. 
-  * librării şi surse 3rd-party (e.g. Procyon AVRlib+  * SPI.h: Protocol de comunicație pentru cardul SD. 
-  * algoritmi şi structuri pe care plănuiţsă le implementaţi +  * LedControl.h:​ Controlul afișajului LED de tip matrice. 
-  * (etapa 3surse şi funcţii implementate +===== Descriere Implementare ===== 
-</​note>​+ 
 +Implementarea jocului a fost facuta in mai multi pasi: 
 + 
 +  *  am creat structura sarpelui ​(doi vectori care contin coordonatele cozii pe OX si OY si doua variabile ​
 +  *  am gandit modul de deplasare al sarpelui, folosindu-ma de directa capului 
 +  *  am randomizat locul unde apare "​mancarea",​ pentru a creste dificultatea jocului 
 +  *  cu ajutorul unui card SD am pastrat intr-un fisier date despre sesiunea de joc curenta ​(scor, timp, numar de schimbari de directie) 
 + 
 + 
 +Funcții de Setup 
 +  * setup(): Funcția principală de setup care configurează piniafișajul LED, poziția inițială a șarpelui și a mâncării. 
 +  * setupSnakePosition(): Setează poziția inițială a șarpelui random. 
 +  * setupFoodPosition():​ Setează poziția mâncării într-o locație 
 +  * setupLedBoard(): Configurează afișajul LED. 
 +  * setupSpeaker():​ Configurează modulul de sunet șverifică cardul SD. 
 +  * setupPins(): Configurează pinul joystick-ului.
  
 +Funcții de Control al Jocului
 +  * playGameOverSong():​ Redă sunetul specific când jocul s-a terminat.
 +  * playFoodEatenSong():​ Redă sunetul specific când șarpele mănâncă mâncarea.
 +  * startGame():​ Funcția principală care gestionează logica jocului, inclusiv verificarea coliziunilor,​ actualizarea direcției șarpelui, gestionarea mâncării și actualizarea afișajului.
 +  * manageGameOver():​ Verifică dacă șarpele s-a ciocnit cu propria coadă.
 +  * manageSnakeOutOfBounds():​ Asigură că șarpele revine pe partea opusă a afișajului dacă iese din limite.
 +  * manageSnakeTailCoordinates():​ Actualizează coordonatele cozii șarpelui.
 +  * manageEatenFood():​ Verifică dacă șarpele a mâncat mâncarea și actualizează scorul și dimensiunea șarpelui.
 +  * setJoystickDirection():​ Setează direcția șarpelui pe baza input-ului de la joystick.
 +  * changeSnakeDirection():​ Modifică direcția șarpelui pe baza valorii setate de joystick.
 +  * showGameOverScreen():​ Afișează ecranul de game over și resetează variabilele de joc.
 +  * resetVariables():​ Resetează variabilele jocului la valorile inițiale.
 +  * showLed() și hideLed(): Aprinde sau stinge un LED specific de pe afișaj.
 +  * drawSnake():​ Desenează șarpele și mâncarea pe afișajul LED.
 +  * writeGameStatistic():​ Scrie in fisierul de pe cardul SD detalii despre sesiunea de joc.
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-<note tip> +Aici puteti vedea un mic demo al proiectului: 
-Care au fost rezultatele obţinute în urma realizării ​proiectului ​vostru. +https://​drive.google.com/​file/​d/​1U9VoSO2mxLfDXYwqWxczZuNfrsVp1DXv/​view?​usp=sharing
-</note> +
 ===== Concluzii ===== ===== Concluzii =====
  
 ===== Download ===== ===== Download =====
  
-<note warning>​ +soon..
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului:​ surse, scheme, etcUn 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**. +
-</​note>​ +
 ===== Jurnal ===== ===== Jurnal =====
  
Line 60: Line 92:
 </​note>​ </​note>​
  
-===== Bibliografie/​Resurse ===== 
- 
-<​note>​ 
-Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. 
-</​note>​ 
  
-<​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ 
pm/prj2024/avaduva/ioana.dabelea.1714643460.txt.gz · Last modified: 2024/05/02 12:51 by ioana.dabelea
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