This shows you the differences between two versions of the page.
pm:prj2023:avaduva:vlad_petrovici [2023/05/30 11:47] vlad.petrovici1602 [Rezultate Obţinute] |
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 I2C, iar dacă acesta se va termina, jocul va fi pierdut, iar comoara blocată. | + | 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 ș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 bool, se 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 timpului, motoraș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 acolo, desluș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 ===== | + | |
- | [[https://drive.google.com/file/d/1YLfr5MNFoQlgk-oqytEVd8Gwz-0S1By8/view?usp=share_link]] | + | Nivelul 3 reprezintă folosirea motorașului pentru a indica ultimele indicii. Acesta este comandat folosing Fast PWM și biblioteca Servo. |
- | ===== Concluzii ===== | + | |
- | ===== Download ===== | + | 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ă). |
- | <note warning> | + | Dacă provocările sunt terminate în timp util, motorașul se va roti pentru a deschide cufărul. |
- | 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ă ;-). | + | ===== 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 ===== | ||
- | 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**. | + | 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> | + | |
+ | 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, și, din păcate, nu a fost timp pentru un afișaz mai prietenos, dar am idei despre încapsularea proiectului în cutiuțe pe diferite module și integrarea unui cufăr care să reprezinte recompensa finală. | ||
+ | ===== Download ===== | ||
+ | {{:pm:prj2023:avaduva:puzzle_box.zip|}} (sursa) | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== |