Playful Technology
DMX Lighting Control with Arduino and Node-RED
updated
- Node-REDscape is software for controlling Escape Room games that runs locally on Windows, Mac OSX, Linux, Raspberry Pi, or on a cloud-based server.
- Based on "Node-RED", a free, open-source platform originally developed by IBM, available from nodered.org. Node-RED has been installed on millions of devices worldwide, and is used in production environments in places like Siemens and AT&T. In short, it's really, _really_ good.
What does Node-REDscape do?
- Node-REDscape provides a set of templates, flows, and examples that turn Node-RED into a complete Escape Room automation system.
- Manages a central game timer. Start/stop/reset or make manual adjustments for deductions or additions to game time. Display the time elapsed/remaining on one or more displays customised to match the theme of your room using animated backgrounds and CSS styles.
- Monitor, reset, or override the state of all devices from a browser-based dashboard. There are examples provided for several common microprocessor-controlled escape room puzzles using Arduino, ESP8266, ESP32, and Raspberry Pi.
- Send pre-defined or custom text messages, trigger audio or video content on in-game displays or other delivery mechanisms - a thermal printer, LCD display etc.
- Create event-based gameflows, triggered after a certain amount of time, with a random chance, or on completion of certain pre-requisites, or define more complex automated logic using a simple drag-and-drop node-based editor.
- Interface with lighting and sound systems using industry-standard communications such as DMX and MIDI, Philips Hue lighting, etc.
- And much, much more!
How much does it cost?
- Nothing!
Where can I get it from?
- github.com/playfultechnology/node-redscape
Timings
00:00:00 - 00:00:18 Introduction
00:00:19 - 00:02:09 General approach and infrastructure
00:02:10 - 00:03:17 Integrating a device with Node-REDscape
00:03:18 - 00:05:30 Realtime GM dashboard demonstration
00:05:31 - 00:06:37 In-Game timer/clue delivery display for players
00:06:38 - 00:07:27 Github download
When the valves are opened, the gauge needles move. When every needle points to the correct section of the dial, the Arduino triggers a relay, which can release a maglock providing players with their reward.
00:00:00 - 00:02:22 Introduction and Demonstration
00:02:22 - 00:05:37 Hardware Overview
00:05:38 - 00:13:47 Component Wiring
00:13:48 - 00:33:50 Arduino Code Explanation
00:33:51 - 00:34:55 Wrapup
If you enjoyed this video or found it helpful, please like and subscribe to this channel! And, if you'd like to download the code for the Arduino IDE, the wiring diagram, the STL models for 3D printing, or other resources used in this and all the other escape room projects shown on this channel (and support me to continue making more tutorials in the future!), please check out my Patreon at patreon.com/playfultech
#esp32 #arduino #escaperoom #puzzle
- Disappointed by puny linear potentiometers or rotary knobs in your electronic projects?
- Looking for a big, sturdy input method, made of heavy-duty steel and cast iron?
- In need of a unique, customisable input for your Arduino / Raspberry Pi / ESP32 project?
In this video tutorial, I'll explain how to turn any regular plumbing valve into an analog input that can be read on a microcontroller, using just an LED and a Light Dependent Resistor (LDR).
In this tutorial, I'll explain how to build a "launch console", into which players must load three different 3.5" floppy disks - selecting the correct calibration, navigation, and payload data to upload from each. Once all the correct data is uploaded, the system is activated, which can trigger a relay, display a code or other information, or display audio or video effects from an escape room control software.
If you don't want the "nuclear strike" narrative, this prop can very easily be modified to other escape room themes that could involve uploading or downloading data - spy, space, medical - or pretty much any modern theme. I'll describe how you can modify the code for Arduino or ESP32 to change the behaviour and fit your story.
Timings
---
00:00:00 - 00:03:01 Introduction and Demonstration
00:03:02 - 00:05:53 Hardware overview
00:05:54 - 00:16:43 Component wiring
00:16:44 - 00:51:53 Arduino / ESP32 Code
00:51:54 - 00:52:55 Wrapup
Components Used
---
ESP32
banggood.com/custlink/GvmKq6b0Rt
LCD2004 with I2C backpack
banggood.com/custlink/mG3EO6066Y
MFRC522 RFID reader
aliexpress.com/item/1005004147866715.html
Rotary Encoder
banggood.com/custlink/G3Gp5RPtpe
If you enjoyed this video or found it helpful, please like and subscribe to this channel! And, if you'd like to download the code for the Arduino IDE, the wiring diagram, the STL models for 3D printing, or other resources used in this and all the other escape room projects shown on this channel (and support me to continue making more tutorials in the future!), please check out my Patreon at patreon.com/playfultech
#esp32 #arduino #escaperoom #puzzle
But, rather than rely on the original magnetic media, I decided to modify the disks and replace the magnetic platter with an RFID chip which could be easily read from an Arduino and a cheap MFRC522 RFID module embedded in the drive instead. This video shows how I did it.
But now that Masterlock have discontinued production of its iconic 1500iD "Speedlock" directional lock, and suppliers have sold the last of their existing stock, what does that mean for escape rooms that relied on these locks for players to enter a directional sequence from solving a puzzle?
In this video, I'll demonstrate an alternative directional electronic lock I created using an Arduino. It might not have the compact form factor of a padlock, but it has customisable behaviour including audio and visual feedback of input, LCD display of the directional sequence entered, and either automatic or manual unlocking when the correct input is given. And it can be themed to make it appropriate to any escape room setting, from pirate cove to science lab!
Timings
---
00:00 - 01:33 Introduction
01:34 - 03:40 Pirate Compass Directional Lock
03:41 - 06:10 Space Joystick Directional Lock
06:11 - 07:59 '90s Dance Mat Directional Lock
08:00 - 16:50 Component Wiring Diagram
16:51 - 45:46 Arduino Code
45:47 - 47:55 Wrapup
If you enjoyed this video or found it helpful, please like and subscribe to this channel! And, if you'd like to download the Arduino code, the wiring diagram, or other resources used in this and all the other escape room projects shown on this channel (and support me to continue making more tutorials in the future!), please check out my Patreon at patreon.com/playfultech
Inspired by spy movies and shows like "Scooby-Doo", and perfect for use in an escape room, this is my tutorial on how to create this fun physical interaction. Unlike other approaches I've seen which use direct mechanical locks, I'll be using an Arduino to read the state of one or more switches placed underneath particular books on the shelf. When those books have been set into the correct pattern (i.e. pulled forward or not), the Arduino triggers a relay module, which cuts power to an electronic maglock, allowing the bookcase to slide open and reveal a secret hidden area behind. This overcomes some of the shortcomings I've seen in other approaches, and also allows for much more flexible programming of the conditions required to "solve the puzzle" and open the bookcase up. I'll talk you through all the wiring and code, and show you how to customise it to your own design.
Timings
---
00:00:00 - 00:01:11 Introduction
00:01:12 - 00:02:38 Bookcase Construction
00:02:39 - 00:09:07 Hidden Book Switch
00:09:08 - 00:10:41 Puzzle Design Considerations
00:10:42 - 00:14:14 Door Release Mechanism
00:14:15 - 00:19:21 Wiring the Electronic Components
00:19:22 - 00:42:18 Arduino Code
00:42:19 - 00:44:09 Wrapup
If you enjoyed this video or found it helpful, please like and subscribe to this channel! And, if you'd like to download the code for the Arduino IDE, the wiring diagram, or other resources used in this and all the other escape room projects shown on this channel (and support me to continue making more tutorials in the future!), please check out my Patreon at patreon.com/playfultech
Augmented Reality is the technology you may have seen in games like Pokemon Go!, Harry Potter: Wizards Unite, Snapchat filters, or home design apps that let you superimpose virtual objects on a video feed that track the location of objects in the real world. Unlike QR codes or barcodes, I'll show you how you can use image tracking that will detect the texture of any flat object - a poster, the page of a book, an album cover - and place a new image, object, or movie on top of it.
I'll be using the Unity AR Foundation combined with native functionality on the device - Google ARCore on Android or Apple ARKit on iOS, to create a completely standalone app, with no internet access or third-party components required. And you can make it and deploy it yourself, completely for free, by downloading Unity from www.unity.com
Timings
---
00:00:00 - 00:03:05 Introduction and example applications
00:03:06 - 00:05:41 Downloading and installing Unity engine and modules
00:05:42 - 00:10:24 Creating and configuring the Unity AR project
00:10:25 - 00:12:36 Core components in an AR scene
00:12:37 - 00:15:16 The AR Tracked Image Manager
00:15:17 - 00:24:05 Adding custom functionality using C# script
00:24:06 - 00:26:26 Creating a simple AR gameobject prefab
00:26:27 - 00:27:34 Deploying the app to a device
00:27:35 - 00:30:35 Creating AR video clips or animated 3D models
00:30:36 - 00:32:10 Wrapup
For more information about this, or to access the downloads and resources for any of my other tech projects featured on this channel, please head over to patreon.com/playfultech
So, I decided to create my own display using a WS2812B programmable LED strip. It uses a modular design, which means it can be scaled to accommodate pretty much any number of digits, of any size - you just need to use a longer length of LED strip!
If you have access to a 3D printer, you can print an enclosure for each digit and diffusers for the individual segments (the version I demonstrate in the video are 8" high), but you can also create these on a CNC, or just layout LED strips by hand and use baking paper or thin white plastic sheet as a diffuser. And, because the LEDs have separate RGB components, you can even create animated colour-changing effects on the digits !
To demonstrate the display, I've created an Arduino sketch that implements both a count-up stopwatch and also a countdown timer, displaying the time in MM:SS or SSSS format. This could be used in any kind of exercise challenge, escape room, or even as a timer to monitor how much screen-time allowance your kids have still got left :)
Timings---00:00:00 - 00:02:13 Introduction00:02:14 - 00:05:22 Using WS2812B ("Neopixel") LED strips00:05:23 - 00:08:28 3D Printed modular 7 segment case00:08:29 - 00:10:41 Arduino stopwatch timer and countdown
00:10:42 - 00:11:31 Fritzing wiring diagram00:11:32 - 00:39:55 Arduino code
00:39:56 - 00:41:07 Wrapup and conclusionIf you enjoyed this video or found it helpful, please like and subscribe to this channel! And, if you'd like to download the code for the Arduino IDE, the wiring diagram, or other resources used in this and all the other escape room projects shown on this channel (and support me to continue making more tutorials in the future!), please check out my Patreon at patreon.com/playfultech
The most common way to connect modules such as this is using 0.1" (2.54mm) spaced header pins, and in this short tutorial video I'll introduce the different sorts of header pins you might come across (male, female, right-angled, double-height) and explain the situations in which you might want to use them.
Then I'll give a practical demonstration of how to solder them. Many people find the idea of soldering a bit daunting at first, but it only takes a little practice, and I'll pass on some tips and techniques I use to try to make it easier!
If you'd like to know how to crimp your own cables to connect onto these pin headers, please see the accompanying video at youtube.com/watch?v=8sHeR4Uozck
As always, please ask if you have any questions and I'll do my best to answer!
Timings
---
00:00:00 - 00:00:46 Introduction
00:00:47 - 00:02:23 Wire-to-Board connections
00:02:24 - 00:03:27 Wire-to-Wire connections
00:03:28 - 00:04:05 Board-to-Board connections (e.g. Arduino shield)
00:04:06 - 00:05:20 Pre-soldered male and female headers
00:05:21 - 00:08:59 Unsoldered male and female headers
00:09:00 - 00:11:01 Double height male/female headers
00:11:02 - 00:15:13 Soldering header pins onto a board
I'm aware of a couple of companies that offer these kind of products - "After the Tone", "FêteFone", "Life on Record", "At the Beep", and others - but they typically cost ~$400 to hire the equipment, and then additional charges to obtain copies of the audio files afterwards!
The guestbook I've built cost about £30 to make. It uses a Teensy microcontroller to save individual 16bit, 44.1kHz, CD-quality recordings to an SD card. Every time the handset is lifted, a new, numbered file is saved, which you can then load on your PC, and convert to MP3, save or share with your friends etc.
You'll need to have a little knowledge of electronics and coding, but I'll describe the entire process step-by-step. If you have any comments or questions, please leave them below and I'll do my best to answer!
Hardware used:
- A telephone! You can pick one up second hand for ~£10. Doesn't need to be fully-working, just so long as the microphone and speaker work! e.g. ebay.co.uk/itm/194940719631
- Teensy 4.0, ~£18. I bought mine from coolcomponents.co.uk/collections/teensy/products/teensy-4-0-usb-development-board, but they're available from many suppliers, including Amazon.
- Teensy Audio Shield, ~£14
coolcomponents.co.uk/collections/teensy/products/teensy-audio-board-for-teensy-4-0
- Screw terminal strips (A.K.A. Choc Block connectors), screwfix.com/p/3a-12-terminal-terminal-strips-10-pack/25545
- 3.5mm jack breakout board, thepihut.com/products/sparkfun-trrs-3-5mm-jack-breakout
Software used (all free, open-source):
- Audacity (audacityteam.org) - for recording your greeting message and loading raw audio recordings from the SD card.
- Arduino IDE (audacityteam.org) - for creating the code.
- TeensyDuino (pjrc.com/teensy/td_download.html) - an extension to the Arduino IDE that allows you to target the Teensy hardware.
- SOX (sourceforge.net/projects/sox) - for batch conversion of all raw audio recordings on the SD card into WAV or MP3 format.
Timings:
00:00:00 - 00:01:47 Introduction
00:01:48 - 00:08:12 Identifying Telephone Components
00:08:13 - 00:10:46 Teensy Controller
00:10:47 - 00:11:26 Fritzing Wiring Diagram
00:11:27 - 00:15:06 Wiring the Telephone
00:15:07 - 00:18:00 Installing TeensyDuino Software
00:18:01 - 01:00:07 Programming the Teensy using the Arduino IDE
01:00:08 - 01:02:13 Loading Recorded Messages using Audacity
01:02:14 - 01:04:02 Batch conversion of Raw Audio Recordings using SOX
01:04:03 - 01:05:17 Wrapup
You can find the code on my GitHub account: github.com/playfultechnology/audio-guestbook
A HUGE thankyou to my Patreon supporters who support me to create these video tutorials. If you're interested in finding out more, please do check out patreon.com/playfultech , and don't forget to like and subscribe to this channel for more playful project ideas :)
Unfortunately, this one didn't turn out so well...
Was originally researched to be part of an escape room puzzle, but I ended up using microphone sensors instead. See the result at youtube.com/watch?v=4Lbblqg8VQc
#Electronics #Tech #Shorts
Perfect for those medieval dungeons, Egyptian tombs, or spooky haunted mansions!
Timings
---
00:00:00 - 00:00:57 Introduction and demonstration
00:00:58 - 00:08:14 Hardware overview
00:08:15 - 00:16:19 Component wiring diagram
00:16:20 - 00:38:11 Arduino code explanation
00:38:12 - 00:39:35 Summary and wrapup
If you enjoyed this video or found it helpful, please like and subscribe to this channel! And, if you'd like to download the code for the Arduino IDE, the wiring diagram, or other resources used in this and all the other escape room projects shown on this channel (and support me to continue making more tutorials in the future!), please check out my Patreon at patreon.com/playfultech
Watch the video to find out whether it lives up to expectations!
Timings
---
00:00:00 - 00:03:04 Introduction and demonstration
00:03:05 - 00:05:55 Hardware used
00:05:56 - 00:12:47 Electronic wiring diagram
00:12:48 - 00:42:15 Arduino code explanation
00:42:16 - 00:43:39 Wrapup
Hardware Used
---
- Arduino Nano (banggood.com/custlink/KvKDUmhTqI)
- Slipring (aliexpress.com/item/1005003469962786.html)
- 6× RC35 Magnet Sensor (ebay.co.uk/itm/363387069700)
- Lazy Susan Mechanism (amazon.co.uk/gp/product/B08NXB6RX8)
- Neodymium Magnet (amazon.co.uk/pieces-Neodym-Magnet-Diameter-Magenesis®/dp/B06X977K8L)
- WS2812B Neopixel strip (banggood.com/custlink/DmvYAqK6bJ)
- Serial MP3 Player (banggood.com/custlink/D33dbzDe61)
- 330Ω resistor
- 6.3V 1000µF capacitor
If you enjoyed this video or found it helpful, please like and subscribe to this channel! And, if you'd like to download the code for the Arduino IDE, the wiring diagram, or other resources used in this and all the other escape room projects shown on this channel (and support me to continue making more tutorials in the future!), please check out my Patreon at patreon.com/playfultech
#escaperoom #arduino #puzzledesign
An angular encoder (to which the pole is attached) detects the angle that the pole is currently pointing, and also the rate of change of that angle (i.e. the speed at which the pole is rotating/falling). These values are fed to a PID controller running on an STM32 microprocessor, which calculates where the base needs to be respositioned in order to counter any momentum in the pole and move the pivot point directly under the centre of mass. A motor drives a belt pulley to move the base to that position.
#robotics #electronics #shorts
In this video I'll share some tips and tricks I've learned from my experience of working with different maglocks - comparing "fail secure" and "fail safe" varieties, I'll reveal how they work internally, describe the situations in which each are suitable for use, and methods to use them safely and reliably by installing flyback diodes and switches to automatically cut power on release.
Timings
---
00:00:00 - 00:00:50 Introduction
00:00:51 - 00:04:01 Standard Fail-Safe Bar Maglock
00:04:02 - 00:05:06 Mini Fail-Safe Bar Maglock
00:05:07 - 00:08:13 Suppressing Back EMF with a flyback diode
00:08:14 - 00:12:26 Fail-Secure Cabinet Maglock
00:12:27 - 00:18:31 Fail-Secure Cabinet Maglock with automatic power cut-off
00:18:32 - 00:19:01 Wrapup
For more escape room-related tech projects, please check out my Patreon at patreon.com/playfultech, and do ask any comments or questions below!
If you'd like to create your own boards, you can view the PCB schematic of the board at: github.com/Makerfabs/Makerfabs-ESP32-UWB/tree/main/hardware
The DW1000 chip will work with an Arduino or any other microprocessor with an SPI interface. The advantage of using the ESP32 is to take advantage of the built-in WiFi for transmitting data from the tag to a server.
The server is running a Unity project that opens a socket and listens for incoming UDP connections, then reads distance data sent from the UWB tag, encoded as JSON. It uses trilateration to determine the position of the tag and displays that in a visual interface.
You can access the ESP32 code and Unity project I demonstrate in this video at github.com/playfultechnology/UWBRTLPS
And my modified version of the DW-1000 library can be found at atgithub.com/playfultechnology/arduino-dw1000
Ultimately, I think it's an interesting tech demo but, unfortunately, I wouldn't be prepared to put this device to any production use right now. If you have any advice to help resolve the issues I have with accuracy, range, and robustness then I'd love to hear!
Timings
---
00:00:00 - 00:02:57 Introduction
00:02:58 - 00:05:55 Explanation of the UWB system
00:05:56 - 00:09:12 Testing the ranging accuracy between tag and anchor
00:09:13 - 00:11:03 Measuring and compensating for errors
00:11:04 - 00:31:41 ESP32 Code in the Arduino IDE
00:31:42 - 00:43:49 Unity Project for visualisation
00:43:50 - 00:45:04 Demonstration
00:45:05 - 00:48:12 Conclusions, wrapup, and disappointment!
I'll illustrate how I used Inkscape to design and layout the symbols on the stone discs, which I cut on a CNC router (though you could easily create these using hand tools and paint the symbols on). I used Minizinc to model the puzzle logic and ensure that only one unique solution existed, and the Arduino IDE to program the puzzle controller.
Timings
---
00:00:00 - 00:02:23 Introduction and demonstration
00:02:24 - 00:08:21 Creating the design and layout
00:08:22 - 00:19:12 Modelling the puzzle logic
00:19:13 - 00:23:48 Building the prop hardware
00:23:48 - 00:27:45 Electronics wiring
00:27:46 - 00:36:36 Arduino code
00:36:37 - 00:37:48 Wrapup
Software Used (all free and open-source 😊❤️ )
---
- Inkscape (inkscape.org)
- Minizinc (minizinc.org)
- Arduino (arduino.cc)
- Fritzing (fritzing.org)
Hardware Used
---
- Maglock (banggood.com/custlink/m3KRB23LA9)
- Arduino Nano (banggood.com/custlink/KvKDUmhTqI)
- 5V Relay Module (banggood.com/custlink/mDD3bOqeP5)
- 7× RC35 Magnet Sensor (ebay.co.uk/itm/363387069700)
- Lazy Susan Mechanism (amazon.co.uk/gp/product/B08NXB6RX8)
- Textured Spraypaint (amazon.co.uk/Plasti-kote-9444-400ml-Stone-Touch/dp/B001GU6HKU)
- 7× Neodymium Magnet (amazon.co.uk/pieces-Neodym-Magnet-Diameter-Magenesis®/dp/B06X977K8L)
If you enjoyed this video or found it helpful, please like and subscribe to this channel! And, if you'd like to download the code for the Arduino IDE, the Minizinc puzzle logic constraint model, wiring diagram, or other resources used in this and all the other escape room projects shown on this channel (and support me to continue making more tutorials in the future!), please check out my Patreon at patreon.com/playfultech
#escaperoom #arduino #puzzledesign
This can be used as the basis for many escape room puzzles, e.g.:
- listen in on a conversation by switching between camera feeds to follow the speaker as they move around
- trace out the path an actor follows by comparing it to a floorplan that shows the location of each CCTV camera
- observe a password that someone enters, or a secret panel that they activate in footage recorded in the same room that players are in
- you can even mix genuine live camera feeds alongside pre-recorded ones to add to the immersion - and players will have no way of knowing which is which!
Unity allows you to create the app for PCs or tablets that can be used in a real-life escape room, or use WebGL to deploy it to a website that can be played in the browser as part of an online game.
Software Used:
- unity.com for creating the app
- shotcut.org for preparing videoclips
Timing:
00:00:00 - 00:02:46 Introduction and demonstration
00:02:47 - 00:22:39 Creating the Unity project
00:22:40 - 00:51:48 Coding the C# video controller script
00:51:49 - 00:56:25 Preparing the videoclips in Shotcut
00:56:26 - 00:58:05 Wrapup
Resources:
If you enjoyed this video or found it helpful, please like and subscribe to this channel! And, if you'd like to download the Unity project or resources used in this and all the other escape room projects shown on this channel (and support me to continue making more tutorials in the future!), please check out my Patreon at patreon.com/playfultech
The door is secured by a maglock, controlled by a ESP8266-powered Wemos D1 Mini. When a player presses their fingerprints in the correct order, the Unity app sends a wireless trigger to a webserver running on the Wemos, which triggers a relay and cuts power to the door lock.
Components Used
---
- Unity (unity.com free!)
- Wemos D1 Mini (~£5 from banggood.com/custlink/v33RJLItSj )
- Wemos D1 Mini Relay Shield (~£2 from banggood.com/custlink/Dvvdgkvjnn )
- 12V Maglock (~£20 from banggood.com/custlink/m3KRB23LA9 )
Timings
---
00:00:00-00:01:47 Introduction and Demonstration
00:01:48-00:03:30 Hardware Overview
00:03:31-00:04:20 Wiring Diagram of maglock to Wemos D1 Mini relay shield
00:04:21-00:28:31 Creating the Unity project
00:28:32-00:44:00 Wemos D1 Mini code in the Arduino IDE
00:44:01-00:47:58 Modifying the code to host a Wireless Wi-Fi hotspot
00:47:59-00:49:08 Wrapup
If you enjoyed this video or found it helpful, please like and subscribe to this channel! And, if you'd like to download the Unity project, code for the Arduino IDE, wiring diagram, or other resources used in this and all the other escape room projects shown on this channel (and support me to continue making more tutorials in the future!), please check out my Patreon at patreon.com/playfultech
One Arduino, placed inside a model heart, must be connected to a battery pack. This causes it to start beating, lighting up a programmable WS2812B Neopixel LED strip in a heartbeat animation, and also transmitting a regular "pulse" message from a 433MHz RF transmitter.
When this radio signal pulse is detected by a receiver module attached to a secondary Arduino contained within the ribcage of the skeleton, it causes a relay to be energised deactivating a maglock and releasing a key.
RF radio transmitter/receivers are not designed as proximity detectors, but by tuning the effective transmission range through a combination of hardware and software methods described, they can provide an interesting and useful alternative short-range detection method to more traditional magnet/RFID sensors used in escape rooms. The method described can be used to determine whether two powered devices are within a range of somewhere from 10cm up to a few metres in distance from each other, which makes it favourable for use in large-scale props compared to other sensors that require much more precise positioning.
Timings
---
00:00:00 - 00:02:22 Introduction and Demonstration
00:02:23 - 00:05:55 Overview of Puzzle Mechanics
00:05:56 - 00:11:23 RF Communication
00:11:24 - 00:15:38 Puzzle Hardware
00:15:39 - 00:22:09 Component Wiring
00:22:10 - 00:44:45 Arduino Code Listing
00:44:46 - 00:46:49 Wrapup
Hardware Used
---
- 433MHz RF Radio Receiver/Transmitter modules banggood.com/custlink/DGGEgOwcA0
- 5V relay module banggood.com/custlink/mDD3bOqeP5
- 2x Arduino Nano banggood.com/custlink/KvKDUmhTqI
- 12V 60kg Maglock ebay.co.uk/itm/164952553832
- WS2812B "Neopixel" LED strip banggood.com/custlink/3G3KMmYfzN
- 12V LED ring banggood.com/custlink/3m3E0O7W1R
- 3D Heart model thingiverse.com/thing:932606
- Bob the Skeleton is of unknown origin... would you believe, I found him in my closet! But he appears similar to this amazon.co.uk/Crazy-Bonez-POSE-N-STAY-Skelton-Halloween/dp/B01INAY2MA
If you enjoyed this video or found it helpful, please like and subscribe to this channel! And, if you'd like to download the Arduino code, wiring diagram, or other resources used in this and all the other escape room projects shown on this channel (and support me to continue making more tutorials in the future!), please check out my Patreon at patreon.com/playfultech
I used a cheap MAX3232 board to take the 0V-5V serial output from the Arduino and convert it into the +15V - -15V voltage range of the RS232 serial standard used by the display.
The code is available for download from my Github account: github.com/playfultechnology/arduino-VFD-RS232
Timings
---
00:00:00 - 00:01:31 Introduction and Demonstration
00:01:32 - 00:03:20 How Vacuum Fluorescent Displays work
00:03:21 - 00:05:50 Understanding the Epson DM-D110 datasheet
00:05:51 - 00:07:50 Differences between Arduino TTL and RS-232 serial data
00:07:51 - 00:11:34 Component Wiring
00:11:35 - 00:16:29 Arduino Code Listing
Timings
---
00:00:00-00:00:34 Introduction and Demonstration
00:00:35-00:04:42 Mounting the maglock and door release poppers
00:04:43-00:08:15 Creating the magnetic explosive charges
00:08:16-00:10:26 Dynamite detonator mechanism
00:10:27-00:13:13 Emergency Release Switch
00:13:14-00:14:35 Components
00:14:36-00:18:58 Wiring Diagram (including DIN Relay)
00:18:59-00:25:50 Schematic
00:25:51-00:27:29 Wrapup
Components Used
---
Unlike most of my projects, this requires *no* Arduino or other microprocessor - the logic is controlled purely through relays and magnetic Reed switches. The full list of components I'm using is as follows:
- Maglock:
banggood.com/custlink/m3GdBFIvKQ
- N42 Neodymium Magnets with countersunk hole:
first4magnets.com/rectangular-c35/25-x-20-x-5mm-thick-x-4-5mm-c-s-n42-neodymium-magnet-9-8kg-pull-p3656
- 12V Automotive Relay:
ebay.co.uk/itm/154145024929
- Spring Nuts / Door poppers:
bolts.co.uk/spring-nuts-c-4522
banggood.com/custlink/3G3y05IGvd
- DFPlayer MP3 Player:
banggood.com/custlink/3m3heH8KhG
- External Amplifier:
banggood.com/custlink/GKGE4PIDyy
- 12V Regulated DC Power Supply:
ebay.co.uk/itm/162562112782
- 12V-5V DC stepdown convertor:
ebay.co.uk/itm/142407861263
- Normally Open Magnetic Reed Switch:
amazon.co.uk/sourcingmap-Recessed-Security-Contact-Magnetic/dp/B07F5XVQN2
- Large arcade push button (for dynamite plunger):
banggood.com/custlink/GGGE0F9DZv
- Normally Closed emergency exit button:
ebay.co.uk/itm/153919958885
I'm a professional game designer and have been creating escape rooms for five years, and making tutorials about them since 2017. If you enjoyed this video or found it helpful, please like and subscribe! If you'd like to check out my other escape room projects, or support me to continue making more tutorials in the future, please check out my Patreon at patreon.com/playfultech
It uses different length WS2812B ("Neopixel") programmable LED strips to represent containers of differing capacities, and an audio cable to represent a "filling loop" which must be connected to transfer liquid between containers. The code is run by an Arduino UNO, which releases a maglock when the chosen target value is attained in one of the containers.
Timings
---
00:00:00 - 00:03:34 Introduction and Demonstration
00:03:35 - 00:09:27 Hardware Overview
00:09:28 - 00:19:59 Fritzing Component Wiring Diagram
00:20:00 - 00:51:38 Arduino Code Explanation
00:51:39 - 00:54:28 Wrapup
Components used
---
- WS2812B programmable LED strips
- Illuminated arcade button
- Relay Module
- 12V fail-secure maglock
- 1N4007 diode
- 1/4" audio cable
- 3x 1/4" audio jacks
- Arduino Uno
Support Me! (or let me support you :) )
---
This video is made possible with the generous support of my Patreon donors - thankyou!
For more details of this project, and to download Arduino code, wiring diagrams, and additional resources and support for all my escape room technology projects, please go to patreon.com/playfultech
e.g.
"If the prompt shows "2" press the 3rd button",
"If the prompt shows "4" press the green button", etc.
Simple right?
Except that the colours of the buttons swap places after each input. And, players also have to remember the state of the puzzle and their responses on previous turns, which leads to instructions like:
"If the prompt shows "1" press the button that's the same colour as you pressed two turns ago", or
"If the prompt shows "3" press the button in the same position as the blue button in the first turn"...
So, it becomes a little bit like a maniacal version of the "Simon" game - a test of memory, coordination, and ability to follow rules. And, if those rules are physically separated from the inputs (e.g. written on a plaque in a different part of the room), then it also involves coordination and co-operation between several players so it involves a nice mix of puzzle-solving skills - perfect for an escape room prop!
Timings
---
00:00:00-00:03:03 Introduction and Demonstration
00:03:04-00:10:01 Hardware: Colour-changing LEDs, stage and prompt display
00:10:02-00:25:19 Wiring diagram
00:25:20-00:59:25 Arduino code listing walkthrough
00:59:26-01:01:45 Wrapup
Components used
---
- PL9823 programmable LEDs
- Illuminated arcade buttons
- MAX7219 LED Driver chip
- 10 segment LED bargraph
- 7 segment common cathode LED display
- Arduino Nano
Support Me! (or let me support you :) )
---
This video is made possible with the generous support of my Patreon donors - thankyou!
For more details of this, and to access downloads, wiring diagrams, and additional resources and support for all my escape room technology projects, please go to patreon.com/playfultech
But, in this video, I'll describe how to create an Arduino-based escape room puzzle that uses *analogue* inputs and outputs - sliding linear potentiometers and ammeters that can express a smooth, continuous range of values, with an almost limitless degree of precision. These allow you to create puzzles that require a different sort of interesting interaction for players, but they do also present some interesting challenges - I'll cover some of the trickier aspects of using the built-in Arduino Analogue-To-Digital Converter (ADC) to convert analog input into a digital value, and how to use Pulse Width Modulation (PWM) on GPIO pins to control an analog output.
Timings
---
00:00:00-00:00:13 Introduction
00:00:14-00:02:17 Puzzle Demonstration
00:02:18-00:04:40 Comparing Analog -vs- Digital signals
00:04:41-00:11:20 Retrieving Analog Input using "Ax" pins and the Arduino Analog-to-Digital Convertor (ADC)
00:11:21-00:18:49 Sending Analog Output using "~x" pins and Pulse Width Modulation (PWM)
00:18:50-00:23:20 Grounding, noise, and isolation of analog components
00:23:21-00:26:53 Wiring Diagram
00:26:54-00:51:40 Arduino Code
00:51:41-00:53:20 Wrap up
Components Used
---
- 4x 1mA Ammeter, ~£2 each from aliexpress.com/item/10000020296910.html
- 4x Slide Potentiometer, buy 5 for $12 from banggood.com/custlink/vGGdLOO1zU
- Arduino UNO, $10 from amzn.to/2ZcuS82
- 4x LED ($0.01 each, from almost anywhere)
- 4x220 and 4x 4.7kohm resistors ($0.01 each, from almost anywhere)
- 5V 1-channel Relay Module, $2 from aliexpress.com/item/32905958885.html
- Conductive Copper Strip, $5 for 3m from ebay.co.uk/itm/184340220340
Support Me! (or let me support you :) )
---
This video is made possible with the generous support of my Patreon donors - thankyou!
For more details of this, and to access downloads, wiring diagrams, and additional resources and support for all my escape room technology projects, please go to patreon.com/playfultech
- Create timelapse videos
- Trigger photographs to be taken with a switch, when movement is detected by a PIR sensor, or any other input
- Trigger a photograph to be taken when a HIGH signal is sent from an Arduino or other microprocessor
- Use onboard LED as a flash
- Save photos to onboard SD card, or send them as an email attachment
- Power the ESP-32 from a single 3.7V Li-Po battery pack
You can customise this code to make it suitable for, e.g. a wildlife camera, a security camera, or a camera triggered to take "reaction" shots in an Arduino-controlled escape room game. The ESP32 chip can be programmed using the familiar Arduino IDE, or whatever development environment you prefer. For full details of the functionality of the OV2640 camera sensor used in these boards, see the datasheet at uctronics.com/download/OV2640_DS.pdf
Timings
---
00:00:00-00:03:31 Introduction
00:03:32-00:04:44 Example Applications
00:04:45-00:12:31 Hardware: Camera, Aerial, External Programmer, Portable Battery Pack
00:12:32-00:18:05 Wiring diagram
00:18:06-01:09:43 Software Code in the Arduino IDE
01:09:44-01:11:37 Wrapup
Hardware Used
---
ESP32-CAM: banggood.com/custlink/33KEli3R0U
ESP32-CAM programmer board: aliexpress.com/item/1005001872947921.html
FTDI programmer: banggood.com/custlink/3KKYoIGR6f
AM312 PIR sensor: ebay.co.uk/itm/202625567146
18650 Li-Po battery shield: banggood.com/custlink/mGDROiH4GB
This video is made possible with the generoud support of my Patreon donors - thankyou! For more details of this, and all my escape room technology projects, see patreon.com/playfultech
I'll be honest and say I've had a bit of a creative block over the last few weeks, and couldn't really decide what direction to go in with the game... I kept on accidentally gravitating towards making "Keep Talking and Nobody Explodes", which wasn't really my intention. However, I'm pleased to say I had a moment of inspiration...
Imagine if, in a moment of drunken internet purchasing, you clicked to buy a Large Hadron Collider over the internet advertised by "Wish". And, what arrived wasn't quite the right size, or fitted together very well, or looked at all safe to operate. Well, that's what the box is going to be. I'll explain this new theme and storyline that I've decided to follow, and the impact that's had both on artisitic decisions about the graphic identity and design, and how it can provide a justification of the player motivation *why* there are tasks that need to be performed within a certain time, and giving them a meaningful consequence of the outcome if they succeed or fail in solving those puzzles/tasks.
Created with the generous support of my amazing Patreon donors. You can find more details about all my escape room tech projects at patreon.com/playfultech
Whereas a multimeter allows you to check voltage, resistance, or continuity between two points of a circuit, an oscilloscope presents a realtime graphical display of the voltage on a signal line. It not only allows to to check *whether* any data is being sent/received, but the timing and frequency of messages, and to visualise the quality of the data signal - whether you've got nice crisp edges giving precise HIGH and LOW values, or whether you've got soft, blurry values or background noise, which are common causes for problems in communication between devices!
I'm using a DS212 Digital Storage Oscilloscope, which costs around £65 from banggood.com/custlink/GmvRay3VkB
It's portable, rechargable, and has two channels (so you can monitor, say, the clock signal and data signal of an interface at the same time). You can get much more complex (and more expensive!) bench oscilloscopes, but so far this has proved sufficient for my needs.
In this part, I'm going to be iterating over the physical design and aesthetics of the game, which will involve revising the layout in Inkscape, some laser cutouts, and a bit of scrollsaw and woodworking. It probably won't be the final version, but I think it's starting to take shape now and look slightly more like a playable game than a rough prototype.
Created with the generous support of my amazing Patreon donors. You can find more details about all my escape room tech projects at patreon.com/playfultech
One of the key game design decisions I made early on for my Escape Room In-A-Box was that I wanted the system to be modular - for different sorts of puzzles to be swappable in and out, to make the game replayable and customisable, and for the game controller to detect and adapt seamlessly based on the modules that had been installed.
In this video I'll demonstrate the ESP32 and Arduino code which I've started to develop to enable this (it's actually pretty straightforward) - I'm looping through a range of possible device IDs on the PJON network, and sending a single "PING" packet of data to each one. Then, the controller listens and sees which ones reply. It's much like dialling down a list of telephone numbers, increasing the digit by one each time and seeing if anyone answers... and that lets me know what modules have been installed in the box, and to adapt the gameflow accordingly.
I then describe how I've separated out the specific functionality of each puzzle controller from the generic functionality, which I've moved out into a seperate library, from where it can be included into each individual sketch. That means that, as I change and add to the functionality, I only need to edit it in one place and it will automatically be incorporated in every controller's sketch file, and I can be certain that every individual puzzle will behave in exactly the same way in response to commands like RESET, SOLVE, DISABLE, and that any messages sent *by* them will also follow a standard defined interface. This kind of common agreed base functionality is essential for the modular system to work. At the moment, when each puzzle controller receives the PING message from the controller on startup, they populate and reply with a little config structure that gives their name and current status. Again, this can be extended to include things like uptime, number of attempts made, any hints available etc.
Created with the generous support of my amazing Patreon donors. You can find more details about all my escape room tech projects at patreon.com/playfultech
Product link is banggood.com/custlink/vvmY8U1FT6
The watch itself is based around an ESP8266 chip, powered by a 500mAH Li-Po battery. It also features a built-in WS2812B ("Neopixel") RGB LED, a secondary white LED, a 1.3" 128px x 64px OLED screen, an IPEX aerial connector, and a rotary button - quite a neat range of features to pack onto your wrist!
It comes with pre-installed "Deauth" software, but you can replace this by uploading any new code you want using the Arduino IDE, together with some common libraries such as FastLED (http://fastled.io) and lcdgfx (github.com/lexus2k/lcdgfx).
In the last part of the video, I'll demonstrate how I use the watch as a remote control to activate and de-activate the ESP32-powered Escape Room-in-a-box controller which I'm currently in the process of building.
Timings
---
00:00:00-00:01:19 Introduction
00:01:20-00:04:59 Opening it up and examining the components
00:05:00-00:18:32 Writing custom code using the Arduino IDE
00:18:33-00:20:21 Demonstration and testing the hardware
00:20:22-00:23:31 Summary and example of ESP32 escape room controller interface over Wi-Fi
For more playful technology and escape room tech projects, check out patreon.com/playfultech
a.) Firstly, I decided to move the controller onto a protoboard and solder the connections to make the wiring more secure and create convenient connectors for each of the peripheral components on the edges of the board. However, in the process of doing this I foolishly decided to change the design *slightly* from that which I had tested on the breadboard - moving the input pin to which the activation button was wired in to from GPIO15 to GPIO36 so that the wire runs were shorter and pins were physically closer to the connector they used. An innocent-enough change, I thought.... but oh, foolish me!
Unlike an Arduino, in which every GPIO pin can be used as a digital input, on an ESP32 different pins have different properties and behaviours.... Some are INPUT only. Some have PULL_UP resistors. Some have PULL_DOWN resistors. Some have neither. Some of them are HIGH on bootup, and some are LOW. And some of them will cause the boot up to fail if they are pulled HIGH or LOW.... the new pin I chose did not have pullup resistors attached, so even though I was specifying pinMode(36, INPUT_PULLUP) in my code, the input was actually a floating pin and my button behaved erratically - flicking between HIGH and LOW. Once I realised this, the solution was quite straightforward - I just installed an external 10k pullup resistor to 3.3V on each of the pins 34-36 where this applies.
b.) The second problem was a software problem - I'm using the PJON networking library, which generally seems very well-written, but it was interfering with my digital input in some way. Stepping into the code I narrowed this down to the bus.begin() function, so looking at the library itself I followed a trail of functions to find the culprit: although I can't see it documented anywhere, the PJON initialisation procedure begins by taking an analog reading of pin A0 to set a random seed. This is a fairly common approach to seeding the random number generator based on background electrical noise in the environment. However, on an ESP32, Pin 36 = Pin A0! So although I'd initialised Pin 36 as a digital INPUT (and now fixed the issue with the external pullup resistor), PJON was overriding my settings by taking an analogRead(), and changing the pin mode which caused a false LOW reading, as if the button had been pressed.
Again, the solution was pretty straightforward - there's a PJON method called set_random_seed() which allows you to specify a different pin to read, and doing that before calling begin() fixed the problem.
So, two problems that actually both had pretty straightforward quick solutions in the end, but finding my way there took some time!
Created with the generous support of my amazing Patreon donors. You can find more details about all my escape room tech projects at patreon.com/playfultech
00:00:00-00:03:56 Resolving the 5V-3.3V PJON level shifting issues - logic level convertor with pulldown resistors, or voltage divider with diode - but don't get distracted by the pursuit of the "optimum" solution, just get something that works and move on!
00:03:57-00:10:49 Selecting an LED to display the status of each module to assist in development and in gameplay. I'm hoping to use PL9823 progammable LEDs, which work like Neopixel (WS2812), but come in a standard 5mm LED form factor. So they can be animated between any RGB values, flashed etc. as a way to indicate the different status of each puzzle.
00:10:50-00:16:20 Updating the puzzle controller Arduino code to include the PJON network registration and indicating the puzzle status through different LED patterns. On startup, the master controller attempts to pin every device ID and keeps track of which ones respond (in much the same way an I2C scanner detects the address of any connected I2C device) so it knows which modules are in use. Modules are initially brought online in a disabled state, but these can be brought online by the master controller, and the LEDs change pattern to guide the player as to what the current "head" of the game progress is and be able to have some sort of directed gameflow (rather than all the puzzles be available and solveable from the outset).
00:16:20-00:22:40 Rewiring the network into a centralised "star" network design and supplying a separate power supply to prevent trying to draw current to power all the separate puzzle controllers via USB and the thin traces of the ESP32 Vin port
00:22:41-00:27:50 Demonstration of system initialisation, puzzle solving, and reset, with status indicators and network messaging.
Created with the generous support of my amazing Patreon donors. You can find more details about all my escape room tech projects at patreon.com/playfultech
I'll talk a little bit more about the serial interface I'm using between the ESP32 and the Arduino (only to then say that it's probably going to get ditched on the next iteration of the hardware anyway...), "Keep Talking and Nobody Explodes", and laser safety.
Created with the generous support of my amazing Patreon donors. You can find more details about all my escape room tech projects at patreon.com/playfultech
In this part, I'm going to combine the PJON networking functionality (from Pt1) with the Timer Countdown display (from Pt2). The problem is that the network runs at 5V, while the ESP32 that controls the displays and game control runs at 3.3V.... this presented me with a couple of different possible workarounds, but the one I went for is to create a serial interface between the ESP32 and an Arduino Nano on the master controller, and hand off all networking functionality to the Arduino, which simply passed messages between the ESP32 and the slave devices.
I'm not 100% convinced this is the right solution since it certainly adds a degree of complexity, but I'm happy with it for now...
Timings
---
00:00:00-00:02:59 Introduction and recap
00:03:00-00:09:23 Creating a wiring "save point"
00:09:24-00:16:52 Hardware redesign
00:16:53-00:27:58 Improving the Arduino/ESP32 code
00:27:59-00:30:57 Testing the new features
Created with the generous support of my amazing Patreon donors. You can find more details about all my escape room tech projects at patreon.com/playfultech
Timings
---
00:00:00-00:01:50 Introduction
00:01:50-00:14:00 Laying out the components in Inkscape
00:14:00-00:19:03 Sending the design to the laser cutter with LaserGRBL
00:19:03-00:22:18 Assembling the components and testing
In doing so, I realise that I'm going to have to upgrade from an Arduino UNO to an ESP32, and also I take a suprisingly long time to program what sounds like a relatively simple countdown function....
Timings
---
00:00:00-00:05:13 Objectives for this part
00:05:13-00:44:44 Software coding for the countdown displays
00:44:44-01:06:38 Wiring the display hardware
Created with the generous support of my amazing Patreon donors. You can find more details about all my escape room tech projects at patreon.com/playfultech
This is not intended to be a step-by-step tutorial, but something more like a "fly on the wall" documentary that is a pretty complete, honest portrayal of the approach I take to design and create tech puzzles for escape rooms. I'm not going to filter out the mistakes I make, poor design decisions, and wasted effort I'm inevitably going to suffer from along the way!
In this first part, I'll describe a little bit about what my aims for the project are and a first draft at the hardware infrastructure I plan to use. I'll try to post fairly regular, shortish updates, so please follow me if you want to see how the project develops over the next few weeks :)
Created with the generous support of my amazing Patreon donors. You can find more details about all my escape room tech projects at patreon.com/playfultech
You can use these to build an escape room puzzle where players need to arrange a set of dice to make a certain total of the face-up sides, or rotate them in a particular way to follow a numeric sequence, for example.
I'm using a Wemos D1 Mini, ESP8266-based board which is ideal for portable escape room props, because:
- it's physically small
- it has a convenient battery shield to provide portable power from a single Li-Po cell
- it has built in Wi-Fi
- it runs at 3.3V logic, which means that there is no logic-level conversion required on the I2C wires between the processor and the (3.3V) sensor
However, you can also follow exactly the same steps described here to connect the MPU-6050 sensor an ESP32 board, or an Arduino UNO or Nano (even though that won't have Wi-Fi unless you add a suitable Wi-Fi shield). To demonstrate how you can create code that is portable between several different target devices, I'm also not going to use any third-party libraries designed for the MPU-6050 chip - instead I'll teach you how you can write and read values directly to any I2C component using the built-in, generic "Wire" library. This is useful information to know should you ever find yourself wanting to use an I²C component in a project and these is not an existing library available!
Components
---
GY-521 board (MPU-6050 chip), banggood.com/custlink/v33hSP1shT
Wemos D1 Mini (ESP8266 chip), banggood.com/custlink/v33RJLItSj
D1 Mini Battery Shield, banggood.com/custlink/mvGhSFfsh2
Total cost = ~$7
Timings
---
00:00:00-00:03:23 Introduction and Demonstration
00:03:23-00:07:17 Hardware Overview
00:07:18-00:19:02 Wiring and power requirements
00:19:03-01:00:07 Arduino/ESP8266/ESP32 Code
01:00:08-01:15:36 Node-RED flow
01:15:37-01:17:28 Wrapup
Code & Wiring Downloads
---
If you'd like to support me making more video tutorials explaining how to use tech in escape rooms and other playful settings, please check out my Patreon at patreon.com/playfultech, where you can also find code downloads, wiring diagrams, and additional resources for this and all my other tech projects.
Now, if we want players to suspend their disbelief that they are not really positioning props embedded with RFID cards but actually placing objects with some mystical power, we need those RFID tags to be detected as smoothly and seamlessly as possible. The sorts of RFID sensors typically used in an escape room are based on the ISO14443 protocol for proximity sensors, which require tags need to be positioned accurately within only a few centimetres of the sensor (as if holding up an ID card to a security-controlled door access panel) - and this can limit the player's experience.
In this video, I'll demonstrate how you can use a PN5180 sensor that uses ISO15693 *vicinity* sensors instead: these work in almost exactly the same way as a regular RFID proximity sensor - by detecting passive tags that can be embedded in props - but have a significantly greater detection range. The setup shown can reliably detect tags up to around 20cm-30cm from each sensor, they do not have to be axis-aligned, and you can build it yourself for around $30.
Timings
---
00:00:00-00:02:06 Introduction
00:02:07-00:06:09 Hardware Overview
00:06:10-00:09:01 Demonstration with Debug Output
00:09:02-00:17:42 Hardware In Detail
00:17:43-00:29:14 Wiring
00:29:15-01:03:37 Arduino IDE Code Listing
01:03:38-01:05:51 Wrapup
Hardware Used
---
- ESP32. I'm using an ESP32 board with a 38-pin NodeMCU-32s pinout, such as banggood.com/custlink/mvKdtuWZHH . ESP32 dev boards come in many varieties with different pin layouts. If you are using a 36-pin board, such as banggood.com/custlink/Gv3EPwWSFZ , please be sure to use the appropriate pins!
- PN5180 RFID Sensors: aliexpress.com/item/32840851498.html
- RJ45 Breakout Board banggood.com/custlink/33DdPfJiqo
- MP3 Player banggood.com/custlink/mGmhH7WngV
- 5V Relay Module banggood.com/custlink/mmGRtfrnQv
(Sorry - I don't have a link to the particular Christmas lights I'm using - they came down from the loft!)
Code & Wiring Downloads
---
If you'd like to support me making more video tutorials explaining how to use tech in escape rooms and other playful settings, please check out my Patreon at patreon.com/playfultech, where you can also find code downloads, wiring diagrams, and additional resources for this and all my other tech projects.
In this part I'll be looking at an "Capacitive Touch Sensor" CAP1188 component, which costs around $10, can be purchased from several online suppliers and is easy to wire and code on an Arduino, ESP32, or other Microprocessor using an I2C interface.
They can be purchased from, e.g. banggood.com/custlink/3v3dtHzIyU
Though some capacitive sensors work by physical touch (e.g. those on a mobile phone screen), by increasing the sensitivity of the board (which can be done by writing a registry value through code), it is possible to detect a hand (or a glass of water, metallic object, or any other object with sufficient capacitance) at a distance of about 15cm from the sensor, with no need for contact. There are 8 different inputs, each with an onboard LED and corresponding output pin, and the readings can be extracted via SPI or I2C interface.
So, this is the third video in a series in which I'll be considering various methods that can be used to replace a traditional Arduino button input with a touch-free interface instead, requiring no physical contact. This is just one possible consideration of how you can make an escape room (or any other public-facing Arduino interface) more "Covid-secure".
In this part I'll be looking at a "Laser Time-of-Flight Sensor" VL53L0X component, which cost around $12 and can be purchased from several online suppliers, such as, e.g. banggood.com/custlink/KvvhHITJAR
It uses an I2C interface, and there are corresponding libraries available for Arduino, ESP32, or other Microprocessors.
Unlike a simple IR sensor (as demonstrated in this earlier video in the series: youtu.be/Y6sGoqSujlQ ), which detects the *intensity* of infra-red light reflected off an object, a time-of-flight sensor detects the *phase shift* between the modulated laser signal sent and the reflected signal received back. This gives an accurate reading of the distance from the sensor to the object, which is more reliable than that typically obtained from an ultrasonic range sensor.
Timings
---
00:00:00-00:00:29 Introduction
00:00:30-00:03:48 Demonstration
00:03:49-00:06:05 Hardware Wiring
00:06:06-00:17:27 Arduino Code Listing
00:17:28-00:18:23 Summary
Code & Wiring Downloads
---
If you'd like to support me making more video tutorials explaining how to use tech in escape rooms and other playful settings, please check out my Patreon at patreon.com/playfultech, where you can also find code downloads, wiring diagrams, and additional resources for this and all my other tech projects.
In this part I'll be looking at an "Ultrasonic Range Sensor" HC-SR04 component, which can be easily purchased online for only a dollar or so from, e.g. banggood.com/custlink/vDvdtPQLrg
It's a cheap, readily-available module that's easy to wire and code on an Arduino, ESP32, or other Microprocessor.
Timings
---
00:00:00-00:00:21 Introduction
00:00:22-00:04:44 Demonstration
00:04:45-00:05:39 Hardware Wiring
00:05:40-00:19:11 Arduino Code Listing
00:19:12-00:20:09 Summary
Code & Wiring Downloads
---
If you'd like to support me making more video tutorials explaining how to use tech in escape rooms and other playful settings, please check out my Patreon at patreon.com/playfultech, where you can also find code downloads, wiring diagrams, and additional resources for this and all my other tech projects.
In this first part I'll be looking at an FC-51 "Infrared Obstacle Avoidance Sensor" component, which can be easily purchased online for only a dollar or so. It's a cheap, readily-available module that's easy to wire and code on an Arduino, ESP32, or other Microprocessor, using only a single digital input pin, and it's capable of simulating when a button is pressed, held, or released.
You can buy this sensor from, e.g. banggood.com/custlink/3KGdtHNjdu
Timings
---
00:00:00-00:01:03 Introduction
00:01:04-00:06:45 Demonstration
00:06:46-00:07:11 Hardware Wiring
00:07:12-00:16:08 Arduino Code Listing
00:16:09-00:16:58 Summary
Code & Wiring Downloads
---
If you'd like to support me making more video tutorials explaining how to use tech in escape rooms and other playful settings, please check out my Patreon at patreon.com/playfultech, where you can also find code downloads, wiring diagrams, and additional resources for this and all my other tech projects.
It uses an Arduino to send G-Code messages to a CNC controller running GRBL software, which moves a magnetic head controlled by stepper motors on an aluminium frame.
You can build the mechanics yourself using the following hardware, which allows to choose the exact dimensions of the frame (e.g. to be installed under an existing table):
2040 Aluminium Extrusion uk.banggood.com/custlink/KKDyVJ8555
GT2 Timing Pulley / Belt uk.banggood.com/custlink/vKvRVrIFH8
NEMA17 Stepper Motors uk.banggood.com/custlink/mvKYtWIHHn
CNC Shield uk.banggood.com/custlink/K3vYtJZ5Ih
Or, you may find it simpler to just buy a complete ready-to-assemble kit containing all the above + necessary screws etc:
Eleksmaker A3 Machine banggood.com/custlink/mv3EVCrS8T
The board on the CNC controller itself runs "GRBL" software. It probably already come pre-installed with your CNC shield, but if not you can download from github.com/gnea/grbl and follow the comprehensive instructions at github.com/gnea/grbl/wiki/Compiling-Grbl to install it. Note that you might have to change the baud rate on line 42 of config.h to match the baudrate defined by the AltSoftSerial connection in CNCController.ino, e.g.:
#define BAUD_RATE 9600
You can view a full list of commands at github.com/gnea/grbl/wiki/Grbl-v1.1-Commands
The most important ones to note are:
- G90 (Use absolute coordinate values)
- G91 (Use relative/incremental coordinate values)
- $J= (Issue a "jog" command)
- G01 X... Y... F... (Linear movement to specified X/Y coordinates at specified F rate)
- G04 P... ("Dwell" - i.e. pause for specified number of seconds)
Timings
---
00:00-02:58 Introduction and Demonstration
02:59-05:04 Behind-the-Scenes
05:05-09:24 Wiring and Components
09:25-38:24 Arduino Code
38:25-42:56 Wrapup
Code & Wiring Downloads
---
If you'd like to download the code and other resources used in this project, and support me to make more video tutorials explaining how to use tech in escape rooms and other playful settings, please check out my Patreon at patreon.com/playfultech, where you can also find code downloads, wiring diagrams, and additional resources for all my other tech projects.
So, for this project, I'm taking a completely different approach - wiring an Arduino (or ESP8266 / ESP32 or any similar microprocessor) directly to the mechanical components of an original 1970s phone - the rotary dial, the hook switch, the solenoid that rings the bells, and the microphone and earpiece speaker. This should be completely portable between handsets, whatever public telephone network they were designed to be used on.
Then, using a DFPlayer Mini MP3 module to handle the audio output, I'll show you how to program completely custom behaviour of the telephone as a Finite State Machine (FSM): you can trigger incoming calls (manually, via a switch in the control room or from control software such as Node-RED/M3/ERM) that makes the telephone ring and, when answered, delivers a specific message to players. Or you could have players dial an outgoing call to any one of thousands of different numbers, of any length, each one mapped to a unique MP3/WAV audio file on the SD card inserted into the DFPlayer. And, you can have the behaviour of those numbers change dynamically during play - to play different messages, or for certain numbers to be engaged or unobtainable at different points in the game, for example. This provides many different opportunities to integrate into an escape room game prop.
Since the entire behaviour is running on an Arduino, it's also easy to program in the ability to control any other external hardware - to release a maglock or power any other device via a relay etc. I believe this makes this the most flexible and feature-rich rotary telephone prop tutorial available.
Timings
---
00:00-00:45 Introduction
00:44-03:35 Demonstration of incoming and outgoing calls
03:36-06:56 Hardware design decisions
06:57-15:27 Identifying components of the telephone handset
15:28-26:11 Wiring the telephone hardware to the Arduino
26:12-29:28 Using a Finite State Machine (FSM) to model telephone behaviour
29:29-01:06:01 Arduino (ESP8266/ESP32) code listing
01:06:02-01:07:07 Wrapup
Resources Used
---
Rotary Pulse Dial telephone, ~$10 ebay.co.uk/sch/i.html?_from=R40&_trksid=p2499334.m570.l1313&_nkw=gpo+746&_sacat=985
DFPlayer Mini MP3 Module, ~$3 banggood.com/custlink/Kv3yCUiv3A
Mini Motor Shield, ~$3 banggood.com/custlink/v3KdCwGCLA
Arduino Nano, ~$2 banggood.com/custlink/mGGmwdTDmU
Code & Wiring Downloads
---
If you'd like to support me making more video tutorials explaining how to use tech in escape rooms and other playful settings, please check out my Patreon at patreon.com/playfultech, where you can also find code downloads, wiring diagrams, and additional resources for this and all my other tech projects.
Now, the severity of an explosive device detonating is a bit hard to convey by just displaying the word "BOOM!" on a small 4-digit LED display, which is why this prop uses the Wi-Fi capability of a Wemos D1 Mini ESP8266 device to publish an MQTT message to a Node-RED server. That server, in turn, sends a message to a connected Arduino UNO which controls a series of DMX lighting and sound effects, providing a much more dramatic theatrical effect, and giving the players a more immersive experience.
For more information on controlling DMX devices from Node-RED via Arduino, see my previous tutorial at youtube.com/watch?v=nPNFbN80pSg
Timings
---
00:00-02:39 Introduction
02:40-05:51 Demonstration
05:52-13:34 Hardware and Design Considerations
13:35-20:19 Wiring Diagram
20:20-53:02 Wemos D1 Mini (ESP8266) Code
53:03-01:00:34 Node-RED Flow
01:00:35-01:06:23 Arduino DMX Controller Code
01:06:24-01:08:55 Wrapup
Resources Used
---
- Wemos D1 Mini, ~$2.50 from e.g. banggood.com/custlink/v33RJLItSj
- TM1637 4-digit LED display, ~$3 from e.g. banggood.com/custlink/GDD3zSq2qk
- Arduino UNO, ~$3 from e.g. banggood.com/custlink/KD3ErLZzY9
- Conceptinetics DMX shield, ~$20 from e.g.
tindie.com/products/Conceptinetics/25kv-isolated-dmx-512-shield-for-arduino-r2
(other shields are available - e.g. thepihut.com/products/dmx-shield-for-arduino. It's also possible to create your own DMX shield using a MAX485 chip, as explained at playground.arduino.cc/DMX/DMXShield )
- RGB Stage Lighting Cans with DMX interface: £70 for 4 - amzn.to/34yeHA3
- Node-RED - nodered.org
Code & Wiring Downloads
---
If you'd like to support me making more video tutorials explaining how to use tech in escape rooms and other playful settings, please check out my Patreon at patreon.com/playfultech, where you can also find code downloads, wiring diagrams, and additional resources for this and all my other tech projects.


