Differences

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

Link to this comparison view

pm:prj2021:alazar:snake_the_game [2021/05/31 21:36]
tiberiu.celeapca [Snake - The Game]
pm:prj2021:alazar:snake_the_game [2021/06/01 20:41] (current)
tiberiu.celeapca [Jurnal]
Line 12: Line 12:
   * Pe matricea LED 8x8 va fi afișat jocul   * Pe matricea LED 8x8 va fi afișat jocul
  
-==== Schema bloc====+==== Schema bloc ====
  
 {{ :​pm:​prj2021:​alazar:​pm_schema_bloc.png }} {{ :​pm:​prj2021:​alazar:​pm_schema_bloc.png }}
Line 36: Line 36:
 **VCC** conectat la **5V** \\ **VCC** conectat la **5V** \\
 **SW** neconectat **SW** neconectat
- 
----- 
  
 ---- ----
Line 57: Line 55:
 \\ \\
  
-=== Schema electrică===+=== Schema electrică === 
 +{{ :​pm:​prj2021:​alazar:​schema_electrica_snake.png?​direct&​700 |}}
  
 ===== Software Design ===== ===== Software Design =====
Line 77: Line 76:
 };</​code>​ };</​code>​
 \\ \\
-În etapa de **setup**, se inițializează matricea și coordonatele capului șarpelui (în mod random) și se afișează mesajul **SNAKE - THE GAME** pe matricea LED.\\+În etapa de **setup**, se inițializează matricea și coordonatele capului șarpelui (în mod random) și se afișează mesajul ​**SNAKE - THE GAME**” pe matricea LED.\\
 În etapa **loop**, se generează mâncarea în mod random, se citesc datele primite de la joystick, se calculează pozițiile șarpelui și se verifică dacă, între timp, s-a ajuns în starea **Game Over**.\\ În etapa **loop**, se generează mâncarea în mod random, se citesc datele primite de la joystick, se calculează pozițiile șarpelui și se verifică dacă, între timp, s-a ajuns în starea **Game Over**.\\
-În cazul în care se ajunge în starea **Game Over** (din pricina faptului că șarpele și-a mușcat propria coadă, se afișează pe matrice mesajul **GAME OVER** și se reinițializează jocul: mâncarea este pusă într-un loc random și capul șarpelui la fel. Inițial, șarpele are lungime 3 (trei leduri luminoase).+În cazul în care se ajunge în starea **Game Over** (din pricina faptului că șarpele și-a mușcat propria coadă, se afișează pe matrice mesajul ​**GAME OVER**” și se reinițializează jocul: mâncarea este pusă într-un loc random și capul șarpelui la fel. Inițial, șarpele are lungime 3 (trei leduri luminoase).\\ 
 +\\ 
 +\\ 
 +**Funcții:​** 
 +<​code>​ 
 +// generează mâncarea random 
 +void generateFood();​ 
 + 
 +// citește datele trimise de joystick și setează direcția 
 +void scanJoystick();​ 
 + 
 +// calculează mișcările șarpelui, verifică dacă acesta a ajuns pe poziția mâncării 
 +// și transmite un ton prin buzzer în caz afirmativ 
 +void calculateSnake();​ 
 + 
 +// dacă șarpele iese din ecran, acesta apare în cealaltă parte 
 +void fixEdge();​ 
 + 
 +// verifică dacă jocul a ajuns în starea „Game Over” 
 +void checkIfOver();​ 
 + 
 +// reinițializează matricea și jocul 
 +void reinit(); 
 + 
 +// clipește ecranul de 7 ori și se sting ledurile care indicau poziția șarpelui 
 +void clearSnake();​ 
 + 
 +// funcție folosită pentru afișarea mișcărilor pe serială 
 +void debugInSerial();​ 
 + 
 +// afișează mesajul „SNAKE - THE GAME” pe matrice 
 +void showStartMessage();​ 
 + 
 +// afișează mesajul „GAME OVER” pe matrice 
 +void showGameOverMessage();​ 
 +</​code>​
 ===== Rezultate Obținute ===== ===== Rezultate Obținute =====
 +== Fotografii ==
 +\\
 +{{ :​pm:​prj2021:​alazar:​snake_the_game_1.jpg?​direct&​600 |}}
 +\\
 +{{ :​pm:​prj2021:​alazar:​snake_the_game_2.jpg?​direct&​600 |}}
 +\\
 +{{ :​pm:​prj2021:​alazar:​snake_the_game_3.jpg?​direct&​600 |}}
 +\\
 +\\
 +== Video ==
 +[[https://​youtu.be/​org8-QNjwCw | Snake - The Game (Demo)]]
 ===== Concluzii ===== ===== Concluzii =====
 +Dezvoltarea proiectului a fost o experiență plăcută pentru mine, am învățat mai multe despre Arduino, matrice LED, joystick și buzzer. Cu siguranță pot fi adăugate mai multe funcționalități,​ poate chiar mai multe matrici led pentru a face terenul mai mare.\\
 +Per total, consider că mi-a ieșit bine și sunt mulțumit de output.
 ===== Download ===== ===== Download =====
 +{{:​pm:​prj2021:​alazar:​snake_the_game_implementation.zip}}
 ===== Jurnal ===== ===== Jurnal =====
 +25/04/2021 -> confirmarea proiectului;​ realizarea paginii wiki, a introducerii și a schemei bloc
 +
 +29/05/2021 -> realizare software design
 +
 +29/05/2021 -> realizare hardware design
 +
 +30/05/2021 -> actualizare proiect (hardware + software)
 +
 +30/05/2021 -> finalizare implementări hardware și software
 +
 +31/05/2021 -> actualizare pagină wiki
 +
 +01/06/2021 -> finalizare pagină wiki
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
-  * {{:pm:prj2021:alazar:snake_the_game.pdf|}}+  * [[https://​ocw.cs.pub.ro/​courses/​pm/prj2021/alazar/​snake_the_game?​do=export_pdf | snake_the_game.pdf]] 
 +  * [[https://​components101.com/​modules/​joystick-module]] 
 +  * [[https://​components101.com/​displays/​8x8-led-matrix-module]] 
 +  * [[https://​github.com/​wayoda/​LedControl]] 
 +  * [[https://​create.arduino.cc/​projecthub/​rishab8551/​arduino-snake-game-using-arduino-and-martix-6c230c]] 
 +  * [[https://​howtomechatronics.com/​tutorials/​arduino/​8x8-led-matrix-max7219-tutorial-scrolling-text-android-control-via-bluetooth/​]]
  
pm/prj2021/alazar/snake_the_game.1622486174.txt.gz · Last modified: 2021/05/31 21:36 by tiberiu.celeapca
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