Introduction: Escape Room Codegenerator

Voor dit project werd er gevraagd om een machine te ontwikkelen die gebruikt zal worden in een escape room. De bedoeling van deze machine is dat door het drukken op een knop een bijhorend cijfer wordt aangeduid aan de hand van lampjes, zo zal het mogelijk zijn om een 3-cijferige code af te lezen. Bijkomend werd er gevraagd dat het toestel efficiënt verplaatsbaar is en een compact geheel vormt. Vanuit het team werd er ook gekozen om dit geheel zo duurzaam mogelijk te houden zodat het toch enkele jaren mee gaat.

De machine zelf wordt ontworpen met als doeleinde op een beurs te staan voor makers namelijk Maker Fair Gent die plaats vindt op 8, 9 en 10 mei 2020. Dit toestel zou gebruikt worden door de leerlingen van de leraren opleiding om deze machine te verwerken in hun ontworpen escape room.

Door bepaalde maatregelen die getroffen zijn door de Covid-19 crisis was het voor ons niet meer mogelijk om samen te komen en het project uit te voeren. Hierdoor is alles gemaakt aan de hand van simulaties.

Step 1: Materiaal

Elektronica:

(x1) Arduino (bij voorkeur een Leonardo, maar andere versies kunnen ook)

(x3) Arcade drukknoppen (drie verschillende kleuren)

(x1) 12V voeding (tweedehands computer voeding)

(x3) RGB Ledstrips(12 leds per strip)

(x3) weerstand van 10kOhm

Als extra word er aangeraden om nog wat krimpkous aan te kopen om de naakte delen van kabels af te schermen, een soldeerbout en soldeertin om de verbindingen vast te solderen. Indien u dit niet op een breadboard wilt nabouwen misschien ook een printplaat om bepaalde verbindingen te maken die in het eerste geval niet mogelijk zijn om gewoon aan elkaar te solderen.

Ook wat Dupon wires en headers zullen zeer handig zijn bij het maken van de elektronische schakeling.

Hardware:

(x6) scharnieren

mdf plaat (dikte: 4mm):

(x4) 500 x 400 mm

(x2) 500 x 100 mm

(x2) 400 x 100 mm

(x1) 500 x 20 mm

(x2) 400 x 20 mm

(x2) 120 x 500 mm

Ook zult u een aantal schroeven nodig hebben, deze schroeven hoeven niet speciaal te zijn gewoon het gene wat u waarschijnlijk thuis hebt liggen is genoeg voor dit project.

Tools:

De tools die u zult nodig hebben om dit project op te lossen is een lazercutter (kan ook met een zaag of freesmachine), de Arduino IDE moet worden gedownload op u pc, een schroevendraaier (eventueel een boormachine) en soldeerbout zoals eerder vermeld.

Step 2: Elektrisch Schema

Voor het elektrisch schema wordt de foto die als bijlage zit gebruikt. Het schema is hier gebouwd op een breadboard maar dit kan natuurlijk ook op een printplaat gesoldeerd worden om te voorkomen dat bepaalde draadjes los zouden komen uit de gaten in het breadboard.

De voeding hier is voorgesteld a.d.h.v. batterijen, het is zeker mogelijk om een andere soort voeding te gebruiken om de schakeling te voeden zelf gebruiken wij een oude computer voeding omdat deze over verschillende spanningen beschikt om van te vertrekken om de ledstrips te voeden en de arduino zelf.

voor een overzicht van de werkende schakeling met programma is het mogelijk om via deze link het model zelf uit te testen via tinkercad. (heeft nog een weiziging nogdig zeker de foto)

Step 3: Programma (uitleg Staat in Programma)

#include <Adafruit_NeoPixel.h>

#define NUM_LEDS 12
#define LED_PIN1 4 
#define LED_PIN2 1 
#define LED_PIN3 0 

int buttonState1 = 0;
int buttonState2 = 0;
int buttonState3 = 0;


