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
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 LiquidCrystal_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.
Codul sursa poate fi gasit aici[2].