This shows you the differences between two versions of the page.
pm:prj2022:cristip:memorygame [2022/05/16 17:21] florin_catalin.dicu [Descriere generală] |
pm:prj2022:cristip:memorygame [2022/05/31 14:34] (current) florin_catalin.dicu [Rezultate Obţinute] |
||
---|---|---|---|
Line 2: | Line 2: | ||
====== Memory Game ====== | ====== Memory Game ====== | ||
- | Dicu Florin-Catalin 332CB | + | <note> |
+ | Autor: Dicu Florin-Catalin | ||
+ | Grupa: 332CB | ||
+ | </note> | ||
===== Introducere ===== | ===== Introducere ===== | ||
<note tip> | <note tip> | ||
Line 11: | Line 14: | ||
<note tip> | <note tip> | ||
- | Pentru a incepe jocul, se va apasa pe oricare dintre butoane. Pe ecran se va afisa scorul curent(0 pentru inceputul jocului). Se vor aprinde pe rand cele 4 leduri corespunzatoare secventei de culori, iar jucatorul trebuie sa o reproduca folosind cele 4 butoane. Atunci cand jucatorul va introduce corect secventa buzzer-ul va produce un sunet, iar scorul va creste. Daca timpul jucatorului a expirat sau daca acesta a apasat butoanele in ordinea gresita, buzzer-ul va produce un alt sunet iar jocul se va termina. | + | Pentru a incepe jocul, se va apasa pe oricare dintre butoane. Pe ecran se va afisa scorul curent(0 pentru inceputul jocului). Se vor aprinde pe rand cele 4 leduri corespunzatoare secventei de culori, iar jucatorul trebuie sa o reproduca folosind cele 4 butoane. Atunci cand jucatorul va introduce corect secventa buzzer-ul va produce un sunet, scorul va creste si va fi afisata o noua secventa de culori, mai complicata decat cea anterioara. Daca timpul jucatorului a expirat sau daca acesta a apasat butoanele in ordinea gresita, buzzer-ul va produce un alt sunet iar jocul se va termina. |
</note> | </note> | ||
+ | |||
+ | === Schema bloc === | ||
+ | {{:pm:prj2022:cristip:schemabloc_memorygame.png?600|}} | ||
===== Hardware Design ===== | ===== Hardware Design ===== | ||
<note tip> | <note tip> | ||
- | Aici puneţi tot ce ţine de hardware design: | + | === Lista de piese: === |
- | * listă de piese | + | * Arduino UNO |
- | * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri, e.g. http://www.captain.at/electronic-atmega16-mmc-schematic.png) | + | * 4 LED-uri |
- | * diagrame de semnal | + | * 4 butoane |
- | * rezultatele simulării | + | * Buzzer |
+ | * Componente de baza | ||
+ | * Modul RTC | ||
+ | |||
+ | |||
+ | |||
+ | === Schema electrica === | ||
+ | |||
+ | {{:pm:prj2022:cristip:dicu_electric.jpg?600|}} | ||
</note> | </note> | ||
Line 27: | Line 41: | ||
- | <note tip> | + | <note> |
- | Descrierea codului aplicaţiei (firmware): | + | Pentru a scrie codul am folosit Arduino IDE. |
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | Pentru a lucra cu un ecran LCD I2C am folosit libraria LiquidCrystal_I2C, iar pentru modulul cu ceas in timp real libraria ds3231. |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | |
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | In funtia de setup am initializat ledurile, butoanele, LCD-ul si modulul cu ceas in timp real. Functia de loop aprinde pe rand ledurile atata timp cat jucatorul nu a apasat pe niciun buton. Dupa ce a fost apasat pe un buton, se afiseaza nivelul curent, scorul, si se vor apela functiile care genereaza secventa, o afiseaza si o citeste pe cea primita de la jucator. Functia generare_secventa va genera o secventa de culori, corespunzatoare nivelului curent. Functia show_secventa va afisa secventa de culori generata, iar functia get_secventa asteapta sa primeasca de la jucator o secventa de culori, si verifica daca aceasta este cea corecta. Daca secventa de culori este cea corecta, scorul si nivelul vor creste, precum si dificultatea. Dificultatea jocului vine din numarul de culori afisate si timpul pentru care o culoare este afisata. De altfel, functia get_secventa cronometreaza timpul trecut de la afisarea secventei, iar in cazul in care trec 20 de secunde, jucatorul pierde. Daca jucatorul introduce o secventa gresita sau i se termina timpul, se va afisa scorul acestuia pentru cateva secunde, dupa care se asteapta apasarea unui buton pentru reinceperea jocului. |
- | * (etapa 3) surse şi funcţii implementate | + | |
</note> | </note> | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
- | <note tip> | + | <note> |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | {{:pm:prj2022:cristip:memorygame3.png?500|}} |
+ | {{:pm:prj2022:cristip:memorygame4.png?500|}} | ||
+ | {{:pm:prj2022:cristip:memorygame1.png?300|}} | ||
+ | {{:pm:prj2022:cristip:memorygame2.png?500|}} | ||
</note> | </note> | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | Am implementat toate functionalitatile pe care mi le-am propus. Proiectul, desi nu a fost cel mai complicat, a fost foarte interesant, deoarece am invatat cum sa conectez diferite module, butoane si leduri la o placuta arduino. Partea software nu mi-a pus mari dificultati, majoritatea lucrurilor fiind facute in cadrul labortatoarelor. | ||
===== Download ===== | ===== Download ===== | ||
<note warning> | <note warning> | ||
- | O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). | + | {{:pm:prj2022:cristip:memory_game.zip|}} |
- | + | ||
- | 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**. | + | |
</note> | </note> | ||
- | ===== Jurnal ===== | ||
- | |||
- | <note tip> | ||
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | ||
- | </note> | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
<note> | <note> | ||
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | Datasheet ATmega328P https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf |
+ | |||
+ | Datasheet LCD I2C http://eprints.polsri.ac.id/4642/9/18_DATASHEET%20LCD.pdf | ||
+ | |||
+ | Datasheet DS3231 https://datasheets.maximintegrated.com/en/ds/DS3231.pdf | ||
+ | |||
+ | Laboratoare PM | ||
</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> |