Jack the Ripper - Escape Room

Introduction: Jack the Ripper - Escape Room

Dare to embark on this adventure against the clock and be able to save one future victim from Jack the Ripper.

Get ready and open the box to begin this interactive experience, made using various electronic components controlled by an Arduino board. At the beginning, a countdown will be activated, which turns it into an escape room set in Victorian London, where a sinister character terrorized the residents of Whitechapel.

To complete the experience, you must successfully carry out 5 quests following the escape room script that you will listen, only then you will save the next objective from Jack the Ripper.

We hope you enjoy, hurry up.

Supplies

Electronic parts

General electronic parts

•Arduino One Board

•Proto Board

•Jumpers

Quest 1

•Morse Code Sticker

•Padlock

Quest 2

•Resistor x2

•Red Led

•Green Led

•Arduino Keypad 4x4

Quest 3

•Potentiometer

•Buzzer Quest 4

•Resistor x6

•Red Led x3

•Potentiometer x3

Quest 5

•Photoresistor

•Resistor

•Servomotor

Materials
Tools

•Wooden Boards

•Spray Paint

•Rubber Handle

•Wood Glue

•Hinges

•Solder Tin

•Glue

•Paper to make the letter

•Saw •Welder

Step 1: ELECTRICAL CONNECTION DIAGRAM. Quest 2

Step 2: ELECTRICAL CONNECTION DIAGRAM. Quest 3

Step 3: ELECTRICAL CONNECTION DIAGRAM. Quest 4

Step 4: ELECTRICAL CONNECTION DIAGRAM. Quest 4

Step 5: STEP 3: FLOW DIAGRAM AND CODE.

Code

#include
#include int start = 35; //PROVA 2 DATA const byte FILES = 4;

const byte COLUMNES = 4;

