Differences

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

Link to this comparison view

pm:prj2023:drtranca:whack_a_mole [2023/05/07 14:50]
miruna.voinea [Introducere]
pm:prj2023:drtranca:whack_a_mole [2023/05/29 10:23] (current)
miruna.voinea [Software Design]
Line 6: Line 6:
 ===== Introducere ===== ===== Introducere =====
  
-Proiectul are la bază faimosul joc Whack a mole: există mai găuri pe unde cârtițele pot scote capul, iar obiectivul jucătorului este de a le împiedica să iasă din ascunzătoare prin lovituri cu un ciocănel.+Proiectul are la bază faimosul joc Whack a mole: există mai multe găuri pe unde cârtițele pot scoate ​capul, iar obiectivul jucătorului este de a le împiedica să iasă din ascunzătoare prin lovituri cu un ciocănel.
  
   *Scopul proiectului este de a realiza un joc distractiv prin care să îmi pun în aplicare cunoștințele dobândite la PM.   *Scopul proiectului este de a realiza un joc distractiv prin care să îmi pun în aplicare cunoștințele dobândite la PM.
Line 25: Line 25:
  
  
-<note tip> 
-O schemă bloc cu toate modulele proiectului vostru, atât software cât şi hardware însoţită de o descriere a acestora precum şi a modului în care interacţionează. 
- 
-Exemplu de schemă bloc: http://​www.robs-projects.com/​mp3proj/​newplayer.html 
-</​note>​ 
  
 ===== Hardware Design ===== ===== Hardware Design =====
Line 41: Line 36:
   *Breadboard   *Breadboard
   *Fire de legătură   *Fire de legătură
 +
 +{{ :​pm:​prj2023:​drtranca:​schema_electrica_pm_voinea_miruna.png?​600 }}
  
 <note tip> <note tip>
Line 52: Line 49:
 ===== Software Design ===== ===== Software Design =====
  
 +Mediul de dezvoltare folosit: Arduino IDE
 +
 +Schemă electrică realizată cu Tinkercad
 +
 +Bibliotecă externă: LiquidCrystal_I2C.h
 +
 +Flow joc:
 +  * La început, jucătorul are 3 vieți.
 +  * Se aprinde unul dintre cele 4 LED-uri reprezentând cârtițele.
 +  * Jucătorul poate lovi o cârtiță apăsând pe butonul din dreptul LED-ului.
 +  * Dacă LED-ul se stinge înainte ca jucătoul să apese pe buton sau se apasă un buton greșit, jucătorul pierde o viață.
 +  * Jocul se termină atunci când numărul de vieți ajunge să fie 0.
 +
 +Am folosit timer1 pentru a controla intervalul de timp în care un LED este aprins, astfel încât atunci când timpul expiră, jucătorul să piardă o viață.
 +
 +Atunci când se apasă un buton, se declanșează o întrerupere,​ butonul fiind identificat cu ajutorul funcției checkBit. Se verifică dacă butonul corespunde ultimului LED aprins: în caz afirmativ, scorul este incrementat,​ iar în caz contrar, jucătorul pierde o viață.
 +
 +Pentru a afișa scorul și numărul de vieți rămase, se folosește LCD-ul cu modul I2C.
  
 <note tip> <note tip>
Line 62: Line 77:
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
 +
 +Proiectul este complet funcțional.
 +
 +{{ :​pm:​prj2023:​drtranca:​hardware_whack_a_mole.jpg?​600 }}
 +
 +
 +
 +
 +{{ :​pm:​prj2023:​drtranca:​whack_a_mole_joc.png?​600 }}
 +
 +
 +
 +
 +Link demo: https://​youtu.be/​IChtsEEhekQ
  
 <note tip> <note tip>
Line 68: Line 97:
  
 ===== Concluzii ===== ===== Concluzii =====
 +
 +Sunt foarte mulțumită de rezultatele obținute deoarece am reușit să implementez exact ce mi-am propus.
 +
 +Întregul proiect a fost o experiență plăcută: m-a ajutat să înțeleg mai bine noțiunile explicate la laborator și chiar am descoperit că proiectele cu Arduino nu sunt atât de complicate pe cât credeam.
  
 ===== Download ===== ===== Download =====
 +
 +<note tip>
 +Codul sursă:
 +{{ :​pm:​prj2023:​drtranca:​code_whack_a_mole.zip }}
 +</​note>​
  
 <note warning> <note warning>
Line 84: Line 122:
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
 +
 +Pentru interacțiunea cu display-ul lcd, am folosit biblioteca LiquidCrystal_I2C.h preluată de pe
 +https://​www.optimusdigital.ro/​ro/​optoelectronice-lcd-uri/​2894-lcd-cu-interfata-i2c-si-backlight-albastru.html?​search_query=lcd+i2c&​results=18
 +
 +Pentru utilizarea întreruperilor:​
 +https://​forum.arduino.cc/​t/​multiple-hardware-interrupts-for-arduino-uno/​571974/​14
 +
 +Datasheet: https://​ocw.cs.pub.ro/​courses/​_media/​pm/​atmel-7810-automotive-microcontrollers-atmega328p_datasheet.pdf
  
 <​note>​ <​note>​
pm/prj2023/drtranca/whack_a_mole.1683460224.txt.gz · Last modified: 2023/05/07 14:50 by miruna.voinea
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