This is an old revision of the document!
Dispozitivul este in esenta un puzzle care trebuie rezolvat intr-un timp limita. Este gandit sa fie folosit in aplicatii cum ar fi evenimente de airsoft / paintball.
Inspiratia acestui dispozitiv provine din alte proiecte similare[1], Keep Talking and Nobody Explodes si Counter-Strike.
El are rolul de a aduce un plus de realism evenimentelor si a facilita scenarii de joc mai complexe.
Pentru a amorsa bomba, user-ul trebuie sa introduca codul folosind tastatura matriceala.
Pentru a dezamorsa bomba, user-ul trebuie sa rezolve cele 2 puzzle-uri in timpul alocat.
- Arduino UNO R3
- LCD 1602 I2C
- 4x Butoane
- 6x LED-uri de diverse culori
- Tastatura Matriceala 3×4
- 2x Buzzer
- Diverse Fire / Rezistori
Diagrama hardware:
Dispozitivul trece prin 4 etape:
1.) Configurare initiala - se genereaza secventa de dezamorsare pentru jocul de memorie si se alege la intamplare firul de dezamorsare.
2.) Armare bomba - asteapta introducerea codului de armare.
3.) Dezamorsare bomba - incepe numaratoare inversa si se testeaza conditiile de dezamorsare.
4.) Awaiting reset - dupa ce expira timpul sau bomba este dezamorsata bomba afiseaza statusul si un prompt de resetare pentru a incepe un joc nou,
LCD-ul este controlat prin intermediul protocolului I2C. Am folosit libraria LiqudCrystal_I2C.h.
Keypad-ul este controlat prin libraria Keypad.h
Pentru a tine cont de timpul ramas pana la dezamorsare, am folosit un hardware timer configurat sa genereze o intrerupere la fiecare secunda in care este scazut timpul ramas pana la explozie si este setat un flag de reactualizare display.
Deconectarea unui fir este realizata prin o intrerupere de tip pin change, care seteaza un flag de verificare in loop-ul principal.
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.
[1] - https://www.youtube.com/watch?v=jVqHIyeJJKY