This shows you the differences between two versions of the page.
pm:prj2022:ndrogeanu:consola [2022/05/29 20:33] george.pasca [Software Design] |
pm:prj2022:ndrogeanu:consola [2022/05/29 20:59] (current) george.pasca [Concluzii] |
||
---|---|---|---|
Line 28: | Line 28: | ||
* 1 senzor de gesturi | * 1 senzor de gesturi | ||
{{ :pm:prj2022:ndrogeanu:console_sch.png?nolink&700 |}} | {{ :pm:prj2022:ndrogeanu:console_sch.png?nolink&700 |}} | ||
- | <note tip> | ||
- | Aici puneţi tot ce ţine de hardware design: | ||
- | * listă de piese | ||
- | * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri, e.g. http://www.captain.at/electronic-atmega16-mmc-schematic.png) | ||
- | * diagrame de semnal | ||
- | * rezultatele simulării | ||
- | </note> | ||
===== Software Design ===== | ===== Software Design ===== | ||
Bibliotecile auxiliare/3rd-party folosite in dezvoltarea proiectului sunt Adafruit_GFX.h si Adafruit_PCD8544 pentru ecranul Nokia 5510 si Arduino_APDS9960.h pentru senzorul de gesturi APDS9960. Am inclus, de asemenea, o parte a codului in fisierul graphics.h, care contine unele define-uri si cateva bitmap-uri, folosite drept grafica pentru jocuri. Pentru a modulariza diferitele functionalitati ale proiectului, am implementat design pattern-ul State (clasa Game si mostenitorii ei), care contine 3 metode necesare implementarii: getInput(), care citeste inputul (joystick, buton, senzor), update(), care realizeaza schimbari pe obiectele jocului respectiv, in functie de input/timp si draw(), care randeaza jocul pe ecranul LCD. Exista si clasa Console, care contine starea actuala (jocul) si cele 3 metode enumerate anterior, care sunt apelate in aceeasi ordine in loop(). | Bibliotecile auxiliare/3rd-party folosite in dezvoltarea proiectului sunt Adafruit_GFX.h si Adafruit_PCD8544 pentru ecranul Nokia 5510 si Arduino_APDS9960.h pentru senzorul de gesturi APDS9960. Am inclus, de asemenea, o parte a codului in fisierul graphics.h, care contine unele define-uri si cateva bitmap-uri, folosite drept grafica pentru jocuri. Pentru a modulariza diferitele functionalitati ale proiectului, am implementat design pattern-ul State (clasa Game si mostenitorii ei), care contine 3 metode necesare implementarii: getInput(), care citeste inputul (joystick, buton, senzor), update(), care realizeaza schimbari pe obiectele jocului respectiv, in functie de input/timp si draw(), care randeaza jocul pe ecranul LCD. Exista si clasa Console, care contine starea actuala (jocul) si cele 3 metode enumerate anterior, care sunt apelate in aceeasi ordine in loop(). | ||
Line 41: | Line 34: | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
+ | [[https://youtu.be/-vV1vTL9GHw|Demo video]] | ||
<note tip> | <note tip> | ||
Care au fost rezultatele obţinute în urma realizării proiectului vostru. | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | ||
Line 47: | Line 40: | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | Pot spune ca a fost un proiect interesant, unic fata de restul temelor, care m-a ajutat sa invat si ceva mai tehnic, cum ar fi lipitul firelor. Din punct de vedere al hardware-ului, proiectul nu este complicat, insa in privinta software-ului pot spune ca cea mai dificila problema cu care m-am confruntat a fost management-ul memoriei. | ||
===== Download ===== | ===== Download ===== | ||
Cod sursa: {{:pm:prj2022:ndrogeanu:pascageorgealexandru_336cc.zip|Console}} | Cod sursa: {{:pm:prj2022:ndrogeanu:pascageorgealexandru_336cc.zip|Console}} | ||
- | ===== Jurnal ===== | ||
- | <note tip> | ||
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | ||
- | </note> | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== |