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
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.
Codul sursa poate fi gasit aici.
Deconectarea unui fir este realizata prin o intrerupere de tip pin change, care seteaza un flag de verificare in loop-ul principal.