Differences

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

Link to this comparison view

pm:prj2023:adarmaz:snake [2023/05/30 14:37]
alex.stanciu
pm:prj2023:adarmaz:snake [2023/05/30 14:53] (current)
alex.stanciu
Line 23: Line 23:
 ==== Schema bloc ==== ==== Schema bloc ====
  
-{{ :​pm:​prj2023:​adarmaz:​snake-schema-bloc.png?600 |}}+{{ :​pm:​prj2023:​adarmaz:​snakeschemablocfinala.jpg?600 |}}
  
  
Line 38: Line 38:
  
 ===== Software Design ===== ===== Software Design =====
-Pentru dezvoltarea software am folosit Arduino IDE, in cadrul caruia am importat libraria U8glib.h pentru comunicarea cu ecranul prin SPI si afisarea tuturor elementelor. Logica este implementata in functia loop() astfel incat sunt 3 stari posibile. Starea de incepere a jocului unde jucatorul trebuie sa apese pe un buton. Odata apasat butonul se intra automat in starea 2 a jocului unde este majoritatea implementarii. Sunt manipulate input-urile jucatorului folosind butoanele si sunt facute diferite verificari (daca acesta isi atinge coada, daca atinge marginile, daca atinge sarpele arduion-ului,​ daca atinge mancarea). Dupa aceste verificari se intra pe fiecare caz in parte si se executa comenzile corespunzatoare descrierii jocului. Este manipulat input-ul Arduino-ului astfel incat sarpele acestuia nu se poate omori singur, nu poate atinge marginile si creste in lungime daca atinge mancarea. Daca vreuna din verificari arata ca jocul trebuie sa se termine (sarpele jucatorului a murit) atunci se intra in starea 3 a jocului de GAME OVER unde este afisat mesajul respectiv si dedesubt se poate observa scorul obtinut in runda respectiva. Pentru ​ +Pentru dezvoltarea software am folosit Arduino IDE, in cadrul caruia am importat libraria U8glib.h pentru comunicarea cu ecranul prin SPI si afisarea tuturor elementelor. Logica este implementata in functia loop() astfel incat sunt 3 stari posibile. Starea de incepere a jocului unde jucatorul trebuie sa apese pe un buton. Odata apasat butonul se intra automat in starea 2 a jocului unde este majoritatea implementarii. Sunt manipulate input-urile jucatorului folosind butoanele si sunt facute diferite verificari (daca acesta isi atinge coada, daca atinge marginile, daca atinge sarpele arduion-ului,​ daca atinge mancarea). Dupa aceste verificari se intra pe fiecare caz in parte si se executa comenzile corespunzatoare descrierii jocului. Este manipulat input-ul Arduino-ului astfel incat sarpele acestuia nu se poate omori singur, nu poate atinge marginile si creste in lungime daca atinge mancarea. Daca vreuna din verificari arata ca jocul trebuie sa se termine (sarpele jucatorului a murit) atunci se intra in starea 3 a jocului de GAME OVER unde este afisat mesajul respectiv si dedesubt se poate observa scorul obtinut in runda respectiva. Pentru ​inceperea unei noi runde se apasa pe butonul al doilea din stanga care ne va aduce inapoi in starea 1, cu toate setarile resetate mai putin highscore-ul care va ramane afisat in aceasta stare.
- +
-===== Rezultate Obţinute =====+
  
 ===== Concluzii ===== ===== Concluzii =====
 +Consider ca rezultatul este unul satisfacator,​ am avut cateva probleme de hardware care mi-au dat cele mai mari batai de cap (lipitul pinilor pe placa ecranului), dar in principiu dupa ce le-am rezolvat, codul a mers destul de repede.
  
 ===== Download ===== ===== Download =====
- +{{:​pm:​prj2023:​adarmaz:​snakegame.zip|}}
-===== Jurnal =====+
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
 +  * [[https://​www.circuitbasics.com/​how-to-use-active-and-passive-buzzers-on-the-arduino/​]]
 +  * [[https://​arduino-tutorials.net/​tutorial/​control-graphic-lcd-display-spi-st7920-128x64-with-arduino]]
 +  * [[https://​content.arduino.cc/​assets/​Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf]]
  
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
  
pm/prj2023/adarmaz/snake.1685446649.txt.gz · Last modified: 2023/05/30 14:37 by alex.stanciu
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