Differences

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

Link to this comparison view

pm:prj2023:avaduva:vlad_petrovici [2023/05/30 11:44]
vlad.petrovici1602 [Jurnal]
pm:prj2023:avaduva:vlad_petrovici [2023/05/31 20:38] (current)
vlad.petrovici1602 [Rezultate Obţinute]
Line 15: Line 15:
  
 ^ Tip componentă ​     ^ Număr piese         ^ ^ Tip componentă ​     ^ Număr piese         ^
-| Arduino ​   | 1     |+| Arduino ​Uno  ​| 1     |
 | Piezo Buzzer ​   | 1 | | Piezo Buzzer ​   | 1 |
-| LCD I2C    | 1     |+| LCD I2C 16x2    | 1     |
 | Buton    | 3     | | Buton    | 3     |
 | LED    | 3     | | LED    | 3     |
-| Micro Servo Motor  | 1     |+| Micro Servo SG90  | 1     |
  
 {{:​pm:​prj2023:​avaduva:​tinkercad_vp.png?​500|}} {{:​pm:​prj2023:​avaduva:​tinkercad_vp.png?​500|}}
Line 26: Line 26:
 ===== Software Design ===== ===== Software Design =====
  
-Programul va genera un cod random pe care il va sugera prin aprinderea beculețelor.+Mediul folosit este Arduino IDE, cu bibliotecile:​ Servo.h și LiquidCrystal_I2C.h.
  
-User-ul ​va trebui să deslușească codul din indicii, apoi dacă va apăsa secvența corectă cu ajutorul butoanelor va rezolva una dintre provocări.+Programul ​va genera un cod pe care il va sugera ori prin aprinderea beculețelor, ori prin hint-uri offline.
  
-Timer-ul va fi arătat pe LCD cu I2Ciar dacă acesta se va terminajocul va fi pierdut, iar comoara blocată.+User-ul va trebui să deslușească codul din indiciiapoi dacă va apăsa secvența corectă cu ajutorul butoanelor va rezolva una dintre provocări și avansează la urmatorul nivel. Este folosit în loop-ul programului o mașină de stări în funcție de nivelul la care a ajuns jucătorul. Printr-o variabilă de tip boolse va afișa o singură dată setup-ul pentru fiecare nivel. De asemenea, input-ul este afișat pe LCD, iar greșelile sunt semnalate de buzzer, dar și trecerea la nivelul următor. Când se apasă un buton, acesta e verificat să fie cel corect din secvență.
  
-Dacă provocările sunt terminate înainte de scurgerea timpuluimotorașul se va roti pentru a deschide cufărul folosind PWM. +Acest nivel hint-uiește că utilizatorul are un mesaj, iar acesta trebuie să înțeleagă sa verifice PC-ul, adică monitorul serial. De acolodeslușește misterul și apasă butonul corect. Acesta are 2 încercări ​pentru a nimeri răspunsul corect, altfel buzzer-ul va cânta o melodie de eșec, iar jocul se va reseta.
-===== Rezultate Obţinute =====+
  
-<note tip> +Nivelul 3 reprezintă folosirea motorașului pentru a indica ultimele indicii. Acesta este comandat folosing Fast PWM și biblioteca Servo.
-Care au fost rezultatele obţinute în urma realizării proiectului vostru. +
-</​note>​+
  
 +Dacă eșuează, și pierde toate viețile, jocul se va reseta. Toate mesajele principale sunt afișate pe un LCD prin I2C. Pe ecran când se așteaptă input de la jucător, e afișat un cursor care blink-uiește intermitent. Acesta folosește funcția millis() pentru a se afișa doar la un anumit interval de timp. Mesajul secundar din nivelul 2 este afișat în monitorul serial folosing UART. Melodiile sunt create folosind funcția tone() și secvențele de note preluate din referința [1] (figurată în secțiunea aferentă).
 +
 +Dacă provocările sunt terminate în timp util, motorașul se va roti pentru a deschide cufărul.
 +===== Rezultate Obţinute =====
 +{{:​pm:​prj2023:​avaduva:​puzzle_box_final.png?​500|}}
 +[[https://​drive.google.com/​file/​d/​1ZSNrAF6WNEsDdbHpyQNS_if4fDLmGUMT/​view?​usp=sharing]] (video simulare flow)
 ===== Concluzii ===== ===== Concluzii =====
  
-===== Download =====+Proiectul mi-a trezit o curiozitate sporită acum ca se vede ca posibilitățile sunt infinite. Au fost unele idei care nu au putut fi implementate de data aceasta, însă rezultatul este satisficător și l-aș putea vedea folosit în Escape Rooms de specialitate sau în evenimente de tip Treasure Hunt.
  
-<note warning>​ +Am fost concentrat mai mult pe integrarea câtor ​mai multe medii diferite de provocări, acest fapt fiind ideal pentru activitățile engaging de tip puzzleșidin păcatenu a fost timp pentru ​un afișaz mai prietenosdar am idei despre încapsularea proiectului în cutiuțe pe diferite module șintegrarea unui cufăcare să reprezinte recompensa finală. 
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului:​ surseschemeetc. Un fişier README, un ChangeLogun script de compilare şcopiere automată pe uC crează întotdeauna o impresie bună ;-). +===== Download =====
- +
-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>​+
  
 +{{:​pm:​prj2023:​avaduva:​puzzle_box.zip|}} (sursa)
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
pm/prj2023/avaduva/vlad_petrovici.1685436287.txt.gz · Last modified: 2023/05/30 11:44 by vlad.petrovici1602
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