This shows you the differences between two versions of the page.
pm:prj2023:drtranca:whack_a_mole [2023/05/26 16:10] miruna.voinea [Rezultate Obţinute] |
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 64: | Line 64: | ||
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ță. | 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 buton aprins: în caz afirmativ, scorul este incrementat, iar în caz negativ, jucătorul pierde 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 79: | Line 81: | ||
{{ :pm:prj2023:drtranca:hardware_whack_a_mole.jpg?600 }} | {{ :pm:prj2023:drtranca:hardware_whack_a_mole.jpg?600 }} | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | {{ :pm:prj2023:drtranca:whack_a_mole_joc.png?600 }} | ||
+ | |||
+ | |||
Line 88: | 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 104: | 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> |