Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2021:alazar:space_invaders [2021/05/29 15:19]
dan_andrei.ursu
pm:prj2021:alazar:space_invaders [2021/05/29 16:30] (current)
dan_andrei.ursu
Line 8: Line 8:
 Proiectul propune realizarea unei versiuni personalizate a celebrului joc de tip arcade [[https://​en.wikipedia.org/​wiki/​Space_Invaders|Space Invaders]] si are scop de entertainment. Proiectul propune realizarea unei versiuni personalizate a celebrului joc de tip arcade [[https://​en.wikipedia.org/​wiki/​Space_Invaders|Space Invaders]] si are scop de entertainment.
  
-{{ pm:​prj2021:​alazar:​dan_andrei_ursu:​space_invaders_original_game.gif |Space Invaders}}+{{ pm:​prj2021:​alazar:​dan_andrei_ursu:​space_invaders_original_game.gif |Space Invaders ​original game}}
  
-Obiectivul jocului este neutralizarea tuturor extraterestrilor prin lansarea unor proiectile inainte ca acestia sa distruga nava controlata de jucator. Se pot primi diverse power-ups pentru distrugerea unui cargo ship, precum proiectile de dimensiune marita, o viata suplimentara,​ extinderea razei unui scutetc. Daca jucatorul nu mai are vieti ramase si este lovit de un extraterestru jocul se considera pierdut si se afiseaza scorul final.+Obiectivul jocului este neutralizarea tuturor extraterestrilor prin lansarea unor proiectile inainte ca acestia sa distruga nava controlata de jucator. Se pot primi diverse power-ups pentru distrugerea unui cargo ship, precum proiectile de dimensiune marita, o viata suplimentara,​ extinderea razei unui scut etc.. Daca jucatorul nu mai are vieti ramase si este lovit de un extraterestru jocul se considera pierdut si se afiseaza scorul final.
  
 ===Descriere generala=== ===Descriere generala===
Line 16: Line 16:
 ==Schema bloc== ==Schema bloc==
  
-{{ pm:​prj2021:​alazar:​dan_andrei_ursu:​schema_bloc.png |Schema ​electrica}}+{{ pm:​prj2021:​alazar:​dan_andrei_ursu:​schema_bloc.png |Schema ​bloc}}
  
 ==Functionalitatea modulelor== ==Functionalitatea modulelor==
  
- * Arduino Uno: logica jocului implementata in microprocesorul ATmega328p  + * **Arduino Uno**: logica jocului ​este implementata in microprocesorul ​**ATmega328p**  
- * Input: 1 joystick biaxial pentru pozitionarea navei, conectat la arduino ​prin 2 pini analogigi ​si un pin GPIO + 1 buton pentru tragere conectat la placa Arduino prin printr-un pin GPIO + * **Input**: 1 joystick biaxial pentru pozitionarea navei, conectat la Arduino ​prin 2 pini de tip analog ​si un pin GPIO + 1 buton pentru tragere conectat la placa printr-un pin GPIO 
- * Display: un ecran OLED legat la placa Arduino ​prin SPI+ * **Display**: un ecran OLED ce comunica cu placa prin SPI
  
 ===Hardware Design=== ===Hardware Design===
Line 28: Line 28:
 ==Schema electrica== ==Schema electrica==
  
-{{ pm:​prj2021:​alazar:​dan_andrei_ursu:​schema_electrica.png |Schema ​bloc}}+{{ pm:​prj2021:​alazar:​dan_andrei_ursu:​schema_electrica.png |Schema ​electrica}}
  
 ==Componente== ==Componente==
Line 42: Line 42:
 ===Software Design=== ===Software Design===
  
-==Programe ​de dezvoltare==+==Programe ​utilizate pentru ​dezvoltare==
  
- * **Arduino IDE**: pentru incarcarea codului pe placuta+ * **Arduino IDE**: pentru incarcarea codului pe placuta ​si debugging
  * **Sublime**:​ pentru realizarea implementarii codului  * **Sublime**:​ pentru realizarea implementarii codului
  * **Eagle**: pentru proiectarea schemei electrice  * **Eagle**: pentru proiectarea schemei electrice
Line 62: Line 62:
  
  - asigurarea comunicatiei cu perifericele hardware (//display OLED, joystick, shoot button//)  - asigurarea comunicatiei cu perifericele hardware (//display OLED, joystick, shoot button//)
- * **initHardwareComponents()**:​ apeleaza functiile de initializarea specifice obiectelor responsabile de getiunea ​componentelor hardware pentru stabilirea piniilor la care sunt legate perifericele,​ dimensiunile acestora, protocolul de comunicare ​utilizatetc+ * **initHardwareComponents()**:​ apeleaza functiile de initializarea specifice obiectelor responsabile de gestiunea ​componentelor hardware pentru stabilirea piniilor la care sunt legate perifericele,​ dimensiunile acestora, protocolul de comunicatie ​utilizat etc.
  - afisarea meniului jocului si asteptarea selectarii unei optiuni din acesta  - afisarea meniului jocului si asteptarea selectarii unei optiuni din acesta
  * **displayNewGameScreen()**  * **displayNewGameScreen()**
Line 94: Line 94:
  * meniul de pornire ofera doar posibilitatea inceperii unui nou joc, vreau sa fac posibila si oprirea jocului curent si reluarea ulterioara a acestuia  * meniul de pornire ofera doar posibilitatea inceperii unui nou joc, vreau sa fac posibila si oprirea jocului curent si reluarea ulterioara a acestuia
  * scorul este salvat in memorie volatila si se pierde la deconectarea alimentarii  * scorul este salvat in memorie volatila si se pierde la deconectarea alimentarii
- * multe dintre limitarile descrise mai sus au fost cauzate de dimensiunea mica a memoriei RAM si frecventa redusa a microprocesorului,​ din acest motiv pentru a putea extinde functionalitatiile jocului trebuie sa achizitionez o placuta ce dispune de mai mlte resurse hardware+ * multe dintre limitarile descrise mai sus au fost cauzate de dimensiunea mica a memoriei RAM si frecventa redusa a microprocesorului,​ din acest motivpentru a putea extinde functionalitatiile joculuitrebuie sa achizitionez o placuta ce dispune de resurse hardware ​mai performante
  
 ==Galerie foto== ==Galerie foto==
  
-{{pm:​prj2021:​alazar:​dan_andrei_ursu:​hardware_1.png?​225|Schema bloc}} +{{pm:​prj2021:​alazar:​dan_andrei_ursu:​hardware_1.png?​220|Hardware 1}} 
-{{pm:​prj2021:​alazar:​dan_andrei_ursu:​hardware_2.png?​225|Schema bloc}} +{{pm:​prj2021:​alazar:​dan_andrei_ursu:​hardware_2.png?​220|Hardware 2}} 
-{{pm:​prj2021:​alazar:​dan_andrei_ursu:​hardware_3.png?​225|Schema bloc}}+{{pm:​prj2021:​alazar:​dan_andrei_ursu:​hardware_3.png?​220|Hardware 3}}
  
-{{pm:​prj2021:​alazar:​dan_andrei_ursu:​new_game.png?​225|Schema bloc}} +{{pm:​prj2021:​alazar:​dan_andrei_ursu:​new_game.png?​220|New game}} 
-{{pm:​prj2021:​alazar:​dan_andrei_ursu:​end_game_won.png?​225|Schema bloc}} +{{pm:​prj2021:​alazar:​dan_andrei_ursu:​end_game_won.png?​220|End game won}} 
-{{pm:​prj2021:​alazar:​dan_andrei_ursu:​end_game_lost.png?​225|Schema bloc}}+{{pm:​prj2021:​alazar:​dan_andrei_ursu:​end_game_lost.png?​220|End game lost}}
  
-{{pm:​prj2021:​alazar:​dan_andrei_ursu:​game_play_1.png?​225|Schema bloc}} +{{pm:​prj2021:​alazar:​dan_andrei_ursu:​game_play_1.png?​220|Game play 1}} 
-{{pm:​prj2021:​alazar:​dan_andrei_ursu:​game_play_2.png?​225|Schema bloc}} +{{pm:​prj2021:​alazar:​dan_andrei_ursu:​game_play_2.png?​220|Game play 2}} 
-{{pm:​prj2021:​alazar:​dan_andrei_ursu:​game_play_3.png?​225|Schema bloc}}+{{pm:​prj2021:​alazar:​dan_andrei_ursu:​game_play_3.png?​220|Game play 3}} 
 + 
 +==Galerie video== 
 + 
 +{{ pm:​prj2021:​alazar:​dan_andrei_ursu:​space_invaders.gif |Space Invaders}}
  
 ==Demo== ==Demo==
Line 116: Line 120:
 ===Concluzii=== ===Concluzii===
  
-Desi n-am reusit sa implementez toate functionalitatiile pe care mi le-am propus initial, consider ca proiectul a fost unul reusit, la care am lucrat cu placere. Dificultatea realizarii jocului a constat in gestiunea restrictiilor impuse de memoria RAM si de capacitatea de calcul a microprocesorului. Aceste limitari in care a trebuit sa ma incadrez m-au ajutat sa imi dezvolt abilitatiile de administrare a resurselor hardware limitate.+Desi n-am reusit sa implementez toate functionalitatiile pe care mi le-am propus initial, consider ca proiectul a fost unul reusit, la care am lucrat cu placere. Dificultatea realizarii jocului a constat in gestiunea restrictiilor impuse de memoria RAM si de capacitatea ​redusa ​de calcul a microprocesorului. Aceste limitari in care a trebuit sa ma incadrez m-au ajutat sa imi dezvolt abilitatiile de administrare a resurselor hardware limitate.
  
 ===Download=== ===Download===
pm/prj2021/alazar/space_invaders.1622290797.txt.gz · Last modified: 2021/05/29 15:19 by dan_andrei.ursu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0