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> | ||