This shows you the differences between two versions of the page.
|
pm:prj2023:apredescu:runbillyrun [2023/05/30 08:52] adina.amzarescu [Software Design] |
pm:prj2023:apredescu:runbillyrun [2023/05/30 12:33] (current) adina.amzarescu [Software Design] |
||
|---|---|---|---|
| Line 20: | Line 20: | ||
| "Flow" [[https://en.wikipedia.org/wiki/Flow_(psychology)|[1]]]. Alegerile utilizatorului creeaza rezultate rapid, iar astfel acesta se simte | "Flow" [[https://en.wikipedia.org/wiki/Flow_(psychology)|[1]]]. Alegerile utilizatorului creeaza rezultate rapid, iar astfel acesta se simte | ||
| "skilled", rezultand intr-o oarecare dependenta de acest tip de jocuri. | "skilled", rezultand intr-o oarecare dependenta de acest tip de jocuri. | ||
| + | |||
| + | Laboratoare utilizate: | ||
| + | |||
| + | 1. USART. Digital Debugging | ||
| + | |||
| + | 2. Analog Digital Convertor (ADC) pentru leduri | ||
| + | |||
| + | 3. Întreruperi hardware. Întreruperi externe pentru joystick | ||
| + | |||
| + | 4. I2C (Inter-Integrated Circuit) pentru LCD | ||
| ===== Descriere generală ===== | ===== Descriere generală ===== | ||
| Line 25: | Line 35: | ||
| Schema bloc a proiectului: | Schema bloc a proiectului: | ||
| - | {{:pm:prj2023:apredescu:schema_run_billy_run.png?600|}} | + | {{:pm:prj2023:apredescu:schema_bloc_run_billy_runn.png?600|}} |
| + | |||
| Jocul este o varianta a unui joc de tipul "endless runner". Jocul se va desfasura pe un LCD 16x2, utilizatorul va controla | Jocul este o varianta a unui joc de tipul "endless runner". Jocul se va desfasura pe un LCD 16x2, utilizatorul va controla | ||
| Line 34: | Line 46: | ||
| ===== Hardware Design ===== | ===== Hardware Design ===== | ||
| + | |||
| + | Schema electrica: | ||
| + | |||
| + | {{:pm:prj2023:apredescu:schema_run_billy_run.png?600|}} | ||
| **Componentele principale:** | **Componentele principale:** | ||
| Line 81: | Line 97: | ||
| * VRx -> D2 | * VRx -> D2 | ||
| - | __Buzzer:__ | + | __Alert Buzzer:__ |
| * - -> GND | * - -> GND | ||
| * + -> D10 | * + -> D10 | ||
| + | |||
| + | __Music Buzzer:__ | ||
| + | |||
| + | * - -> GND | ||
| + | * + -> D7 | ||
| + | |||
| __LED-uri:__ | __LED-uri:__ | ||
| Line 123: | Line 145: | ||
| Inainte de generarea terenului, cele 3 leduri se vor aprinde pe rand, ultimul, cel verde, | Inainte de generarea terenului, cele 3 leduri se vor aprinde pe rand, ultimul, cel verde, | ||
| semnaland inceperea jocului. | semnaland inceperea jocului. | ||
| + | |||
| + | Aprinderea ledurilor a fost implementata folosind Analog Digital Convertor (ADC). | ||
| + | |||
| + | {{:pm:prj2023:apredescu:leds_run_billy_run.png?400|}} | ||
| + | |||
| Pentru a depasi obstacolele, utilizatorul trebuie sa mute pe axa Ox joystick-ul. | Pentru a depasi obstacolele, utilizatorul trebuie sa mute pe axa Ox joystick-ul. | ||
| + | Pentru a detecta apasarea butonului am folosit o intrerupere, urmata de functia buttonPush. | ||
| + | |||
| + | {{:pm:prj2023:apredescu:button_run_billy_run.png?600|}} | ||
| + | |||
| + | |||
| Punctele obtinute sunt reprezentate de numarul de secunde petrecute in joc si vor fi | Punctele obtinute sunt reprezentate de numarul de secunde petrecute in joc si vor fi | ||
| afisate in partea dreapta a ecranului. | afisate in partea dreapta a ecranului. | ||
| Line 134: | Line 166: | ||
| In timpul jocului va fi muzica pe fundal. | In timpul jocului va fi muzica pe fundal. | ||
| Pentru muzica am folosit [[https://musescore.com/|Musescore]] | Pentru muzica am folosit [[https://musescore.com/|Musescore]] | ||
| + | |||
| + | * T160 - tempo-ul | ||
| + | |||
| + | * O4 - octava 4 | ||
| Pentru realizarea caracterului si a obstacolelor am folosit [[https://maxpromer.github.io/LCD-Character-Creator/|LCD-Character-Creator]] | Pentru realizarea caracterului si a obstacolelor am folosit [[https://maxpromer.github.io/LCD-Character-Creator/|LCD-Character-Creator]] | ||
| + | |||
| + | **Player:** | ||
| + | |||
| + | {{:pm:prj2023:apredescu:player1_run_billy_run.png?200|}} | ||
| + | |||
| + | {{:pm:prj2023:apredescu:player2_run_billy_run.png?200|}} | ||
| + | |||
| + | {{:pm:prj2023:apredescu:player3_run_billy_run.png?200|}} | ||
| + | |||
| + | {{:pm:prj2023:apredescu:player4run_billy_run.png?200|}} | ||
| + | |||
| + | **Obstacole:** | ||
| + | |||
| + | {{:pm:prj2023:apredescu:enemy1_run_billy_run.png?200|}} | ||
| + | |||
| + | {{:pm:prj2023:apredescu:enemy2_run_billy_run.png?200|}} | ||
| + | |||
| + | {{:pm:prj2023:apredescu:enemy3_run_billy_run.png?200|}} | ||
| **Functii:** | **Functii:** | ||
| Line 159: | Line 213: | ||
| redesenează scena pe afișajul LCD. De asemenea, se ocupă de redarea muzicii și | redesenează scena pe afișajul LCD. De asemenea, se ocupă de redarea muzicii și | ||
| controlul LED-ului în funcție de starea jocului. | controlul LED-ului în funcție de starea jocului. | ||
| + | |||
| + | |||
| + | Pentru debug am folosit: | ||
| + | USART. Digital Debugging | ||
| + | |||
| + | {{:pm:prj2023:apredescu:debug_run_billy_run.png?200|}} | ||
| ===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
| - | <note tip> | + | <html> |
| - | Rezultatele vor fi documentate ulterior. | + | <iframe src="https://drive.google.com/file/d/1GYsKeYnVv1CPF-G0wrxgOiaio3XhLCxh/preview" allowfullscreen style="aspect-ratio: 16/9; width: 100%;" allow="autoplay; encrypted-media; picture-in-picture;"></iframe> |
| - | </note> | + | </html> |
| ===== Concluzii ===== | ===== Concluzii ===== | ||
| - | <note tip> | + | 1. **As fi dorit sa aleg un proiect mai complex** |
| - | Concluziile vor fi documentate ulterior realizarii proiectului. | + | |
| - | </note> | + | Desi initial credeam ca o sa imi fie greu sa realizez proiectul si am vrut sa incep cu ceva mic, ulterior am realizat |
| + | ca nu era atat de greu pe cat ma asteptam si acum, daca ar fi sa reiau tot procesul, as alege un proiect mai complex. | ||
| + | |||
| + | 2. **Documentarea e importanta** | ||
| + | |||
| + | Atat inainte de alegerea proiectului, cat si dupa, ar fi trebuit sa ma documentez mai mult. M-am bazat pe faptul ca | ||
| + | voi putea realiza totul de la 0 fara ajutor extern, insa cand a venit vorba de muzica, am stat 2 zile sa incerc sa realizez | ||
| + | muzica, iar ulterior am reusit, folosindu-ma de o librarie auxiliara. | ||
| + | |||
| + | 3. **Piesele trebuiau comandate mai devreme** | ||
| + | |||
| + | Am avut probleme cu piesele deoarece au ajuns mai tarziu decat m-am asteptat. | ||
| + | |||
| + | 4. **Organizarea** | ||
| + | |||
| + | Am modificat proiectul pe parcurs, adaugand mai multe piese, initial voiam sa fie doar ecranul si joystick-ul, insa | ||
| + | ulterior am vrut sa il fac mai complex, am adaugat lumini si sunete. Daca ma organizam mai bine de la inceput as fi | ||
| + | stiut din timp de ce piese am nevoie si cum vreau sa arate proiectul. | ||
| + | |||
| + | 5. **Nu doresc sa ramana asa** | ||
| + | |||
| + | Imi place mult jocul, chiar daca este simplu, doresc sa il imbunatatesc ulterior si sa adaug mai multe posibilitati de joc. | ||
| + | As vrea sa mai adaug un ecran LCD care sa contina scorul separat, sa fie un meniu de joc, cu mai multe jocuri posibile. | ||
| + | As vrea sa inlocuiesc ecranul cu unul grafic si sa modific optiunile de pe joystick astfel incat sa permita mai multe optiuni, | ||
| + | de exemplu sa te lasi in jos, sa sari mai mult daca tii apasat mai mult timp in sus, sa existe posibilitatea modificarii | ||
| + | vitezei pe axa OY. | ||
| + | |||
| + | 6. **Jocul provoaca dependenta** | ||
| + | |||
| + | Ma asteptam la acest lucru, poate este si faptul ca este proiectul meu si am muncit si de aceea m-as juca incontinuu, insa imi | ||
| + | place si nu m-as opri. | ||
| ===== Download ===== | ===== Download ===== | ||
| Line 175: | Line 265: | ||
| * [[https://drive.google.com/drive/folders/1mlNIG1hUdwWICT_46g8Vlitfp2zaawbr?usp=sharing|Link Drive]] | * [[https://drive.google.com/drive/folders/1mlNIG1hUdwWICT_46g8Vlitfp2zaawbr?usp=sharing|Link Drive]] | ||
| + | * {{:pm:prj2023:apredescu:runbillyrun.zip|codul}} | ||
| ===== Jurnal ===== | ===== Jurnal ===== | ||
| Line 201: | Line 292: | ||
| {{:pm:prj2023:apredescu:software_-_simulare_p1.png?600|}} | {{:pm:prj2023:apredescu:software_-_simulare_p1.png?600|}} | ||
| + | |||
| + | * 19.05.2023 - Realizarea partii software | ||
| + | * 21.05.2023 - Inlocuirea celor 3 leduri cu un modul semafor | ||
| + | * 22.05.2023 - Includerea muzicii + inca un buzzer | ||
| Line 229: | Line 324: | ||
| [9] https://maxpromer.github.io/LCD-Character-Creator/ | [9] https://maxpromer.github.io/LCD-Character-Creator/ | ||
| + | |||
| + | [10] https://musescore.com/ | ||
| Tutoriale: | Tutoriale: | ||
| - | [10] https://github.com/protostax/ProtoStax_MmlMusicPlayer | + | [11] https://github.com/protostax/ProtoStax_MmlMusicPlayer |
| - | [11] https://www.youtube.com/watch?v=NbXp7luU9NU&t=78s | + | [12] https://www.youtube.com/watch?v=NbXp7luU9NU&t=78s |
| <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> | ||