This shows you the differences between two versions of the page.
pm:prj2021:abasoc:simonsays [2021/05/30 00:02] mara_ioana.nicolae [Rezultate Obţinute] |
pm:prj2021:abasoc:simonsays [2021/06/02 23:54] (current) mara_ioana.nicolae [Bibliografie/Resurse] |
||
---|---|---|---|
Line 14: | Line 14: | ||
Jocul începe odată ce utilizatorul va apăsa joystick-ul, în acest moment va fi întâmpinat de prompt-ul pentru preferințe; nivelul de dificultate pentru fiecare rundă putând fi configurat. Se va dicta o secvență de semnale, când pe ecran va apărea mesajul de finalizare al secvenței, jucătorul va fi invitat să refacă secvența manevrând joystick-ul în direcțiile corespunzătoare. În funcție de input-ul jucătorului, se vor emite semnale sonore pentru a anunța dacă secvenț a fost reprodusă corect sau nu. | Jocul începe odată ce utilizatorul va apăsa joystick-ul, în acest moment va fi întâmpinat de prompt-ul pentru preferințe; nivelul de dificultate pentru fiecare rundă putând fi configurat. Se va dicta o secvență de semnale, când pe ecran va apărea mesajul de finalizare al secvenței, jucătorul va fi invitat să refacă secvența manevrând joystick-ul în direcțiile corespunzătoare. În funcție de input-ul jucătorului, se vor emite semnale sonore pentru a anunța dacă secvenț a fost reprodusă corect sau nu. | ||
- | //Schema bloc// | + | **Schema bloc** |
+ | |||
+ | {{:pm:prj2021:abasoc:nicolaemaraioana_schemabloc.png?nolink&500|}} | ||
- | {{:pm:prj2021:abasoc:schemabloc_mara.png?400 |}} | ||
====== Hardware Design ====== | ====== Hardware Design ====== | ||
Line 44: | Line 45: | ||
{{ :pm:prj2021:abasoc:maranicolae_schemaelectrica.png?700 |}} | {{ :pm:prj2021:abasoc:maranicolae_schemaelectrica.png?700 |}} | ||
====== Software Design ====== | ====== Software Design ====== | ||
- | Pentru fiecare început de rundă, se va emite prin buzzer secvența sonoră corespunzătoare prin funcția //startSound// și se va verifică valoarea variabilei //**gameOn**// ce indică dacă jocul a început sau nu. Runda va începe odată cu apăsarea butonului atașat joystick-ului; pe ecranul LCD vor apărea instrucțiunile necesare pentru începerea jocului în funcția //**printStartMessage**//. | + | Pentru fiecare început de rundă, se va emite prin buzzer secvența sonoră corespunzătoare prin funcția //startSound// și se va verifica valoarea variabilei //**gameOn**// ce indică dacă jocul a început sau nu. Runda va începe odată cu apăsarea butonului atașat joystick-ului; pe ecranul LCD vor apărea instrucțiunile necesare pentru începerea jocului în funcția //**printStartMessage**// cu ajutorul bibliotecii //**LiquidCrystal_I2C**//. |
Următorul pas din fluxul aplicației este reprezentat de meniul de configurare al rundei, prezent în funcția //**chooseDifficulty**//. În funcție de preferințele sale jucătorul va putea ajusta lungimea secvenței dictate și perioda dintre două simboluri personalizând nivelul de dificultate. După ce nivelul a fost configurat, Simon va începe să dicteze o secvență de simboluri și codificarile acestora. | Următorul pas din fluxul aplicației este reprezentat de meniul de configurare al rundei, prezent în funcția //**chooseDifficulty**//. În funcție de preferințele sale jucătorul va putea ajusta lungimea secvenței dictate și perioda dintre două simboluri personalizând nivelul de dificultate. După ce nivelul a fost configurat, Simon va începe să dicteze o secvență de simboluri și codificarile acestora. | ||
- | Întreaga logică a jocului se regăsește în interiorul funcției //**playGame**//, folosind mesaje intuitive, utilizatorul va naviga prin seria de instrucțiuni pentru a incerca să câștige runda. Se vor alege aleator simbolurile (//**chooseEmoji**//), culorile (//**chooseColor**//) și pozițiile (//**choosePosition**//), apoi va fi redată din nou secvența completă formată doar din simboluri. | + | Întreaga logică a jocului se regăsește în interiorul funcției //**playGame**//, folosind mesaje intuitive, utilizatorul va naviga prin seria de instrucțiuni pentru a încerca să câștige runda. Se vor alege aleator simbolurile (//**chooseEmoji**//), culorile (//**chooseColor**//) și pozițiile (//**choosePosition**//), apoi va fi redată din nou secvența completă formată doar din simboluri. |
- | Jucătorul își va pune la încercare memoria și acuratețea încercând să refacă secvența dictată de Simon. Prin citirea valorilor de pe axele verticale și orizontale ale joystick-ului se va analiza direcția aleasă de jucător, iar culoarea se va identifica în funcție de butonul ales. În funcție de rezultatul final se va afișa un mesaj pe ecranul LCD, împreună cu o secvență sonoră care anunță câștigarea rundei prin //**winSound**//, sau pierderea acesteia prin //**failSound**//. Jocul va reîncepe automat o nouă rundă. | + | Jucătorul își va pune la încercare memoria și acuratețea încercând să refacă secvența dictată de Simon. Prin citirea valorilor de pe axele verticale și orizontale ale joystick-ului se va analiza direcția aleasă de jucător, iar culoarea se va identifica în funcție de butonul ales. În funcție de rezultatul final se va afișa un mesaj pe ecranul LCD, împreună cu o secvență sonoră care anunță câștigarea rundei prin //**winSound**//, sau pierderea acesteia prin //**failSound**// folosind header-ul //**pitches.h**//. Jocul va reîncepe automat o nouă rundă. |
====== Rezultate Obţinute ====== | ====== Rezultate Obţinute ====== | ||
**Montajul complet al componentelor** | **Montajul complet al componentelor** | ||
Line 58: | Line 59: | ||
{{:pm:prj2021:abasoc:nicolaemaraioana_montaj3.jpeg?nolink&400|}} | {{:pm:prj2021:abasoc:nicolaemaraioana_montaj3.jpeg?nolink&400|}} | ||
- | **Demo** | + | ** Demo ** |
+ | |||
+ | [[https://www.youtube.com/watch?v=emiyoEnZaYg | Demo proiect]] | ||
+ | |||
+ | ** Cod sursă ** | ||
+ | |||
+ | {{:pm:prj2021:abasoc:simonsays.zip| simonsays.ino}} | ||
====== Jurnal ====== | ====== Jurnal ====== | ||
* **18 aprilie - 25 aprilie:** aprobarea proiectului, setarea obiectivelor și achizitionarea componentelor necesare | * **18 aprilie - 25 aprilie:** aprobarea proiectului, setarea obiectivelor și achizitionarea componentelor necesare | ||
Line 72: | Line 79: | ||
====== Concluzii ====== | ====== Concluzii ====== | ||
- | TODO | ||
+ | Sunt mândră de rezultatul obținut în urma implementării acestui proiect, deși ideea nu are o mare aplicabilitate sau impact în viață de zi cu zi. Mă bucur că am reușit să îmbin elemente hardware și software, fiind o experiență nouă pentru mine cu primul meu proiect Arduino. | ||
+ | |||
+ | Proiectul este funcțional și am reușit să îndeplinesc toate obiectivele pe care mi le-am setat la început de drum. Consider că, am reușit să integrez multe aspecte predate la laboratoare dar să aduc în implementarea mea și concepte noi. | ||
====== Bibliografie/Resurse ====== | ====== Bibliografie/Resurse ====== | ||
[[https://ocw.cs.pub.ro/courses/pm/prj2021/abasoc/simonsays | Link proiect]] | [[https://ocw.cs.pub.ro/courses/pm/prj2021/abasoc/simonsays | Link proiect]] | ||
+ | |||
+ | {{:pm:prj2021:abasoc:simonsays.pdf| Documentație proiect}} | ||
===== Resurse Hardware ===== | ===== Resurse Hardware ===== |