Sep 2025 - Dec-2025
Our project is an interactive escape room puzzle box that guides players through a series of challenges using a button keypad and an LCD display. The LCD screen serves as the gamemaster and presents clues for each puzzle. Players enter their answers by pressing on the colored buttons. When the correct combination of buttons is entered, the system activates a servo motor to unlock the next compartment and moves on to the next question.
The puzzle has two lockable boxes. Solving the first puzzle causes the first servo motor to rotate and unlock the first box. Inside this box, players find a physical key and the second puzzle stage gets displayed on the LCD. Entering the correct sequence for the second stage triggers the second servo motor, which unlocks a larger box containing a 3D printed chest. The key from the first box opens this chest, which holds the final reward, such as a piece of candy.
Throughout development we created a working model of the full puzzle system and 3D printed the chest that appears at the end of the game. We tested all wiring and confirmed that both servo motors and the LCD display can run from the same powered row connected to the Raspberry Pi Pico. This simplified our setup and prevented overloading any individual pin.
For data collection, we recorded the time it took each user to complete each puzzle. The timer starts after each question is asked and ends once the correct sequence is inputted. We then used MATLAB to create a scatter plot of how long each user took to complete the first and second puzzle, as well as the total time. Then, the average, median, and standard deviation was calculated and plotted on a grouped bar graph.
Overall, the project combines puzzle design, physical interaction, electronics, and user experience. It creates a compact escape room that moves players step by step through clues, button sequences, and mechanical reveals, ending with a final prize.
Getting Started
Place the puzzle box on a flat surface. When the system turns on, the LCD screen will show a welcome message and instructions.
How to Play
Final Step
Your reward will appear when you use the key to open the chest by turning counterclockwise.
Safety Notes
Do not force the servo operated parts.
Do not force the drawers open.
Throughout the project we faced technical and design challenges that shaped our final system. Our first challenge was deciding on the main interaction method. We originally planned to use sensors to create an alarm-style system with RFID tags, but this approach was complicated and did not support clear puzzle progression. Because of this, we shifted to a button keypad and LCD clues. This change made the experience more consistent and easier to control.
Powering all components was another concern. The two servo motors and the LCD screen draw more current than a single Pico pin can handle. At first we were unsure if they could share the same power source. After testing, we placed them on the same powered row and used jumper wires to distribute power. This solved the issue and kept the wiring simple.
Puzzle difficulty was also a challenge. Our early ideas seemed too confusing, but after testing the puzzles ourselves we realized that the clues made sense without being too easy. Testing helped us understand how players interpret the clues and what adjustments were needed.
We also had mechanical challenges. The servo motors needed to move smoothly, so we tested different angles and timings to ensure that the drawers could unlock and move without getting stuck. We also made sure they could relock properly after the game concluded. The chest that holds the final prize was 3D printed, and we had to make sure its design fit both the motors and the objects placed inside.
Finally, we discussed how to collect data about players and explored several options. We decided to use a time log within the code that records how long each puzzle takes, which became our method of data collection.
I worked on wiring the board, setting up the keypad, and connecting the LCD display. He also helped write, comment, and debug the game code. He also wrote the matlab code and plotted the data.
My partner designed the puzzle box, completed the 3D printing, and created the website.
Both team members worked together on puzzle design, testing, troubleshooting code, installed and tested the servo motors, and documentation.
MicroPython Code: