Differences

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

Link to this comparison view

pm:prj2023:vstoica:tudordiaconu [2023/05/16 22:12]
tudor.diaconu [Hardware Design]
pm:prj2023:vstoica:tudordiaconu [2023/05/28 17:58] (current)
tudor.diaconu [Schema bloc]
Line 1: Line 1:
-====== ​2 Player Tic-Tac-Toe ​======+====== ​Super Mario on LCD ======
 <note tip> <note tip>
 Autor: Diaconu Tudor-Gabriel Autor: Diaconu Tudor-Gabriel
Line 7: Line 7:
  
 ==== Introducere ==== ==== Introducere ====
-Scopul acestui proiect este cel de a realiza un joc de Tic-Tac-Toe în 2, care să fie afișat pe un ecran LCD. De asemenea, voi folosi un joystick/​butoane ​pentru controlul ​și alegerea poziției simbolului, un buzzer pentru a marca finalul meciului și câte un LED pentru a arăta al cui este rândul.+Scopul acestui proiect este cel de a realiza un joc de Super Mario, care să fie afișat pe un ecran LCD. De asemenea, voi folosi un joystick pentru controlul ​jucătorului, un buzzer pentru a marca finalul meciului, 2 butoane de start și pause și un LED care marchează starea în care se află jocul.
  
 ==== Descriere generală ==== ==== Descriere generală ====
 Aplicația va funcționa în modul următor: Aplicația va funcționa în modul următor:
  
-Un buton va marca start-ul meciuluimoment în care se va aprinde becul LED aferent jucătorului cu X. Apoi, jucătorul își alege poziția unde să plaseze simbolul prin intermediul unui joystick(sau ​unor butoane)fiind apoi rândul jucătorului cu 0aprinzându-se ​becul aferent jucătorului 0 și stingându-se cel al jucătorului X.+La începuteste marcat faptul că trebuie apăsat butonul de start pentru ​începe jocul. De asemeneaîn această stare, becul RGB este roșu.
  
-După mai multe mutări ale celor 2 jucători, va fi afișat câștigătorul ​pe LCD (sau Draw în caz de egalitate), finalul meciului fiind marcat printr-o melodie auzită la buzzer în funcție ​de jucătorul ​știgător. De asemenea, la finalul meciuluiva apărea pe ecran și durata meciului.+După ce este început jocul prin apăsarea butonului, ​jucătorul ​poate să sară peste obstacole prin intermediul joystick-ului ​(becul RGB devine verde). De asemeneapoate pune pauză prin utilizarea celuilalt buton de pe breadboard (becul RGB devine albastru). La momentul ciocnirii cu un obstacol, ​jucătorul ​pierde meciul ​și îi este afișat scorul și durata jocului. 
 + 
 +De asemenea, la pierderea joculuibecul redevine roșu, iar jucătorului îi este indicat să apese din nou butonul pentru a începe o altă rundă, acest mesaj apărând intermitent cu momentul pierderii rundei trecute.
  
 ==== Schema bloc ==== ==== Schema bloc ====
-{{:​pm:​prj2023:​vstoica:​untitled_diagram.drawio.png|}}+{{:​pm:​prj2023:​vstoica:​untitled_diagram.drawio.png?700}}
  
 ==== Hardware Design ==== ==== Hardware Design ====
Line 32: Line 34:
 </​note>​ </​note>​
  
-{{:​pm:​prj2023:​vstoica:​schemahardware_proiectpm_bb.png?​900|}} +{{:​pm:​prj2023:​vstoica:​schemahardware_proiectpm_bb.png?​700|}} 
-{{:​pm:​prj2023:​vstoica:​schemahardware_proiectpm_schem.png?​900|}}+{{:​pm:​prj2023:​vstoica:​schemahardware_proiectpm_schem.png?​700|}}
 ==== Software Design ==== ==== Software Design ====
  
-TBC+<​note>​ 
 + 
 +Mediul de dezvoltare  
 +  * Draw.io - schema bloc 
 +  * Tinkercad + Fitzring - design-ul hardware 
 +  * Arduino IDE - codul software 
 + 
 +</​note>​ 
 + 
 + 
 +<​note>​ 
 + 
 +Biblioteci utilizate 
 +  * LiquidCrystal_I2C.h - pentru conexiunea cu ecranul LCD I2C 
 + 
 +</​note>​ 
 + 
 +<​note>​ 
 + 
 +Funcții principale 
 +  * initializeGraphics() - funcție care inițializeaza graficile de pe ecran și marchează posibilele poziții ale băiatului din joc 
 +  * advanceTerrain() - funcție care mută la stânga obstacolele din joc 
 +  * drawBoy() - funcție care indică cum își modifică băiatul poziția în funcție de poziția precedentă 
 +  * setup() - inițializarea regiștrilor necesari și marcarea pinilor ca intrare sau ieșire 
 +  * loop() - logica proiectului și tratarea cazului de pierdere a jocului 
 + 
 +</​note>​
  
 ==== Rezultate obținute ==== ==== Rezultate obținute ====
  
 +Meniul de start
 +
 +{{:​pm:​prj2023:​vstoica:​mario-poza.jpeg?​600|}}
 +
 +Ecran in game
 +
 +{{:​pm:​prj2023:​vstoica:​mario-poza1.jpeg?​600|}}
 +
 +Ecran care arată cum a fost pierdută runda trecută
 +
 +{{:​pm:​prj2023:​vstoica:​mario-poza2.jpeg?​600|}}
 +
 +Ecran în pauză
 +
 +{{:​pm:​prj2023:​vstoica:​mario-poza3.jpeg?​600|}}
 +
 +Ecran la final
 +
 +{{:​pm:​prj2023:​vstoica:​mario-poza4.jpeg?​600|}}
 ==== Concluzii ==== ==== Concluzii ====
 +
 +<note tip>A fost un proiect foarte interesant. Mă bucur că am reușit să învăț multe noțiuni noi de-a lungul lucrului la acest proiect. Pot spune că voi folosi acest proiect pe viitor atunci când mă voi plictisi în timpul liber și, de asemenea, voi încerca să-i mai aduc îmbunătățiri.</​note>​
  
 ==== Download ==== ==== Download ====
  
 +<note tip>
 +{{:​pm:​prj2023:​vstoica:​diaconutudorgabriel_332ca_proiectpm.zip|Arhiva proiectului}}
 +</​note>​
 ==== Bibliografie/​Resurse ==== ==== Bibliografie/​Resurse ====
 +
 +
 +<​note>​LiquidCrystal:​ https://​github.com/​johnrickman/​LiquidCrystal_I2C
 +
 +https://​www.robotique.tech/​robotics/​using-the-joystick-with-arduino/​
 +
 +Buzzer sound: https://​github.com/​robsoncouto/​arduino-songs
 +</​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/prj2023/vstoica/tudordiaconu.1684264327.txt.gz · Last modified: 2023/05/16 22:12 by tudor.diaconu
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