Differences

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

Link to this comparison view

pm:prj2021:amocanu:snake [2021/05/28 11:16]
andrei.mutu [Software Design]
pm:prj2021:amocanu:snake [2021/06/01 12:19] (current)
andrei.mutu [Bibliografie/Resurse]
Line 30: Line 30:
 ==== Schema electrica ==== ==== Schema electrica ====
 {{ schema_electrica_snake.jpeg?​700x500}} {{ schema_electrica_snake.jpeg?​700x500}}
 +
 +{{ naked_snake.jpeg?​700x700 }}
  
 ===== Software Design ===== ===== Software Design =====
 Descrierea codului aplicației:​ Descrierea codului aplicației:​
   * mediu de dezvoltare: Arduino IDE   * mediu de dezvoltare: Arduino IDE
-  * librării ​şi surse 3rd-party:  +  * librarii ​şi surse 3rd-party:  
-    * Wire.h +    * <Wire.h> 
-    * SPI.h +    * <SPI.h> 
-    * I2Cdev.h +    * <I2Cdev.h> 
-    * MPU6050.h +    * <MPU6050.h> 
-    * Adafruit_GFX.h +    * <Adafruit_GFX.h> 
-    * Adafruit_ST7735.h+    * <Adafruit_ST7735.h
 +  * algoritmi si structuri de date: 
 +    * logica simpla (if, while, for) 
 +    * structuri de baza C: variabile, constante 
 +    * structura Pair: retine coordonatele unui segment de sarpe alaturi de directia de deplasare 
 +  * surse si functii implementate:​ 
 +    * check_movement(int last_direction):​ citeste input-ul de la accelerometru si decodifica directia de deplasare 
 +    * generate_random_fruit():​ genereaza un nou fruct pe harta 
 +    * check_fruit_colision():​ verifica coliziunea cu fructul de pe harta 
 +    * get_highest_snake_part_on_y():​ returneaza elementul din sarpe cel mai aproape de marginea superioara a ecranului 
 +    * snake_falling_down():​ animatia de cadere a sarpelui dupa terminarea jocului 
 +    * check_walls_colision():​ verifica coliziunea cu marginile hartii 
 +    * move_snake():​ miscarea sarpelui, capul sarpelui este cel ce influenteaza directia, iar restul elementelor preiau pozitia elemtenlor de dinaintea lor 
 +    * setup(void):​ intializam lcd-ul si accelerometrul,​ afisam elementele incipiente, generam capul sarpelui cu pozitie si directie aleatoare 
 +    * clear_screen_horizontal():​ curata ecranul cu linii orizontale 
 +    * clear_screen_vertical():​ curata ecranul cu linii verticale 
 +    * clear_screen():​ genereaza aniamtia de curatare a ecranului folosind functiile de curatare 
 +    * loop(): verifica daca jocul s-a terminat si porneste animatia de final de joc, iar in cazul contrat continue sa genereze fructe si sa actioneze miscarea sarpelui 
 +    * print_end():​ printam mesajul de final de joc 
 +    * print_message(String txt, int xPos, int yPos): printam un mesaj la anumite coordonate pe ecran 
 +    * print_snake_logo():​ printam titlul jocului intr-un mod circular prin schimbarea orientarii 
 +    * print_snake_logo_orientation(int i): printam titlul jocului cu o culoare diferita in functie de orientare 
 + 
 +=====  Rezultate obtinute ===== 
 +[[https://​github.com/​mandrei12/​pm|Cod sursă]] \\ 
 +[[https://​www.youtube.com/​watch?​v=XMZUxWBAQOw|Demo]] 
 +=====  Concluzii ===== 
 +Proiectul la PM a fost o experienta interesanta,​ pe de o parte a fost o provocare destul de incurcata, iar pe de alta a fost o modalitate placuta de a invata tehnologii noi. Din punct de vedere hardware proiectul nu a fost foarte complex, insa provocarea a fost modalitatea de prezentare: cum poate fi prezentat intr-o cutie cat mai mica. Provocarea de compensare a complexitatii proiectului a venit in aspectul estetic al acestuia, efect realizat prin variate functii ce joaca rol de eye-candy. In final pot spune ca a fost o experienta care a meritat in mod clar si cel mai suprinzator lucru a fost ca este mult mai usor sa faci un joc decat sa joci un joc, sau sa il calibrezi sa fie usor de jucat.
 =====  Bibliografie/​Resurse ===== =====  Bibliografie/​Resurse =====
   * https://​www.youtube.com/​watch?​v=xDgwxYMmhGI   * https://​www.youtube.com/​watch?​v=xDgwxYMmhGI
 +  * https://​www.youtube.com/​watch?​v=wTfSfhjhAU0
 +  * https://​cdn-learn.adafruit.com/​downloads/​pdf/​adafruit-gfx-graphics-library.pdf
 +  * https://​chrishewett.com/​blog/​true-rgb565-colour-picker/​
  
  
pm/prj2021/amocanu/snake.1622189776.txt.gz · Last modified: 2021/05/28 11:16 by andrei.mutu
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