Differences

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

Link to this comparison view

pm:prj2022:ndrogeanu:consola [2022/05/29 19:48]
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().
  
-{{ :​pm:​prj2022:​ndrogeanu:​console_flow.png?​nolink&​300 |}} +{{ :​pm:​prj2022:​ndrogeanu:​console_flow2.png?​nolink&​400 |}}
- +
-<note tip> +
-Descrierea codului aplicaţiei (firmware):​ +
-  * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) +
-  * librării şi surse 3rd-party (e.g. Procyon AVRlib) +
-  * algoritmi şi structuri pe care plănuiţi să le implementaţi +
-  * (etapa 3) surse şi funcţii implementate +
-</​note>​+
  
 ===== 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 56: 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}}
  
-<note warning> 
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului:​ surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). 
  
-Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:​pm:​prj20??:​c?​** sau **:​pm:​prj20??:​c?:​nume_student** (dacă este cazul). **Exemplu:​** Dumitru Alin, 331CC -> **:​pm:​prj2009:​cc:​dumitru_alin**. 
-</​note>​ 
- 
-===== 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 =====
pm/prj2022/ndrogeanu/consola.1653842903.txt.gz · Last modified: 2022/05/29 19:48 by george.pasca
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