Differences

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

Link to this comparison view

pm:prj2022:imacovei:alexandru.baciu0201 [2022/05/27 21:05]
alexandru.baciu0201
pm:prj2022:imacovei:alexandru.baciu0201 [2022/06/01 23:18] (current)
alexandru.baciu0201 [Jurnal]
Line 8: Line 8:
 ===== Descriere generală ===== ===== Descriere generală =====
  
 +<note tip>
 Utilizatorul interacționeaza cu meniul și cu jocurile cu cele 3 butoane expuse și primește output vizual pe LCD și sonor prin buzzer în funcție de acțiunile sale. Utilizatorul interacționeaza cu meniul și cu jocurile cu cele 3 butoane expuse și primește output vizual pe LCD și sonor prin buzzer în funcție de acțiunile sale.
 +</​note>​
 {{:​pm:​prj2022:​imacovei:​gameboy_block_scheme.png?​600|Schemă bloc}} {{:​pm:​prj2022:​imacovei:​gameboy_block_scheme.png?​600|Schemă bloc}}
- 
  
 ===== Hardware Design ===== ===== Hardware Design =====
Line 29: Line 29:
  
 <note tip> <note tip>
-Am dezvolatat codul cu ajutorul Arduino IDE. +  * Am dezvolatat codul cu ajutorul Arduino IDE. 
-Am folosit biblioteca standard <​Arduino.h>​ pentru lucrul general, +Am folosit
-<​SPI.h>​ pentru conexiunea SPI dintre Arduino și LCD precum și +  * biblioteca standard <​Arduino.h>​ pentru lucrul general, 
-<​U8g2lib.h>​ pentru lucrul cu ecranul, interfațarea SPI mai ușoară precum și câteva primitive grafice pentru afișare de text, forme geometrice de bază.+  ​* ​<​SPI.h>​ pentru conexiunea SPI dintre Arduino și LCD precum și 
 +  ​* ​<​U8g2lib.h>​ pentru lucrul cu ecranul, interfațarea SPI mai ușoară precum și câteva primitive grafice pentru afișare de text, forme geometrice de bază. 
 +</​note>​ 
 + 
 +<note tip> 
 +Ca organizare a codului (arhiva mai jos) am folosit un model similar aplicațiilor grafice (cum ar fi temele de semestrul trecut de la EGC în OpenGL), prin apelul în loop-ul default al anumitor funcții: 
 +  * u8g2.clearBuffer() - funcție de bibliotecă,​ șterge imaginea din buffer 
 +  * handle_ui() - se opcupă de afișarea pe ecran fie a meniului principal fie a stării jocului, depinzând de cum s-a interacționat cu consola 
 +  * u8g2.sendBuffer() - funcție de bibliotecă,​ copiază imaginea din buffer la ecran 
 +  * check_buttons() - citește starea de apăsare a butoanelor și updatează variabilele interne 
 +  * update_time() - updatează entitățile dependente de timp din program, folosind millis() 
 +</​note>​ 
 + 
 +<note tip> 
 +Concepte PM folosite: 
 +  * SPI 
 +  * Întreruperi 
 +  * Timer
 </​note>​ </​note>​
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
 +{{:​pm:​prj2022:​imacovei:​gameboy_demo.jpg?​600|Demo}}
 <note tip> <note tip>
-{{:​pm:​prj2022:​imacovei:​gameboy_demo.jpg?​200|Demo}} +Am obținut un rezultat foarte plăcut din punctul meu de vedere, consola are meniu și UI-uri prietenoase,​ este foarte resposivă la input.
-Care au fost rezultatele ​obţinute în urma realizării proiectului vostru.+
 </​note>​ </​note>​
  
 +===== Download =====
 +
 +<note tip>
 +Arhivă:​{{:​pm:​prj2022:​imacovei:​332ca_baciu_alexandruvictor_gameboy.zip|}}
 +</​note>​
 ===== Jurnal ===== ===== Jurnal =====
  
 <note tip> <note tip>
-21.04.2022: Am adăugat tema proiectului,​ componentele si schema bloc (Milestone 1). +  * 21.04.2022: Am adăugat tema proiectului,​ componentele si schema bloc (Milestone 1). 
-26.04.2022: Am început documentarea pentru a începe poriectul. +  ​* ​26.04.2022: Am început documentarea pentru a începe poriectul. 
-12.05.2022: Am observat că este nevoie de atașarea fizică a unui pin header (baretă continuă de pini LCD-ului, fiind nevoie de lipituri). +  ​* ​12.05.2022: Am observat că este nevoie de atașarea fizică a unui pin header (baretă continuă de pini LCD-ului, fiind nevoie de lipituri). 
-14.05.2022: Primul prototip funcțional de LCD interfațat prin SPI cu un buton ce schimba afișajul unor primitive grafice pentru testing. +  ​* ​14.05.2022: Primul prototip funcțional de LCD interfațat prin SPI cu un buton ce schimba afișajul unor primitive grafice pentru testing. 
-27.04.2022: Update la cod precum și cele necesare pentru Milestone 2, printre care reformatare la pagină.+  ​* ​27.05.2022: Update la cod precum și cele necesare pentru Milestone 2, printre care reformatare la pagină. 
 +  * 01.06.2022: Ultimul update la cod + bug fixes + game smoothening
 </​note>​ </​note>​
  
Line 55: Line 78:
  
 <note tip> <note tip>
-Link la pagina asta just in case: +  * Link la pagina asta just in case: https://​ocw.cs.pub.ro/​courses/​pm/​prj2022/​imacovei/​alexandru.baciu0201 
-https://​ocw.cs.pub.ro/​courses/​pm/​prj2022/​imacovei/​alexandru.baciu0201+  * Datasheet Arduino: https://​ocw.cs.pub.ro/​courses/​_media/​pm/​doc8272.pdf 
 +  * Datasheet ST7920: https://​www.waveshare.com/​datasheet/​LCD_en_PDF/​ST7920.pdf
 </​note>​ </​note>​
 <​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>​
  
  
pm/prj2022/imacovei/alexandru.baciu0201.1653674733.txt.gz · Last modified: 2022/05/27 21:05 by alexandru.baciu0201
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