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:57]
vlad.petrovici1602 [Software Design]
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 =====
  
-<note warning>​ +{{:pm:prj2023:avaduva:puzzle_box.zip|}} ​(sursa)
-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ă ;-). +
- +
-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>​ +
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
pm/prj2023/avaduva/vlad_petrovici.1685437021.txt.gz · Last modified: 2023/05/30 11:57 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