This shows you the differences between two versions of the page.
pm:prj2021:dbrigalda:endlessrunnermatrix [2021/05/26 23:25] rares.popescu0807 [Descriere generală] |
pm:prj2021:dbrigalda:endlessrunnermatrix [2021/06/02 19:00] (current) rares.popescu0807 [Download] |
||
---|---|---|---|
Line 21: | Line 21: | ||
-cand colectam un colectabil activam buzzerul pentru o scurta perioada si updatam scorul de pe LCD\\ | -cand colectam un colectabil activam buzzerul pentru o scurta perioada si updatam scorul de pe LCD\\ | ||
-cand lovim un obstacol activam buzzerul pentru o perioada mai lunga, afisam pe LCD "Game over" si restartam jocul\\ | -cand lovim un obstacol activam buzzerul pentru o perioada mai lunga, afisam pe LCD "Game over" si restartam jocul\\ | ||
+ | \\ | ||
+ | Cand incepe jocul, pe matricea de leduri este afisat mesajul "GO" din pixeli.\\ | ||
+ | \\ | ||
+ | Jocul poate fi restartat apasand butonul de pe placuta.\\ | ||
+ | \\ | ||
+ | |||
==== Schema bloc ==== | ==== Schema bloc ==== | ||
{{:pm:prj2021:dbrigalda:schemabloc69.png?700|}} | {{:pm:prj2021:dbrigalda:schemabloc69.png?700|}} | ||
Line 30: | Line 36: | ||
| Matrice leduri 8x8 | 1 | | | Matrice leduri 8x8 | 1 | | ||
| Buzzer | 1 | | | Buzzer | 1 | | ||
- | | LED-uri | 2 | | ||
- | | Butoane | 2 | | ||
| LCD | 1 | | | LCD | 1 | | ||
| Breadboard | 1 | | | Breadboard | 1 | | ||
+ | \\ | ||
+ | Placuta Arduino face toate calculele.\\ | ||
+ | Joystickul este sursa de input pe care o folosim pentru a controla caracterul nostru.\\ | ||
+ | Pe matricea de Leduri este afisata harta in timp real, updatandu-se periodic, pentru fiecare schimbare.\\ | ||
+ | Buzzerul este o componenta de output care semnaleaza sonor evenimente din joc.\\ | ||
+ | Breadbordul faciliteaza crearea circuitului.\\ | ||
===== Software Design ===== | ===== Software Design ===== | ||
+ | \\ | ||
+ | Pentru a dezvolta codul necesar proiectului am folosit Arduino IDE. | ||
+ | Pentru matricea de leduri si pentru LCD a fost nevoie de o cate o biblioteca: Adafruit_NeoPixel.h si LiquidCrystal_I2C.h. De asemenea am adaugat si biblioteca wire.h.\\ | ||
+ | Pentru personaj, obstacole, si colectabil a fost nevoie sa folosesc cate o pereche de variabile pentru coordonate.\\ | ||
+ | Pentru culoare e nevoie de 3 numere pt RGB.\\ | ||
+ | Pentru mesajul GO am folosit matricea go.\\ | ||
+ | Pentru a transpune usor coordonatele in numarul care corespunde pixelului de pe matrice dorit am folosit matricea light.\\ | ||
+ | Pentru a accesa matricea de leduri am folosit strip.\\ | ||
+ | Pentru a accesa LCDul am folosit lcd.\\ | ||
+ | Variabila speedS este folosita pentru a controla intervalul la care se fac updeturi, deci cat de repede se misca jocul.\\ | ||
+ | Functiile folosite sunt:\\ | ||
+ | RANDOM pentru a calcula niste pozitii ale obstacolelor si colectabilului care sa nu se suprapuna\\ | ||
+ | myDelay pentru a astepta inputul joystickului.\\ | ||
+ | joyStick pentru a determina directia in care e indreptata maneta.\\ | ||
+ | gameOver pentru a anunta ca jocul a fost pierdut si pentru a pregati jocul pentru restart.\\ | ||
+ | mobile pentru a misca pixelul care reprezinta caracterul nostru doar daca maneta era indreptata in sus sau in jos.\\ | ||
+ | displays pentru a afisa harta pe matricea de leduri.\\ | ||
+ | shiftMap pentru a face obstacolele si colectabilele sa se apropie de noi si pentru a verifica coliziunile.\\ | ||
+ | |||
===== Rezultate obtinute ===== | ===== Rezultate obtinute ===== | ||
+ | Rezultate obtinute se pot vedea cel mai bine in videoclipul de prezentare de la adresa\\ | ||
+ | [[https://www.youtube.com/watch?v=Un7D3QY8qws&ab_channel=Rares9913]]. | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | |||
+ | Sunt incantat ca am avut ocazia de a lucra cu o placuta arduino. | ||
===== Download ===== | ===== Download ===== | ||
+ | sursa: {{:pm:prj2021:dbrigalda:er.zip|}} | ||
===== Jurnal ===== | ===== Jurnal ===== | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
+ | Am folosit documentatiile pentru diferite componente si functii sau am cautat pe google tutoriale.\\ | ||
+ | M-am uitat si pe mai multe implementari de snake, pe arduino sau doar in C, ca punct de plecare.\\ |