Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2021:abasoc:simonsays [2021/05/30 00:18]
mara_ioana.nicolae [Descriere generală]
pm:prj2021:abasoc:simonsays [2021/06/02 23:54] (current)
mara_ioana.nicolae [Bibliografie/Resurse]
Line 16: Line 16:
 **Schema bloc** **Schema bloc**
  
-{{:​pm:​prj2021:​abasoc:​nicolaemaraioana_schemabloc.png?​nolink&​450|}}+{{:​pm:​prj2021:​abasoc:​nicolaemaraioana_schemabloc.png?​nolink&​500|}}
  
 ====== Hardware Design ====== ====== Hardware Design ======
Line 45: 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 58:
 {{:​pm:​prj2021:​abasoc:​nicolaemaraioana_montaj2.jpeg?​nolink&​430 |}} {{:​pm:​prj2021:​abasoc:​nicolaemaraioana_montaj2.jpeg?​nolink&​430 |}}
 {{:​pm:​prj2021:​abasoc:​nicolaemaraioana_montaj3.jpeg?​nolink&​400|}} {{:​pm:​prj2021:​abasoc:​nicolaemaraioana_montaj3.jpeg?​nolink&​400|}}
 +
 +** Demo **
  
 [[https://​www.youtube.com/​watch?​v=emiyoEnZaYg | Demo proiect]] [[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 73: 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 =====
pm/prj2021/abasoc/simonsays.1622323116.txt.gz · Last modified: 2021/05/30 00:18 by mara_ioana.nicolae
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0