This is an old revision of the document!
Dispozitiv exploziv cu cifru
Autor: Marica Mihai
Grupa: 332CA
Introducere
Acest proiect este reprezentat de un dispozitiv exploziv cu cifru, care trebuie dezamorsat
într-o anumită perioadă de timp, pentru a nu “exploda”. Dezamorsarea implică decodificarea unei
parole de 4 cifre. Această idee de proiect mi-a venit în timpul în care am vizionat filmul “Străinul”, în care sunt prezente astfel de dispozitive.
Descriere generală
La începerea jocului, se va aprinde un LED de culoare roșie, semnalând faptul că dispozitivul
exploziv nu a fost încă dezamorsat. Pe ecranul LCD va apărea timpul rămas până la “explozie”
și patru spații marcate, care reprezintă cele patru cifre ale parolei. Odată cu trecerea timpului,
anumite cifre se vor afișa pe rând, pentru a face parola mai ușor de ghicit. Dacă parola este
decodificată, se va stinge LED-ul roșu și se va aprinde unul verde, semnificând dezamorsarea
dispozitivului și câștigarea jocului, iar dacă timpul se scurge fără ca parola să fie decodificată,
jocul va fi pierdut, “explozia” fiind reprezentată de un zgomot specific redat de cristalul
piezoelectric.
Hardware Design
Listă de piese:
Arduino
Breadboard
Ecran LCD I2C
Rezistențe (220 Ω)
Tastatură numerică
LED-uri
Cristal piezoelectric
Schemă electrică:
Software Design
Descrierea codului aplicaţiei (firmware):
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:
maricamihai_332ca_proiectpmsoftware.txt
Rezultate Obţinute
Concluzii
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.
Download
O să încarc arhiva în noaptea asta, până mâine dimineață!
Bibliografie/Resurse
Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe
Resurse Software şi
Resurse Hardware.
Export to PDF