This shows you the differences between two versions of the page.
pm:prj2021:abirlica:snake [2021/05/25 18:02] maria_aurelia.cadar |
pm:prj2021:abirlica:snake [2021/06/01 16:06] (current) maria_aurelia.cadar |
||
---|---|---|---|
Line 5: | Line 5: | ||
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 35: | Line 35: | ||
===== 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:\\ | Snake:\\ | ||
Line 42: | Line 49: | ||
Game Over:\\ | Game Over:\\ | ||
{{:pm:prj2021:abirlica:snake-game-over.jpg?300|}}\\ | {{: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/]] |