Jack the Ripper - Escape Room

by ruben.berenguer.abrego in Circuits > Arduino

1026 Views, 8 Favorites, 0 Comments

Jack the Ripper - Escape Room

20201105_173322.jpg
20201105_182604.jpg

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

ELECTRICAL CONNECTION DIAGRAM. Quest 2

Quest2.PNG

ELECTRICAL CONNECTION DIAGRAM. Quest 3

Quest3.PNG

ELECTRICAL CONNECTION DIAGRAM. Quest 4

Quest4.PNG

ELECTRICAL CONNECTION DIAGRAM. Quest 4

Quest5.PNG

STEP 3: FLOW DIAGRAM AND CODE.

Diagrama en blanco (2).png
Diagrama en blanco (3).png
Diagrama en blanco.png
Diagrama en blanco (1).png

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 4: HOW TO BUILD THE PROJECT.

mides caixa.jpg
20201101_202938.jpg
20201105_182509.jpg
Carta.PNG

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

CONCLUSIONS.

20201105_182727.jpg

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.