Files
escape_gallery_obsidian_vault/Projects/Testing/Escape Room Simulator.md
T

121 lines
6.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
active: true
tags:
- project
- eg
created: 2025-01-13 10:59
---
## Goal
Create a simulator with:
- Puzzle controller RPi
- Push button puzzle
- Locked box using solenoid with internal lights
- Sounds
- Firewall
- NATS
- 24VDC power supply with power take-off for testing external puzzles
- Room controller RPi
- Server software
- Web UI
- Ethernet hub between controller and puzzles
## Active Tasks
- [ ] Re-wire the 5V/12V power to the PWM board ➕ 2026-01-11
- [ ] Add another light to the top of the board with a MOSFET ➕ 2026-02-07
- [ ] Finish merging control code from `odin` back to the simulator ➕ 2025-12-28
- [ ] Finish creating a simple puzzle code using buttons➕ 2025-04-03
- [ ] Check all logging and and ensure consistency ➕ 2026-01-04
- [ ] Make a latch for the box ➕ 2026-01-26
- [ ] Install lip and LED lights in locked box ➕ 2025-02-22
- [ ] Add MOSFET switch for the latch ➕ 2025-12-07
- [ ] Rewire 12V power to a MOSFET switch ➕ 2025-12-07
- [ ] Add sound effects that can be played ➕ 2025-12-08
- [ ] Install handles on the box ➕ 2025-05-30
- [ ] Install servo latch in box ➕ 2025-04-29
- [ ] Create simple puzzle using RFID readers ➕ 2025-05-31
## Future Tasks
- [ ] Install an ADC with a touch puzzle ➕ 2026-01-11
- [ ] Design a case for the LED panel ➕ 2025-12-28
- [ ] Design a case for the LEDs ➕ 2025-12-28
- [ ] Rewire the power to the I2C PWM module ➕ 2025-12-07
- [ ] Add optical sensor to the simulator ➕ 2025-11-06
- [ ] Add sound sensor to the simulator ➕ 2025-12-08
## Archived Tasks
- [x] Install the switch/plug box on the simulator ➕ 2026-02-04 ✅ 2026-02-06
- [x] Re-install a power supply for `sim-ctrl` ➕ 2026-01-11 ✅ 2026-02-04
- [x] Create Flutter app to monitor puzzle ➕ 2025-04-03 ✅ 2025-12-07
- [x] Install RFID readers next to buttons ➕ 2025-03-31 ✅ 2025-12-07
- [x] Install colored LEDs above the buttons with resin ➕ 2025-04-18 ✅ 2025-12-07
- [x] Create puzzle controller setup scripts and check in to source control ➕ 2025-05-21 ✅ 2025-06-03
- [x] Setup RPi development system ➕ 2025-05-14 ✅ 2025-06-03
- [x] Create model for holding the NVRAM SSD for the development RPi 4 ➕ 2025-05-29 ✅ 2025-05-31
- [x] Solder a new GPIO v3 board ➕ 2025-05-30 ✅ 2025-06-02
- [x] Create an RFID reader box ➕ 2025-03-31 ✅ 2025-05-30
- [x] Install false bottom in lock box ➕ 2025-04-29 ✅ 2025-05-30
- [x] Design and print 12VDC power supply end cover ➕ 2025-01-13 ✅ 2025-05-04
- [x] Reflash the RPi with new WiFi password ➕ 2025-04-29 ✅ 2025-05-04
- [x] Install some buttons ➕ 2025-01-13 ✅ 2025-04-29
- [-] Route a channel for LED light lip in box ➕ 2025-01-16 ❌ 2025-04-29
- [x] Figure out which 12VDC relay to use with RPi ➕ 2025-01-31 ✅ 2025-04-29
- [x] Design box for 12VDC relay ➕ 2025-01-17 ✅ 2025-04-29
- [x] Configure `nftables` for `sim-ctrl` ➕ 2025-03-31 ✅ 2025-04-03
- [x] Disable WiFi connection on `sim-ctrl` ➕ 2025-03-30 ✅ 2025-04-03
- [x] Test `ssh` tunneling through to `sim-puz1` ➕ 2025-02-22 ✅ 2025-04-03
- [x] Install NATs server on `sim-ctrl` ➕ 2025-04-03 ✅ 2025-04-03
- [x] Test pub/sub from puzzle machine ➕ 2025-04-03 ✅ 2025-04-03
- [x] Configure `dnsmasq` on `sim-ctrl` and configure DHCP and DNS ➕ 2025-02-22 ✅ 2025-03-30
- [x] Install mag lock box to simulator ➕ 2025-01-13 ✅ 2025-03-16
- [x] Install Ubuntu on `sim-room` controller ➕ 2025-02-22 ✅ 2025-02-24
- [x] Rename system to `sim-room` ➕ 2025-02-24 ✅ 2025-02-24
- [x] Configure `sim-room` WiFi for `Valhalla` ➕ 2025-02-22 ✅ 2025-02-24
- [x] Configure static IP on `eth0` ➕ 2025-02-24 ✅ 2025-03-16
- [x] Install Raspian on `sim-puzzle-1` controller ➕ 2025-02-22 ✅ 2025-03-16
- [x] Design and print 12VDC mounting brackets ➕ 2025-01-13 ✅ 2025-01-13
- [x] Design and print mounting bracket for RPi units ➕ 2025-01-13 ✅ 2025-01-13
- [x] Install 12VDC power supply ➕ 2025-01-13 ✅ 2025-01-14
- [x] Design and print network switch holder ➕ 2025-01-14 ✅ 2025-01-14
- [x] Install outlet with 12VAC plug ➕ 2025-01-13 ✅ 2025-01-16
- [x] Install controller RPi ➕ 2025-01-13 ✅ 2025-01-16
- [x] Install ethernet switch ➕ 2025-01-13 ✅ 2025-01-16
- [x] Design better box for buck converters ➕ 2025-01-13 ✅ 2025-01-17
- [x] Design better box for puzzle RPi breakout board ➕ 2025-01-17 ✅ 2025-01-31
- [x] Install 12VDC bus bars ➕ 2025-01-17 ✅ 2025-01-31
- [x] Install puzzle RPi ➕ 2025-01-13 ✅ 2025-01-31
- [x] Install breakout board for puzzle RPi ➕ 2025-01-13 ✅ 2025-01-31
- [x] Install buck converter for 5VDC power for puzzle RPi ➕ 2025-01-13 ✅ 2025-01-31
- [x] Install a buck converter for 5VDC power to controller RPi ➕ 2025-01-13 ✅ 2025-01-31
- [x] Make a network cable from hub to controller RPi ➕ 2025-01-31 ✅ 2025-02-06
- [x] Make a network cable from hub to puzzle RPi ➕ 2025-01-31 ✅ 2025-02-06
- [x] Set two buck boards at 5VDC for 12VDC input ➕ 2025-01-31 ✅ 2025-02-06
- [x] Make a cable from power bar to controller RPi buck board ➕ 2025-01-31 ✅ 2025-02-06
- [x] Make a cable from power bar to puzzle RPi ➕ 2025-01-31 ✅ 2025-02-06
- [x] Build the mag lock box ➕ 2025-01-13 ✅ 2025-02-11
- [x] Fix icon for UI ➕ 2025-12-07 ✅ 2025-12-07
- [x] Push to `git.mozayik.net` ➕ 2025-12-07 ✅ 2025-12-07
- [x] Install `sim-puz` ➕ 2025-12-07 ✅ 2025-12-07
- [x] Install `sim-ctrl` ➕ 2025-12-07 ✅ 2025-12-07
- [x] Get System tab working ➕ 2025-12-07 ✅ 2025-12-07
- [x] Get Lighting tab working ➕ 2025-12-07 ✅ 2025-12-07
- [x] Test out Rhai scripting to see how to pass structures in and out ➕ 2025-12-10 ✅ 2025-12-13
- [x] Finish the first button puzzle sequence ➕ 2025-12-13 ✅ 2025-12-13
- [x] Timeout the success and failure buttons ➕ 2025-12-13 ✅ 2025-12-13
- [x] Support unknown state when button sequence starts ➕ 2025-12-13 ✅ 2025-12-13
- [x] Now send completed or failed status back in state ➕ 2025-12-13 ✅ 2025-12-13
### Button Puzzle States
```mermaid
stateDiagram-v2
NotRunning --> Waiting
Waiting --> Error : timeout
Waiting --> Error : wrong button
Waiting --> Completed : last right button
Waiting --> Waiting : right button
Error --> NotRunning
Completed --> NotRunning
```