This shows you the differences between two versions of the page.
pm:prj2021:alazar:snake [2021/06/02 21:58] ccristescu |
pm:prj2021:alazar:snake [2021/06/03 15:56] (current) ccristescu [Bibliografie/Resurse] |
||
---|---|---|---|
Line 8: | Line 8: | ||
până la lovirea unui perete sub forma de obstacol. Am ales acest joc deoarece este printe primele jocuri încercate \\ | până la lovirea unui perete sub forma de obstacol. Am ales acest joc deoarece este printe primele jocuri încercate \\ | ||
de mine, iar cerințele sale corespund acestui tip de proiect. Utilitatea acestuia în prezent nu este una sugestivă, \\ | de mine, iar cerințele sale corespund acestui tip de proiect. Utilitatea acestuia în prezent nu este una sugestivă, \\ | ||
- | dar consider că ,în funcție de dificultate, te obligă ca utilizator să inveti să menții un nivel de concentrare ridicat \\ | + | dar consider că ,în funcție de dificultate, te obligă ca utilizator să inveți să menții un nivel de concentrare ridicat \\ |
- | si iți antrenează anumite reflexe. | + | și iți antrenează anumite reflexe. |
==== Descriere Generală ==== | ==== Descriere Generală ==== | ||
- | Pentru realizarea funcționalității, se va folosi un modul analog joystick care are rolul de a muta sarpele \\ | + | Pentru realizarea funcționalității, se va folosi un modul analog joystick care are rolul de a muta șarpele \\ |
- | în toate directiile, sus-jos, stanga-dreapta în timp ce segmentul corpului sau este în continua translație \\ | + | în toate directiile, sus-jos, stânga-dreapta în timp ce segmentul corpului său este în continuă translație \\ |
într-un sens. Display-ul care va afișa simularea va fi un modul cu matrice de LED-uri bazat pe un driver \\ | într-un sens. Display-ul care va afișa simularea va fi un modul cu matrice de LED-uri bazat pe un driver \\ | ||
max7219 conectat la alte câteva componente cum ar fi o rezistență, condensatoare, pin headers. \\ | max7219 conectat la alte câteva componente cum ar fi o rezistență, condensatoare, pin headers. \\ | ||
Line 47: | Line 47: | ||
=== Setup() === | === Setup() === | ||
- | Realizează inițializările pinilor, ledurilor de pe matrice, recalibreaza poziția de pornire \\ | + | Realizează inițializările pinilor, ledurilor de pe matrice, recalibrează poziția de pornire \\ |
a Analog Joystickului și stabilește poziția șarpelui pe ecran. \\ | a Analog Joystickului și stabilește poziția șarpelui pe ecran. \\ | ||
=== Loop() === | === Loop() === | ||
- | Scorul va fi afisat secvential la serial monitor, urmand ca apoi sa se genereze mancarea in functie \\ | + | Scorul va fi afișat secvențial la serial monitor, urmând ca apoi să se genereze mâncarea în funcție \\ |
- | de pozitiile segmentului sarpelui. In continuare, se vor prelua inputurile din stick si se stabileste \\ | + | de pozițiile segmentului șarpelui. În continuare, se vor prelua inputurile din stick și se stabilește \\ |
- | urmatoarea directie, verificand in acelasi timp daca sensul ales este la 180 de grade fata de cel \\ | + | următoarea direcție, verificând în același timp dacă sensul ales este la 180 de grade față de cel \\ |
- | precedent pentru ca respectiva "coliziune" sa fie invalida si jocul sa mearga mai departe. Ulterior, \\ | + | precedent pentru ca respectiva "coliziune" să fie invalidă și jocul să mearga mai departe. Ulterior, \\ |
- | se vor prelucra datele jocului, se actualizeaza lungimea sarpelui, se va verifica daca jocul s-a finalizat, \\ | + | se vor prelucra datele jocului, se actualizează lungimea șarpelui, se va verifica dacă jocul s-a finalizat, \\ |
- | se vor aprinde si stinge ledurile secvential, generand miscarea pe ecran. Buzzerul se va activa dupa ce marul \\ | + | se vor aprinde și stinge ledurile secvențial, generând mișcarea pe ecran. Buzzerul se va activa dupa ce mărul \\ |
- | a fost mancat si dupa ce translatia sarpelui s-a realizat. La finalul unui "frame" din loop, se verifica daca \\ | + | a fost mâncat și după ce translația șarpelui s-a realizat. La finalul unui "frame" din loop, se verifică dacă \\ |
- | jocul s-a castigat sau pierdut, in acest caz, reinitializandu-se toate variabilele din joc, iar ecranul \\ | + | jocul s-a caștigat sau pierdut, în acest caz, reinițializându-se toate variabilele din joc, iar ecranul \\ |
- | "va clipi" de 5 ori. | + | "va clipi" de 5 ori ca un efect de resetare a jocului. |
==== Rezultate Obtinute ==== | ==== Rezultate Obtinute ==== | ||
+ | {{:pm:prj2021:alazar:cristi_cristescu:rezultat.jpeg?600|}} | ||
+ | |||
+ | Pot spune că am realizat ce mi-am propus de la început, nefiind ceva ieșit din comun. Dificultățile \\ | ||
+ | le-am avut lucrând cu piesele, inițial lucram cu un Arduino Nano pe care îl legam direct de breadboard, \\ | ||
+ | însă, deși am legat toți pinii cum trebuia, unele inputuri, chiar și alimentarea, nu funcționau cum trebuie \\ | ||
+ | și nu îmi dădeam seama câte greșeli sunt în cod sau în schemă. Până la urmă, am scos Nano-ul din breadboard \\ | ||
+ | și l-am legat direct cu fire, însă mai târziu, problema era că nu mai aveam suficiente fire pentru toate \\ | ||
+ | componentele ca să le leg de placă, așa că am trecut la Uno (dispuneam de mai multe fire tată-tată). \\ | ||
+ | |||
+ | Video cu demo-ul: [[https://www.youtube.com/watch?v=-oH9Ae4ZTDY|ProiectSnake]] | ||
==== Concluzii ==== | ==== Concluzii ==== | ||
+ | |||
+ | A fost interesant să lucrez cu componente fizice, dincolo de toate temele și proiectele software \\ | ||
+ | din facultate. Personal, nu sunt mare fan al electronicilor, dar cumva proiectul acesta a reaprins \\ | ||
+ | o speranță pentru sistemele embedded în viziunea mea, ele oferind aplicații interesante, \\ | ||
+ | chiar utilități oamenilor. \\ | ||
==== Download ==== | ==== Download ==== | ||
+ | |||
+ | {{:pm:prj2021:alazar:cristi_cristescu:cristescu_cristian_335ca_proiect_pm.zip|}} | ||
==== Jurnal ==== | ==== Jurnal ==== | ||
+ | |||
+ | 25.04.2021 : Alegerea proiectului \\ | ||
+ | 26.05.2021 : Inceperea partii software \\ | ||
+ | 27.05.2021 : Inceperea partii hardware \\ | ||
+ | 1.06.2021 : Finalizarea partilor hardware si software \\ | ||
+ | 2.06.2021 - 3.06.2021 : Realizarea documentatiei \\ | ||
==== Bibliografie/Resurse ==== | ==== Bibliografie/Resurse ==== | ||
- | {{:pm:prj2021:alazar:snake.pdf|}} | + | |
+ | https://github.com/wayoda/LedControl/blob/master/src/LedControl.cpp \\ | ||
+ | https://howtomechatronics.com/tutorials/arduino/8x8-led-matrix-max7219-tutorial-scrolling-text-android-control-via-bluetooth/ \\ | ||
+ | https://create.arduino.cc/projecthub/rishab8551/arduino-snake-game-using-arduino-and-martix-6c230c \\ | ||
+ | https://majicdesigns.github.io/MD_MAX72XX/page_parola.html \\ | ||
+ | |||
+ | {{:pm:prj2021:alazar:cristi_cristescu:snake.pdf|}} \\ |