This shows you the differences between two versions of the page.
pm:prj2024:ccontasel:irina.pauna0311 [2024/05/18 17:31] irina.pauna0311 [Jurnal] |
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 121: | 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> |