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):

  • Mediu de dezvoltare: Arduino 2.1.0
  • Librării: LiquidCrystal_I2C, Keypad

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

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF

pm/prj2023/vstoica/dispozitiv_exploziv_cu_cifru.txt · Last modified: 2023/05/29 04:01 by mihai.marica1803
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