
01 · Brief
The wiring box from the fuel game holds loose jumper wires and a set of RFID cards labelled as schematics. Scanning a card on the clue console lights a sequence on the NeoPixel matrix that maps to a wire placement in the panel above it. A card labelled flight controls, for example, shows that a yellow wire on the left should connect to a green wire on the right.
The players patch the panel with the jumpers. Each correctly connected wire lights a green LED on the console. The Nano checks nothing more than which of its own pins are tied together so the power needs stay simple.
This is the first game that talks to the brain. With every wire in place the Nano sends a signal over USB serial, and the Pi answers by putting up a new screen. Two boards share the console, one to show the clue and one to read the answer.
02 · System
03 · Source
Escape_Game_Final_Connectwires.ino
#define RST_PIN 9 // Configurable, see typical pin layout above
#define SS_PIN 10 // Configurable, see typical pin layout above SDA
#define NUM_LEDS 64
#define LED_PIN 6
const int patternL = 8;
CRGB leds[NUM_LEDS];
MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance
byte block;
byte len;
MFRC522::StatusCode status;
String UIDA = "19 EB E3 AF"; //H 25.x
String UIDB = "40 F8 E3 AF"; //G 16y
String UIDC = "22 09 AF 9F"; //F 88v
String UIDD = "81 CF AE 9F"; //X 29.1c
String UIDE = "42 AA E4 AF"; //Z 8.7L
uint8_t patternA[patternL] = {56, 55, 40, 38, 26, 20, 12, 3};
uint32_t colorsA[patternL] = {0x000000FF, 0x000000FF, 0x00FFFF00, 0x00FFFF00, 0x00FFFF00, 0x00FFFF00, 0x00FFFF00, 0x00FFFF00};
uint8_t patternB[patternL] = {57, 54, 41, 38, 24, 23, 8, 7};
uint32_t colorsB[patternL] = {0x00FFFF00, 0x00FFFF00, 0x00FF0000, 0x00FF0000, 0x00FF0000, 0x00FF0000, 0x00FF8000, 0x00FF8000};
uint8_t patternC[patternL] = {58, 53, 42, 36, 27, 19, 11, 4};
uint32_t colorsC[patternL] = {0x00FF8000, 0x00FF8000, 0x000000FF, 0x000000FF, 0x000000FF, 0x000000FF, 0x0000CC00, 0x0000CC00};
uint8_t patternD[patternL] = {59, 52, 43, 36, 26, 21, 10, 5};
uint32_t colorsD[patternL] = {0x0000CC00, 0x0000CC00, 0x00FFFF00, 0x00FFFF00, 0x00FFFF00, 0x00FFFF00, 0x000000FF, 0x000000FF};
uint8_t patternE[patternL] = {60, 51, 44, 36, 26, 22, 9, 6};
uint32_t colorsE[patternL] = {0x00FF0000, 0x00FF0000, 0x0000CC00, 0x0000CC00, 0x0000CC00, 0x0000CC00, 0x00FF0000, 0x00FF0000};
void showPatternA(){
FastLED.clearData();
for (int i = 0; i < patternL; i++){
leds[ patternA[i] ] = colorsA[i];
FastLED.show();04 · Lessons
This game was the first communication between devices. After all this googling about how to wire the UART pins I discovered I could just plug it in via USB.
This game was my favorite, and the first time I worked with neopixels. I was very proud of the RFID controlled LED matrix as it made the schematics feel more "futuristic".