Adafruit_NeoPixel strip1 = Adafruit_NeoPixel(NUM_LEDS, LED_PIN1, NEO_RGB);
Adafruit_NeoPixel strip2 = Adafruit_NeoPixel(NUM_LEDS, LED_PIN2, NEO_RGB);
Adafruit_NeoPixel strip3 = Adafruit_NeoPixel(NUM_LEDS, LED_PIN3, NEO_RGB);

const int buttonPin1 = 3; 
const int buttonPin2 = 2; 
const int buttonPin3 = 8; 
      
void setup() {
  
  pinMode(buttonPin1, INPUT);
  pinMode(buttonPin2, INPUT);
  pinMode(buttonPin3, INPUT);

  strip1.begin();
  strip1.setBrightness(50);
  strip1.show();
  
  strip2.begin();
  strip2.setBrightness(50);
  strip2.show();
  
  strip3.begin();
  strip3.setBrightness(50);
  strip3.show();
}

void loop() {
  // Uitlezen van de Knoppen
  buttonState1 = digitalRead(buttonPin1);
  buttonState2 = digitalRead(buttonPin2);
  buttonState3 = digitalRead(buttonPin3);

  Ledstrip1(3,8, buttonState1,buttonState2,buttonState3);
  Ledstrip2(3,10,buttonState1,buttonState2,buttonState3);
  Ledstrip3(3,2, buttonState1,buttonState2,buttonState3);
  
}

void Ledstrip1(uint8_t wait, uint8_t aantal, bool knop1, bool knop2, bool knop3){
    if(knop1 == LOW && knop2 == LOW && knop3 == LOW){
    for(uint16_t i=0; i<strip1.numPixels();i++){
      strip1.setPixelColor(i,strip1.Color(180,0,255));
      strip1.show();
    }
        strip1.clear();
   }
   else if (knop1 == HIGH){
     for(uint16_t i=0; i<aantal;i++){
      strip1.setPixelColor(i,strip1.Color(255,255,0));
      strip1.show();
   }
  }
  else if (knop3 == HIGH || knop2 == HIGH){
    strip1.clear();
  }
}

void Ledstrip2(uint8_t wait, uint8_t aantal, bool knop1, bool knop2, bool knop3){
    if(knop1 == LOW && knop2 == LOW && knop3 == LOW){
    for(uint16_t i=0; i<strip2.numPixels();i++){
      strip2.setPixelColor(i,strip2.Color(180,0,255));
      strip2.show();
    }
    strip2.clear();
   }
   else if (knop2 == HIGH){
     for(uint16_t i=0; i<aantal;i++){
      strip2.setPixelColor(i,strip2.Color(0,0,255));
      strip2.show();
   }
  }
  else if (knop1 == HIGH || knop3 == HIGH){
    strip2.clear();
  }
}
void Ledstrip3(uint8_t wait, uint8_t aantal, bool knop1, bool knop2, bool knop3){
   if(knop1 == LOW && knop2 == LOW && knop3 == LOW){
    for(uint16_t i=0; i<strip3.numPixels();i++){
      strip3.setPixelColor(i,strip3.Color(180,0,255));
      strip3.show();
    }
    strip3.clear();
   }
   else if (knop3 == HIGH){
     for(uint16_t i=0; i<aantal;i++){
      strip3.setPixelColor(i,strip3.Color(0,255,0));
      strip3.show();
   }
  }
  else if (knop1 == HIGH || knop2 == HIGH){
    strip3.clear();
  }
}

Step 4: Mechanisch

Voor de mechanische tekeningen kunt u alles afleiden uit de voorgaande documenten. Het project zou moeten gemaakt worden met behulp van een lasercutter maar u kunt zeker gebruik maken van andere tools zoals frezen of zagen.

De .dwg file is het document waarmee de lasercutter zou moeten werken.

Om de bekisting zelf te maken kan u zich baseren op de technische tekeningen die je ook vindt als pdf. Hierin staan alle afmetingen en te plaatsen waar u moet boren of waar u de scharnieren moet aanbrengen.