Differences

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

Link to this comparison view

pm:prj2024:ccontasel:irina.pauna0311 [2024/05/18 17:16]
irina.pauna0311 [Software Design]
pm:prj2024:ccontasel:irina.pauna0311 [2024/05/25 15:33] (current)
irina.pauna0311 [Concluzii]
Line 12: Line 12:
  
 <note tip> <note tip>
-Jocul va fi realizat folosind o placuta Arduino care va avea modul LCD, card SD, speaker, LED-uri si butoane.+Jocul va fi realizat folosind o placuta Arduino care va avea modul OLED, card SD, speaker, LED-uri si butoane.
 Player-ul va misca personajul folosind butonul pentru a evita obstacolele. In timpul jocului, speaker-ul va Player-ul va misca personajul folosind butonul pentru a evita obstacolele. In timpul jocului, speaker-ul va
 face play la theme music, iar LED-ul va indica starea personajului:​ verde - in viata, rosu - mort. face play la theme music, iar LED-ul va indica starea personajului:​ verde - in viata, rosu - mort.
-Toate acestea vor fi afisate pe LCD.+Toate acestea vor fi afisate pe display.
  
 Schema bloc: Schema bloc:
Line 81: Line 81:
  
 Mediul de dezvoltare al proiectului este Arduino IDE. Mediul de dezvoltare al proiectului este Arduino IDE.
-Librarii folosite: U8g2lib, ​Adafruit GFX Graphics Library.+Librarii folosite: U8g2lib, ​SD, SPI, TMRpcm. 
 +Am folosit U82glib pentru a desena pe ecran jocul in sine, iar SD, SPI si TMRpcm sunt folosite pentru a  
 +pune melodii de pe cardul SD in Main Menu. 
 + 
 +**Concept general:​** 
 +Jocul functioneaza prin aratarea main menu-ului si incepe propriu-zis o data cu apasarea butonului. 
 +In continuarea,​ starea player-ului (adica de viata si moarte) este aratarea prin luminarea LED-ului (verde - in viata, 
 +rosu - mort). Player-ul se va deplasa si va trebui prin apasarea butonului sa sara pentru a depasi obstacolele. Daca acesta va interfera cu un obiect, display-ul va arata meniul de Game Over si se va lumina LED-ul rosu. 
 + 
 +**Algoritmi si functii:​** 
 + 
 +__setup()__ 
 + 
 +In functia, setup se face initializarea piniilor si se va arata mesajul de intro pana la apasarea butonului. 
 + 
 +__introMessage()__ 
 + 
 +Folosind, u8g2lib se deseneaza meniul principal. 
 + 
 +__play()__ 
 + 
 +Functia pentru jocul respectiv. Se initializeaza obstacolele,​ player-ul si scorul acestuia. La baza, are un loop din care se iese numai daca se face o coliziune dintre player si obstacol. In loop, mai intai citesc sa vad daca am un input si butonul a fost apasat. Daca da, si momentan player nu este in actiunea de a sari, il fac sa sara. 
 + 
 +Daca sar, updatez coordonatele player-ului sa sara. Dupa acest pas, verific daca exita o coliziune dintre player si obstacol. 
 +Daca exista, ies din acest loop. Altfel, verific sa vad daca obstacolele peste care am sarit au iesit din display si daca da, 
 +le voi initializa din nou sa apara pe display. 
 + 
 +Odata cu pierderea jocului si iesirea din loop, desenez meniul de GameOver si afisez scorul. 
 + 
 +__gameOver()__ 
 + 
 +Folosind din nou u8g2, voi desena meniul de game over. 
 +Pot relua jocul prin apasarea butonului. 
 + 
 +**Concepte folosite de la laborator** 
 +  * GPIO - folosit pentru pinii de input si output: buton, led, buzzer. 
 +  * UART - folosit pentru Serial.print(),​ utilizat mai mult pentru debugging. 
 +  * I2C - folosit pentru display-ul OLED. 
 +  * SPI - folosit pentru card-ul SD.
 </​note>​ </​note>​
  
Line 88: Line 126:
 <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.
 +
 +Link video joculet:
 +
 +https://​www.youtube.com/​watch?​v=CPqGosRE6fo
 +
 +
 +Link video buzzer:
 +
 +https://​www.youtube.com/​watch?​v=Q_gELkM0WD4
 +
 +
 </​note>​ </​note>​
  
 ===== Concluzii ===== ===== Concluzii =====
 +
 +Implementarea joculetului a fost una simplistica care a avut cateva dificultati,​ dar a fost un journey dragut. Printe dificultati s-a numarat lipsa memoriei dinamice de pe placa o data cu adaugarea de sunet si faptul ca testul audio care se aude destul de prost, dar acesta functioneaza. Inca o dificultate am putea zice a fost vanatoare de componente. In rest, totul a fost interesant si a fost smooth sailing. Recomand.
  
 ===== Download ===== ===== Download =====
Line 98: Line 149:
  
 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**. 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**.
 +
 +
 +Link Github: https://​github.com/​pauna0311/​ProiectPM
 </​note>​ </​note>​
  
Line 104: Line 158:
 <note tip> <note tip>
 Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.
 +
 +{{:​pm:​prj2024:​ccontasel:​gant_online_pauna.png?​200|}}
 +
 +
 +Grafic Gant pentru planificare.
 +
 +Scopuri de atins:
 +  - Sa fie functional
 </​note>​ </​note>​
  
Line 110: Line 172:
 <​note>​ <​note>​
 Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**.
 +
 +Surse:
 +https://​kits.plusivo.com/​
 +
 </​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/prj2024/ccontasel/irina.pauna0311.1716041773.txt.gz · Last modified: 2024/05/18 17:16 by irina.pauna0311
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