This shows you the differences between two versions of the page.
pm:prj2024:ccontasel:irina.pauna0311 [2024/05/18 17:33] irina.pauna0311 [Descriere generală] |
pm:prj2024:ccontasel:irina.pauna0311 [2024/05/25 15:33] (current) irina.pauna0311 [Concluzii] |
||
---|---|---|---|
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 ===== |