*** WORK IN PROGRESS, NOT QUITE COMPLETE! ***
Released under the Creative Commons Non-commerical use liciense, https://creativecommons.org/licenses/by-nc/3.0/legalcode In summary, if you want to make this project for friends and family to play for free, go for it! If you want to use this project as a base and modify it for friends and family to play for free, go for it! If you want to use this project or any modification of it for a paid experience of any kind, you CANNOT go for it! I did this project as a labor of love for free, and want it to remain that way. Players are in the role of MI6 operatives who have been given the task of figuring out how to use the contents of the case to destroy a Russian satellite nuclear weapon. The case contains six 3d printed puzzle boxes, six 3d printed game panels, and eight 3d printed cards for the card reader. Also included in the case are documents for each panel (in Russian!), a pen and paper and a Samsung tablet with Google Translate installed. The panels are:- Message Center
- Control Switch Panel
- Satellite Modem
- Firewall
- Nuclear Safeguard Panel
- Reactor Control Rods
- This panel contains the game clock, speakers for audio messages, the 2x16 LCD screen for text messages, volume and brightness
controls, and a repeat last audio message button.
- Each panel other than the message center must be activated in order. The control switch panel itself is first used to "power up" the
system, and then the other primary game panels in turn. The switch positions for each panel are contained in the 3d printed puzzle boxes.
- This is a tone-based puzzle with 6 buttons: 1 each for the 5 different tones and one to play the song that the player is trying to
duplicate. There are 15 notes in the random song.
- Once the modem is connected, the firewall must be breeched. This is a "Mastermind"-style puzzle of 5 positions and 8 different colors.
- After breeching the firewall, the player(s) must deactivate the nuclear safeguard controller. This is game with 8 colored keycards that must
be inserted into the card reader in the proper order.
- This is a "Blackbox"-style game where the players send in gamma rays into a blackbox and observe where the rays exit. They must use this information
to deduce where the control rods are in order to misalign them, which will engage the Starfield self-destruct.
- Message Center
- TM1637 4-digit 7-segment LED display for the clock
- HD44780-based 1602 LCD panel
- 3W speaker
- DFRobot DFPlayer mini
- 10k potentiometer for audio volume
- 10k potentiometer for LCD contrast
- 10k potentiometer for the APA-106 LEDs (in other panels) brightness
- Control Switch Panel
- 6 toggle switches
- LED light panel underneath the panel title.
- Satellite Modem
- 6 x push buttons
- LED light panel underneath the panel title.
- Firewall
- 6 x push buttons
- 5 x APA-106 Neopixels
- LED light panel underneath the panel title.
- Nuclear Safeguard Panel
- TCS34725 color sensor
- TCRT5000 IR reflective sensor (triggers the TCS34725 to turn on it's LED and read the color card)
- LED light panel underneath the panel title.
- Reactor Control Rods
- 32 x APA-106 Neopixels
- 1 x 64 Neopixel (8x8) panel
- 2 Analog joysticks w/integrated push button on the stick
- 1 push button
- LED light panel underneath the panel title.
In addition, the lid has a magnetic reed switch to determine whether the case is open or closed, as well as a Wyze Cam v2 to record/broadcast the players in the game. The camera turns on when the case is opened and shuts down when the case is closed. The individual panels are, in general, connected by 3 wires: +5v, ground, and a single wire PJON communication wire. The PJON wire is used to send messages between panels as necessary.
Since each panel has its own Arduino Nano to control its operations, each panel also has its own software project (siblings to this Github project). Those projects are:- Escape Room v2 Master
- Escape Case Switches
- Escape Case Modem
- Escape Escape Case Firewall
- Escape Room Control Room
- Escape Room Reactor
As you can tell, I'm a model of strict naming conventions. ;)
The code is all written is C and not C++ for one simple reason - I'm a full stack Java developer and C++ (which I used to code in years ago) has a syntax just different enough from Java that I didn't want to confuse myself, so I stuck with straight C (which I also used to code years ago). The source code itself is heavily commented so I won't go further into details here, just look through the source for more information.
When the battery is connected the system will generate all the random switch settings for the 5 panels. These will then be displayed at 10 second intervals on the LCD display in order for the gamemaster to write them down. The display will then blank, and the gamemaster will put the switch positions into their respective 3d-printed puzzle boxes. The case may then be closed, at which time it is automatically "armed". This is a lower-power state for the case and the 6700 mah battery will last for about 30 hours before it is exhausted, but the game must begin within no more than about 3 hours to ensure enough battery for a game to be completed. When the case is next opened the player(s) will hear an introductory audio file, and then the 60 minute countdown starts.