This shows you the differences between two versions of the page.
pm:prj2021:abirlica:snake [2021/05/25 17:51] maria_aurelia.cadar |
pm:prj2021:abirlica:snake [2021/06/01 16:06] (current) maria_aurelia.cadar |
||
---|---|---|---|
Line 1: | Line 1: | ||
===== Snake ===== | ===== Snake ===== | ||
===== Autor ===== | ===== Autor ===== | ||
- | Cadar Maria-Aurelia | + | **Autor**: [[maria_aurelia.cadar@stud.acs.upb.ro|CADAR Maria-Aurelia]] |
===== Introducere ===== | ===== Introducere ===== | ||
Proiectul reprezinta implementarea clasicului joc Snake pe un ecran LCD la care adaug un buzzer pentru a scoate un sunet de fiecare data cand sarpele ajunge la hrana. | Proiectul reprezinta implementarea clasicului joc Snake pe un ecran LCD la care adaug un buzzer pentru a scoate un sunet de fiecare data cand sarpele ajunge la hrana. | ||
===== Descriere generală ===== | ===== Descriere generală ===== | ||
- | Jucatorul poate controla linia ce reprezinta sarpele ce se poate deplasa sus, jos, stanga, dreapta cu ajutorul unor butoane. In implementare am ales sa folosesc biblioteca nokia5110. | + | Jucatorul poate controla linia ce reprezinta sarpele ce se poate deplasa sus, jos, stanga, dreapta cu ajutorul unor butoane. In implementare am ales sa folosesc biblioteca pentru nokia5110. |
=== Schema bloc === | === Schema bloc === | ||
{{:pm:prj2021:abirlica:schemablocaura.png?700|}} | {{:pm:prj2021:abirlica:schemablocaura.png?700|}} | ||
Line 11: | Line 11: | ||
=== Lista de componente === | === Lista de componente === | ||
* Arduino UNO\\ | * Arduino UNO\\ | ||
- | * Breadboard\\ | + | * 2 Breadboard\\ |
* LCD Nokia5110\\ | * LCD Nokia5110\\ | ||
* 5 butoane\\ | * 5 butoane\\ | ||
Line 31: | Line 31: | ||
* BL -> 3V | * BL -> 3V | ||
* GND -> GND | * GND -> GND | ||
- | {{:pm:prj2021:abirlica:snake-linie-2.jpg?500|}}// | + | {{:pm:prj2021:abirlica:snake-linie-2.jpg?500|}}\\ |
- | === Snake === | + | |
- | {{:pm:prj2021:abirlica:snake-linie-1.jpg?400|}}// | + | |
- | Paused:// | + | |
- | {{:pm:prj2021:abirlica:snake-paused.jpg?400|}}// | + | |
- | Game Over:// | + | |
- | {{:pm:prj2021:abirlica:snake-game-over.jpg?400|}}// | + | |
===== Software Design ===== | ===== Software Design ===== | ||
+ | Biblioteci folosite: | ||
+ | * EEPROM.h - folosita pentru a citi anumite valori atunci cand placuta este oprita | ||
+ | * Adafruit_GFX.h - folosita pentru desenarea sarpelui | ||
+ | * Adafruit_PCD8544.h - folosita pentru display-ul Nokia 5110 LCD | ||
+ | Mediul de dezvoltare utilizat a fost Arduino IDE.\\ | ||
+ | \\ | ||
+ | Coordonatele de inceput ale sarpelui le stochez in 2 vectori. Initial sarpele are o lungime predefinita si directia de deplasare, viteza si pozitiile fixate. Verific mereu daca unul dintre butoane este apasat, in cazul in care este apasat, schimb directia de orientare a sarpelui, iar pentru o perioada de timp nu se va mai putea schimba directia. Aceasta perioada de timp, stocata in variabila 'time' reprezinta si viteza sarpelui. In cazul in care niciun buton nu a fost apasat, sarpele inainteaza in directia in care este orientat. Verific constant daca sarpele are coliziune cu oul, in acest caz scorul si lungimea sarpekui cresc, iar buzzer-ul scoate un bipait scurt, iar daca sarpele are coliziune cu el insusi si in acest caz afisez textul "Game over", precum si scorul si high score-ul, iar buzzer-ul scoate un bipait mai lung. O alta functionalitate a jocului este butonul de pauza, care odata apasat, jocul ia o pauza de 5 secunde. | ||
===== Rezultate obtinute ===== | ===== Rezultate obtinute ===== | ||
+ | Snake:\\ | ||
+ | {{:pm:prj2021:abirlica:snake-linie-1.jpg?300|}}\\ | ||
+ | Paused:\\ | ||
+ | {{:pm:prj2021:abirlica:snake-paused.jpg?300|}}\\ | ||
+ | Game Over:\\ | ||
+ | {{:pm:prj2021:abirlica:snake-game-over.jpg?300|}}\\ | ||
+ | |||
+ | Demo: [[https://youtu.be/FGP5dOXqaN8 | Snake]]\\ | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | Am reusit sa realizez clasicul joc Snake pe un ecran de Nokia. Am invatat sa ma documentez despre conectarea pieselor cu Arduino si despre afisarea pe un display. | ||
===== Download ===== | ===== Download ===== | ||
- | <note tip> Documentatia in format PDF este: {{:pm:prj2021:abirlica:snake.pdf|}}\\ | + | <note tip> Documentatia in format PDF este: {{:pm:prj2021:abirlica:cadar_aurelia_334CC_snake.pdf| Snake}}\\ |
+ | Codul proiectului: {{:pm:prj2021:abirlica:cadar_maria_aurelia_334CC.zip| Snake}}\\ | ||
Link pagina: https://ocw.cs.pub.ro/courses/pm/prj2021/abirlica/snake </note>\\ | Link pagina: https://ocw.cs.pub.ro/courses/pm/prj2021/abirlica/snake </note>\\ | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | * Schema electrica a fost realizata folosind [[ https://www.autodesk.com/products/eagle/free-download?plc=F360&term=1-YEAR&support=ADVANCED&quantity=1 | Eagle]]\\ | + | * Schema electrica a fost realizata folosind [[ https://www.autodesk.com/products/eagle/free-download?plc=F360&term=1-YEAR&support=ADVANCED&quantity=1 | Eagle]]\\ |
- | * Schema bloc a fost realizata folosind [[https://www.draw.io]] | + | * Schema bloc a fost realizata folosind [[https://www.draw.io]] |
+ | * [[https://github.com/adafruit/Adafruit-GFX-Library]] | ||
+ | * [[https://github.com/adafruit/Adafruit-PCD8544-Nokia-5110-LCD-library]] | ||
+ | * [[https://www.arduino.cc/en/Reference/EEPROM]] | ||
+ | * [[https://lastminuteengineers.com/nokia-5110-lcd-arduino-tutorial/]] |