This shows you the differences between two versions of the page.
pm:prj2023:avaduva:vlad_petrovici [2023/05/30 11:58] vlad.petrovici1602 [Download] |
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 30: | Line 30: | ||
Programul va genera un cod pe care il va sugera ori prin aprinderea beculețelor, ori prin hint-uri offline. | Programul va genera un cod pe care il va sugera ori prin aprinderea beculețelor, ori prin hint-uri offline. | ||
- | 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. | + | 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ță. |
- | 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. | + | 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. |
- | Nivelul 3 reprezintă folosirea motorașului pentru a indica ultimele indicii. | + | Nivelul 3 reprezintă folosirea motorașului pentru a indica ultimele indicii. Acesta este comandat folosing Fast PWM și biblioteca Servo. |
- | Dacă eșuează, și pierde toate viețile, jocul se va reseta. Toate mesajele principale sunt afișate pe un LCD prin I2C. Mesajul secundar din nivelul 2 este afișat în monitorul serial folosing UART. | + | 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 folosind PWM. | + | Dacă provocările sunt terminate în timp util, motorașul se va roti pentru a deschide cufărul. |
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
- | + | {{:pm:prj2023:avaduva:puzzle_box_final.png?500|}} | |
- | [[https://drive.google.com/file/d/1YLfr5MNFoQlgk-oqytEVd8Gwz-0S1By8/view?usp=share_link]] | + | [[https://drive.google.com/file/d/1ZSNrAF6WNEsDdbHpyQNS_if4fDLmGUMT/view?usp=sharing]] (video simulare flow) |
===== Concluzii ===== | ===== Concluzii ===== | ||
Line 49: | Line 49: | ||
===== Download ===== | ===== Download ===== | ||
- | {{:pm:prj2023:avaduva:puzzle_box.zip|}} | + | {{:pm:prj2023:avaduva:puzzle_box.zip|}} (sursa) |
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== |