char keys[FILES][COLUMNES] = { {‘1’,’2’,’3’,’A’}, {‘4’,’5’,’6’,’B’}, {‘7’,’8’,’9’,’C’}, {‘*’,’0’,’#’,’D’} };

byte filesPins[FILES] = {23, 25, 27, 29};

byte columnesPins[COLUMNES] = {22, 24, 26, 28};

Keypad keypad = Keypad( makeKeymap(keys), filesPins, columnesPins, FILES, COLUMNES );

int correcte = 52;

int incorrecte = 53;

int contador = 0; //PROVA 3 SO int buzzer = A7; int tono = A8; int Re = 39; int boto = 38;

//PROVA 4 RGB

const int Potenciometre1 = A0;

int entrada1 = 0;

int sortida1 = 0;

const int Potenciometre2 = A1;

int entrada2 = 0; int sortida2 = 0;

const int Potenciometre3 = A2;

int entrada3 = 0; int sortida3 = 0;

// PROVA 5 LDR

int pinLDR = A6;

int sortida = 0;

int valorLDR = 0;

Servo ull;

void setup(){ Serial.begin(9600);

pinMode(start, INPUT);

//PROVA 2 DATA

pinMode(correcte, OUTPUT);

pinMode(incorrecte, OUTPUT);

contador = 0;

digitalWrite(incorrecte, HIGH);

//PROVA 3 SO

pinMode(buzzer,OUTPUT);

pinMode(tono, INPUT);

pinMode(boto, INPUT);

pinMode(Re, OUTPUT);

//PROVA 4 RGB

pinMode(A3, OUTPUT);

pinMode(A4, OUTPUT);

pinMode(A5, OUTPUT);

pinMode(51, OUTPUT);

pinMode(49, OUTPUT);

pinMode(47, OUTPUT);

//PROVA 5 LDR

ull.attach(43);

} void loop(){ if(digitalRead(start) == HIGH){ // PROVA 2 DATA char key = keypad.getKey();

if (key){ Serial.println(“BOTO:”);

Serial.println(key);

} if (keypad.isPressed(‘3’)) { delay(50);

contador = 1;

delay(50); Serial.println(“CONTADOR:”);

Serial.println(contador);

} if (contador == 1 && keypad.isPressed(‘1’)) { delay(50);

contador = 2; delay(50); Serial.println(“CONTADOR:”);

Serial.println(contador); } if (contador == 2 && keypad.isPressed(‘0’)) {delay(50);

contador = 3; delay(50);

Serial.println(“CONTADOR:”);

Serial.println(contador);

} if (contador == 3 && keypad.isPressed(‘8’)) { delay(50);

contador = 4;

delay(50);

Serial.println(“CONTADOR:”);

Serial.println(contador);

} if (contador == 4){ digitalWrite(correcte, HIGH);

digitalWrite(incorrecte, LOW);

} if (keypad.isPressed(‘5’)) { delay(50); contador = 0;

delay(50); Serial.println(“CONTADOR:”); Serial.println(contador);

} if (keypad.isPressed(‘6’)) { delay(50); contador = 0;

delay(50);

Serial.println(“CONTADOR:”);

Serial.println(contador);

} if (keypad.isPressed(‘7’)) { delay(50);contador = 0;

delay(50);

Serial.println(“CONTADOR:”);

Serial.println(contador);

} if (keypad.isPressed(‘2’)) { delay(50); contador = 0;

delay(50); Serial.println(“CONTADOR:”);

Serial.println(contador);

} if (keypad.isPressed(‘9’)) { delay(50);

contador = 0; delay(50);

Serial.println(“CONTADOR:”);

Serial.println(contador);

} if (keypad.isPressed(‘4’)) { delay(50);

contador = 0; delay(50); Serial.println(“CONTADOR:”);

Serial.println(contador);

} // PROVA 3 SO int sensor = analogRead(tono);

int frecuencia = map(sensor,0,1023,-100,500);

int duracion = 250;

tone(buzzer, frecuencia, duracion);

delay(100); Serial.print(“Frecuencia:”);

Serial.println(frecuencia);

if (frecuencia < 310 && frecuencia > 270 && digitalRead(boto) == HIGH){

digitalWrite(Re, HIGH);

} // Re: 294Hz // PROVA 4 RGB entrada1 = analogRead(Potenciometre1);

sortida1 = map(entrada1, 0, 1023, 0, 255);

entrada2 = analogRead(Potenciometre2);

sortida2 = map(entrada2, 0, 1023, 0, 255);

entrada3 = analogRead(Potenciometre3);

sortida3 = map(entrada3, 0, 1023, 0, 255);

analogWrite(A3, sortida1);

analogWrite(A4, sortida2);

analogWrite(A5, sortida3);

/*Serial.print(“Entrada: “);

Serial.println(entrada1);

Serial.println(entrada2);

Serial.println(entrada3);

Serial.print(“Sortida: “);

Serial.println(sortida1);

Serial.println(sortida2);

Serial.println(sortida3);

*/ delay(10);

if(sortida1 >= 240 && sortida2 >= 240 && sortida3 >= 240){ digitalWrite(51, HIGH);

} if(digitalRead(51) == HIGH && sortida1 >= 240 && sortida2 <= 15 && sortida3 >= 240){ digitalWrite(49,HIGH);

} if(digitalRead(51) == HIGH && digitalRead(49) == HIGH && sortida1 >= 240 && sortida2 <= 15 && sortida3 <= 15){digitalWrite(47, HIGH);

}

// PROVA 5 LDR

valorLDR = analogRead(pinLDR);

//Serial.print(“LDR: “);

//Serial.println(valorLDR);

sortida = map(valorLDR, 6, 679, 0, 180);

//Serial.print(“Sortida: “);

//Serial.println(sortida);

ull.write(sortida);

delay(100);

} } // Rellotge: //Boto start: DONE // Prova 2 DATA: DONE // Prova 3 SO: DONE // Prova 4 RGB: DONE // Prova 5 LDR: DONE

Step 6: STEP 4: HOW TO BUILD THE PROJECT.

1. Construction of the box

2. Decoration of the box

3. Assembling the components in the box

4. Preparation of the letter where the story of the escape room is explained

Step 7: CONCLUSIONS.

As a conclusion to this Halloween-based midcourse project, we have learned how easy it is to materialize the ideas that we have when making functional prototypes.

This is thanks to the ease and convenience that the Arduino board offers us, since thanks to the libraries and the great community it has, programming all the components that it makes available to you, becomes a very quick and simple process. In addition, the variety of components that can be used allows us a great variety of possibilities.

Halloween Contest

Participated in the
Halloween Contest

Be the First to Share

    Recommendations

    • Anything Goes Contest

      Anything Goes Contest

    Comments