This shows you the differences between two versions of the page.
pm:prj2024:ccontasel:maria.vasilache [2024/05/18 01:44] maria.vasilache [Bibliografie/Resurse] |
pm:prj2024:ccontasel:maria.vasilache [2024/05/26 17:55] (current) maria.vasilache [Bibliografie/Resurse] |
||
---|---|---|---|
Line 61: | Line 61: | ||
===== Software Design ===== | ===== Software Design ===== | ||
+ | Inițial, am creat câteva variabile globale și define-uri pentru a fi mai ușoară accesarea lor. Acestea referă pinii conectați la componente, elemente ale jocului și modurile de redare. | ||
- | <note tip> | + | Bibliotecile foloiste: |
- | Descrierea codului aplicaţiei (firmware): | + | * pentru funcționarea display-ului (afișarea datelor), am folosit bibliotecile **Adafruit_GFX.h** și **Adafruit_SSD1306.h**; |
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | * pentru comunicare I2C cu display-ul, am folosit biblioteca **Wire.h** |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | * pentru comunicarea cu cardul SD, am folosit **SD.h**; |
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | * pentru comunicarea SPI cu SD card reader-ul, am folosit **SPI.h**; |
- | * (etapa 3) surse şi funcţii implementate | + | * pentru sunet, prin buzzer, am folosit **TMRpcm.h**. |
- | </note> | + | |
+ | Funcțiile implementate: | ||
+ | * **setup()** - setez pinii ca INPUT/OUTPUT(butoanele => input; ledurile => output), pregătesc display-ul, speaker-ul și SD reader-ul spre a fi folosite (sunt definite global); | ||
+ | * **loop()** - verific modul de redare (0 = PIANO_TILES; 1 = NOSTALGIA_PLAYER). În cazul în care se apasă Butonul 1, se face switch între acestea, iar apăsarea butonului 2 realizează intrarea în modul respectiv; | ||
+ | * **updateModeDisplay()** - Înainte de a se porni modul de redare, pe display va apărea titlul modului ales pentru o mai ușoară gestionare a lor de către utilizator; | ||
+ | * **drawGameMatrix()** - Se creează matricea pentru joc din pătrate. Pentru un 'tile', se va afișa un pătrat plin; | ||
+ | * **startPianoTilesGame()** - Aici este prezentă logică jocului de Piano Tiles. Pe display va apărea o matrice 3x3, care va imita pianul. Ulterior se verifică daca butonul apăsat (Butoanele 3, 4 și 5) corespunde cu cel unde se află clapa pe ecran. În caz de eșec, se incrementează contorul 'misses' și se aprinde ledul roșu. Această variabilă este verificată constant, deoarece, ajunsă la 3, determină finalitatea jocului. Pentru 5 apăsări corecte se aprinde ledul verde, care marchează o rundă câștigată | ||
+ | * **startNostalgiaPlayerGame()** - Se redau piesele citite de pe cardul de memorie. La apăsarea butonului 1, se oprește melodia și se iese din modul Nostalgia Player; la apăsarea butonului 2, se dă skip la piesa curentă; la apăsarea butonului 3, se pune pe pauză melodia. | ||
+ | |||
+ | Printre programele folosite se numără: Arduino IDE (pentru codare), Fritzing (pentru crearea schemei electrice) si draw.io (pentru crearea schemei bloc). | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
<note tip> | <note tip> | ||
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | Ca finalitate, s-a obținut un joc simpatic de Piano Tiles, generat random, care permite jucătorului să își pună la încercare atenția și reflexele. |
</note> | </note> | ||
- | |||
- | ===== Concluzii ===== | ||
===== Download ===== | ===== Download ===== | ||
+ | Arhiva conține codul, schemele și un mic demo. | ||
+ | {{:pm:prj2024:ccontasel:pm_piano_tiles.zip|}} | ||
===== Jurnal ===== | ===== Jurnal ===== | ||
- | <note tip> | + | {{:pm:prj2024:ccontasel:jurnal2pm.png?500|}} |
- | 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> | + | **Resurse Hardware** |
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | * https://cleste.ro/placa-de-dezvoltare-uno-r3-atmega328p.html |
- | </note> | + | * https://cleste.ro/ecra-oled-0-96-inch.html |
- | + | * https://www.optimusdigital.ro/ro/altele/98-modul-cititor-card-sd.html?search_query=Modul+cititor+card+SD&results=5 | |
- | * https://cleste.ro/placa-de-dezvoltare-uno-r3-atmega328p.html | + | |
- | + | ||
- | * https://cleste.ro/ecra-oled-0-96-inch.html | + | |
- | + | ||
- | * https://www.optimusdigital.ro/ro/altele/98-modul-cititor-card-sd.html?search_query=Modul+cititor+card+SD&results=5 | + | |
- | + | ||
- | + | ||
- | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | + | |