This shows you the differences between two versions of the page.
pm:prj2023:vstoica:dispozitiv_exploziv_cu_cifru [2023/05/28 18:53] mihai.marica1803 [Bibliografie/Resurse] |
pm:prj2023:vstoica:dispozitiv_exploziv_cu_cifru [2023/05/29 04:01] (current) mihai.marica1803 [Download] |
||
---|---|---|---|
Line 53: | Line 53: | ||
* Mediu de dezvoltare: Arduino 2.1.0 | * Mediu de dezvoltare: Arduino 2.1.0 | ||
* Librării: LiquidCrystal_I2C, Keypad | * Librării: LiquidCrystal_I2C, Keypad | ||
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | |
- | * surse şi funcţii implementate | + | Funcții realizate: |
+ | * **setup()**: Această funcție este apelată o singură dată când placa Arduino pornește. Inițializează modurile pinilor pentru LED-urile roșu și verde, inițializează afișajul LCD, generează o parolă aleatoare de 4 cifre și două poziții aleatoare pentru indicii, și afișează parola și numărătoarea inversă inițială pe LCD. | ||
+ | * **gameLost()**: Această funcție este apelată atunci când jocul este pierdut. Ea șterge conținutul afișajului LCD, activează LED-ul roșu într-un model de clipire, redă un sunet pe buzzer și afișează un mesaj care indică că bomba a explodat și jucătorul a pierdut. Apoi intră într-o buclă infinită, oprind efectiv programul. | ||
+ | * **gameWon()**: Această funcție este apelată atunci când jocul este câștigat. Ea șterge conținutul afișajului LCD, afișează un mesaj care indică că bomba a fost dezamorsată și jucătorul a câștigat, activează LED-ul verde, redă un sunet de victorie pe buzzer și intră într-o buclă infinită. | ||
+ | * **passwordMatches()**: Această funcție verifică dacă ghiciul introdus se potrivește cu parola generată. Compară fiecare cifră a ghicitorii cu cifra corespunzătoare din parolă. Dacă toate cifrele se potrivesc, returnează 1 (adevărat); în caz contrar, returnează 0 (fals). | ||
+ | * **loop()**: Această funcție este apelată în mod repetat după funcția setup(). Ea conține logica principală a jocului. Verifică timpul rămas, actualizează numărătoarea inversă pe afișajul LCD, face LED-ul roșu să clipească în funcție de timpul rămas, afișează indicii pe LCD la intervale specifice, citește intrările de la tastatură, și verifică dacă ghiciul introdus este corect. Dacă ghiciul este corect, apelează funcția gameWon(). Dacă ghiciul este incorect, afișează un mesaj de eroare, redă un sunet de eroare pe buzzer și resetează ghiciul. | ||
Codul aplicaţiei: | Codul aplicaţiei: | ||
Line 64: | Line 69: | ||
<note tip> | <note tip> | ||
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | {{:pm:prj2023:vstoica:maricamihai_332ca_rezultateobtinute1.jpg?300|}} |
- | </note> | + | |
+ | {{ :pm:prj2023:vstoica:maricamihai_332ca_rezultateobtinute2.jpg?300 |}} | ||
+ | |||
+ | {{:pm:prj2023:vstoica:maricamihai_332ca_rezultateobtinute3.jpg?300|}} | ||
+ | |||
+ | {{ :pm:prj2023:vstoica:maricamihai_332ca_rezultateobtinute4.jpg?300 |}} | ||
+ | </note> | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | <note tip> | ||
+ | Realizarea acestui proiect Arduino, care implică un joc cu un dispozitiv exploziv cu cifru, a fost o experiență captivantă și educativă. Proiectul a presupus o serie de etape complexe, inclusiv construirea și programarea dispozitivului, crearea unui mecanism de cifrare și dezvoltarea unui sistem de detecție a codului corect pentru dezamorsarea dispozitivului. | ||
+ | |||
+ | Prin intermediul acestui proiect, am dobândit cunoștințe tehnice solide în domeniul microcontrolerelor și al programării Arduino. Am învățat cum să utilizez componente electronice, cum ar fi tastatura numerică și ecranul LCD, pentru a interacționa cu utilizatorul și pentru a crea o experiență captivantă în joc. | ||
+ | |||
+ | În plus, acest proiect mi-a oferit o perspectivă valoroasă asupra utilizării tehnologiei într-un mod distractiv și interactiv. Am învățat cum tehnologia poate fi aplicată în jocuri și cum poate stimula creativitatea și implicarea utilizatorului. | ||
+ | |||
+ | În concluzie, realizarea acestui proiect Arduino a fost o experiență remarcabilă, care mi-a oferit nu doar cunoștințe tehnice, ci și abilități practice și o mai bună înțelegere a potențialului tehnologiei în diverse domenii. Acest proiect a demonstrat importanța inovației și m-a inspirat să continui să explorez și să dezvolt noi aplicații tehnologice în viitor. | ||
+ | </note> | ||
===== Download ===== | ===== Download ===== | ||
<note warning> | <note warning> | ||
- | 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ă ;-). | + | {{:pm:prj2023:vstoica:maricamihai_332ca_proiectpmfinal.zip|}} |
- | + | ||
- | 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> | </note> | ||
Line 82: | Line 99: | ||
Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | ||
- | * Laboratoarele de PM | + | * https://ocw.cs.pub.ro/courses/pm (Laboratoare de PM) |
* https://youtu.be/EAeuxjtkumM | * https://youtu.be/EAeuxjtkumM | ||
* https://youtu.be/SiiH5Yr-9Hc | * https://youtu.be/SiiH5Yr-9Hc | ||
Line 89: | Line 106: | ||
- | * https://cleste.ro (de aici am cumpărat piesele) | + | * https://cleste.ro |
</note> | </note> | ||
<html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> |