This shows you the differences between two versions of the page.
pm:prj2023:avaduva:vlad_petrovici [2023/05/15 17:08] vlad.petrovici1602 [Descriere generală] |
pm:prj2023:avaduva:vlad_petrovici [2023/05/31 20:38] (current) vlad.petrovici1602 [Rezultate Obţinute] |
||
---|---|---|---|
Line 11: | Line 11: | ||
{{ :pm:prj2023:avaduva:puzzle_box.png }} | {{ :pm:prj2023:avaduva:puzzle_box.png }} | ||
- | \\ Utilizatorul interacționează cu senzorii și butoanele pentru a rezolva quest-urile în timpul limită. Acesta primește feedback vizual (prin display) și auditiv (prin buzzer), iar dacă rezolvă ghicitorile, cufărul se va deschide. | + | Utilizatorul interacționează cu senzorii și butoanele pentru a rezolva quest-urile în timpul limită. Acesta primește feedback vizual (prin display) și auditiv (prin buzzer), iar dacă rezolvă ghicitorile, cufărul se va deschide. |
===== Hardware Design ===== | ===== Hardware Design ===== | ||
- | <note tip> | + | ^ Tip componentă ^ Număr piese ^ |
- | Aici puneţi tot ce ţine de hardware design: | + | | Arduino Uno | 1 | |
- | * listă de piese | + | | Piezo Buzzer | 1 | |
- | * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri, e.g. http://www.captain.at/electronic-atmega16-mmc-schematic.png) | + | | LCD I2C 16x2 | 1 | |
- | * diagrame de semnal | + | | Buton | 3 | |
- | * rezultatele simulării | + | | LED | 3 | |
- | </note> | + | | Micro Servo SG90 | 1 | |
+ | {{:pm:prj2023:avaduva:tinkercad_vp.png?500|}} | ||
+ | {{:pm:prj2023:avaduva:schematic_vp.png?600|}} | ||
===== Software Design ===== | ===== Software Design ===== | ||
+ | Mediul folosit este Arduino IDE, cu bibliotecile: Servo.h și LiquidCrystal_I2C.h. | ||
- | <note tip> | + | Programul va genera un cod pe care il va sugera ori prin aprinderea beculețelor, ori prin hint-uri offline. |
- | Descrierea codului aplicaţiei (firmware): | + | |
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | |
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | |
- | * (etapa 3) surse şi funcţii implementate | + | |
- | </note> | + | |
- | ===== Rezultate Obţinute ===== | + | 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ță. |
- | <note tip> | + | 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. |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
- | </note> | + | |
- | ===== Concluzii ===== | + | Nivelul 3 reprezintă folosirea motorașului pentru a indica ultimele indicii. Acesta este comandat folosing Fast PWM și biblioteca Servo. |
- | ===== 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> | + | |
- | ===== Jurnal ===== | + | 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 ===== | ||
- | <note tip> | + | {{:pm:prj2023:avaduva:puzzle_box.zip|}} (sursa) |
- | 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> | + | * [[https://github.com/tsukisan/Arduino/tree/master/WiiClassicSoundboard]] |
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | |
- | </note> | + | |
- | + | ||
- | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | + | |