Differences

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

Link to this comparison view

pm:prj2022:fstancu:snake [2022/05/02 14:51]
stefan_madalin.toma created
pm:prj2022:fstancu:snake [2022/05/31 17:19] (current)
stefan_madalin.toma
Line 1: Line 1:
 ====== Snake ====== ====== Snake ======
 <​note>​ <​note>​
-Autor: Toma Ștefan-Mădălin \\ Grupa 333CC+Autor: Toma Ștefan-Mădălin \\ Grupa333CC
 </​note>​ </​note>​
  
 ===== Introducere ===== ===== Introducere =====
-:!: TODO + 
-<note tip> +Proiectul constă intr-o implementare ​clasicului joc de [[https://​www.youtube.com/​watch?​v=kZr8sR9Gwag&​ab_channel=OmarGhatasheh|"​Snake"​]]. \\ 
-Prezentarea pe scurt proiectului vostru+Jucătorul controlează un punct pe un plan bidimensional. \\ 
-  * ce face +Pe măsură ce înaintează,​ lasă o urmă, asemănătoare cu un șarpe în mișcare.\\ 
-  ​* ​care este scopul lui +Jucătorul pierde atunci când șarpele lovește granițecranului sau pe sine.\\ 
-  * care fost ideea de la care aţi pornit +Jucătorul încearcă să mănânce iteme lovindu-le cu capul șarpelui. \\ 
-  * de ce credeţi că este util pentru alţii şi pentru voi +Fiecare element consumat crește lungimea șarpelui, astfel încât evitarea coliziunii cu sine devine progresiv mai dificilă.\\ 
-</​note>​+
 ===== Descriere generală ===== ===== Descriere generală =====
-:!: TODO + 
-<note tip> +=== Functionalitati === 
-O schemă bloc cu toate modulele proiectului vostru, atât software cât şi hardware însoţită ​de o descriere ​acestora precum şi a modului în care interacţionează+ 
-Exemplu de schemă bloc: http://www.robs-projects.com/​mp3proj/​newplayer.html +User-ul dispune ​de 4 butoane prin intermediul carora poate sa controleze directia curenta ​sarpelui
-</​note>​+ 
 +La coliziunea sarpelui cu un item lungimea ii va creste cu o unitate. 
 + 
 +La sfarsitul oricarui joc se va afisa score-ul final al jucatorului si se va astepta un input pentru a incepe un nou joc. 
 + 
 + 
 +=== Schema Bloc === 
 +{{:​pm:​prj2022:​fstancu:​schema_bloc_snake.png?700|}} 
 ===== Hardware Design ===== ===== Hardware Design =====
-:!TODO + 
-<note tip> +==== Bill of Materials ==== 
-</​note>​+^ Denumire Piesa         ​                                                                                                   ^ Cantitate ^ 
 +| Arduino Uno       ​  ​  ​  ​                                                                                             |  1      | 
 +| Butoane ​        ​                                                                                                       |  4      | 
 +| [[https://​www.optimusdigital.ro/​ro/​optoelectronice-matrice-de-led-uri/​2395-modul-cu-matrice-led-max7219-versiunea-smd.html?​search_query=Modul+cu+Matrice+LED+MAX7219+%28versiunea+SMD%29&​results=1|Matrice LED MAX7219]] ​                         |  4        | 
 +| Fire Mama-Tata    ​                                                                                                     |  ?      | 
 +| Fire Tata-Tata    ​                                                                                                     |  ?      | 
 +| Rezistente 100 KΩ  ​                                                                                                     |  5      | 
 + 
 + 
 +==== Schema Breadboard ==== 
 +{{:pm:​prj2022:​fstancu:​schema_breadboard_snake.png?​700|}} 
 +==== Schema Electrica ==== 
 +{{:​pm:​prj2022:​fstancu:​schema_electrica_snake.png?​700|}} 
 + 
 + 
 ===== Software Design ===== ===== Software Design =====
-:!TODO + 
-<note tip> +Medii de dezvoltare: 
-</​note>​+  * Arduino IDE, VS Code 
 +  * Fritzing - Schema electrica 
 +  * Creately - Schema bloc 
 + 
 + 
 +Se folosesc urmatoarele 2 librarii
 +  * LEDMatrixMagic  
 +    * o versiune stripped down a librariei LedControl 
 +    * este folosita pentru interfatarea cu grid-ul de matrici led prin protocolul SPI 
 +  * Snake (librarie proprie) contine implementarea claselor:  
 +      * Game  - o entitate care se ocupa de interpretarea input-ului, logica jocului de snake si rendare 
 +      * Snake - o lista + o functie de inaintare pe directia "​direction"​ 
 +      * List  - implementarea unei liste simplu inlantuite 
 + 
 +Citirea si interpretarea inputului se face in functia loop(). 
 +Timer-ul 1 se ocupa cu verificarea restrictiilor jocului si automat de rendarea pe ecran la fiecare secunda. Procesului de rendare a fost optimizat prin pastrarea tuturor LED-urilor aprinse. Astfel singurele exceptii cand interactiunea cu interfata LEDMatrixMagic este necesara sunt:  
 +  * un nou item este generat 
 +  * la fiecare miscare a sarpelui 
 +    * casuta in care se afla coada sarpelui se stinge 
 +    * capul inainteaza intr-o noua casuta (exceptie cand casuta contine un item) 
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
-:!: TODO +<html
-<note tip+<iframe width="​720"​ height="​415"​ 
-Care au fost rezultatele obţinute în urma realizării proiectului vostru+src="​https://​www.youtube.com/​embed/​1SMQvu_6fkM">​ 
-</note>+</iframe> 
 +</​html>​ 
 ===== Concluzii ===== ===== Concluzii =====
 :!: TODO :!: TODO
-<note tip> 
-</​note>​ 
  
 ===== Download ===== ===== Download =====
-:!: TODO + 
-<note warning> +[[https://github.com/​Stefan9283/​Snake|Repo Cod]] \\ 
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectuluisurse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-)+{{:pm:prj2022:fstancu:snake-sourcecode.zip|Source Code}} 
-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>​+
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
-:!: TODO + 
-<​note>​ +[[https://​www.youtube.com/​watch?​v=2kr5A350H7E&​ab_channel=SparkFunElectronics|Video despre Timer Interrupts]] \\ 
-Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware+[[https://​datasheets.maximintegrated.com/​en/​ds/​MAX7219-MAX7221.pdf|Datasheet Matrici LED]] \\ 
-</note>+[[http://​wayoda.github.io/​LedControl/​|Documentatie LedControl]] 
pm/prj2022/fstancu/snake.1651492302.txt.gz · Last modified: 2022/05/02 14:51 by stefan_madalin.toma
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