← Volver a proyectos
PROYECTO #13 Iniciacion ⏱ 90 min

Escape
Room

Monta un Escape Room educativo con cartón, cartas mágicas y personajes de fantasía — y una micro:bit como cerradura electrónica. Aprende programación con bloques mientras diseñas tu propio juego de escape. Perfecto para clases de primaria, talleres y eventos escolares.

Cartas y tablero imprimibles Personajes recortables micro:bit V2 MakeCode bloques
micro:bit
🔒
micro:bit
90'
Tiempo
0
Pines

Materiales necesarios

Necesitas la micro:bit y el material imprimible gratuito — cartas, personajes y tablero.

micro:bit V2
micro:bit V2
Funciona como la cerradura electrónica del juego
Botones A, B · Pantalla LED · Buzzer
×1 🛒 Comprar
🖨️
Material imprimible
Cartas mágicas, tablero de castillo y personajes recortables. Descarga gratis.
Imprime en A4 · Recorta · ¡Listo para jugar!
Gratis ⬇️ Descargar
▶ Video tutorial

Míralo en acción

Escape Room con micro:bit

No necesitas conectar nada

Este proyecto usa solo los componentes integrados de la micro:bit — no hay cables ni shield que preparar.

Componente Ubicación Función en el juego
Botón A Integrado Iniciar la cuenta atrás
Botones A+B (juntos) Integrado Combinacion secreta → abrir la caja
Pantalla LED 5×5 Integrado Mostrar la cuenta atras y el resultado
Buzzer Integrado (V2) Melodia de victoria o alarma de derrota
1
Conecta la micro:bit al ordenador con el cable USB y abre MakeCode o el editor de MicroPython.
2
Copia el código de la sección siguiente y cárgalo en la micro:bit. No necesitas ninguna conexión extra.
3
Prepara el tablero, las cartas y los personajes recortables descargados. Coloca la micro:bit como la "cerradura" del juego y diseña el reto para tus jugadores.
💡 Cómo montarlo: Imprime y recorta el material (tablero de castillo, cartas mágicas y personajes). Usa las cartas para guiar a los jugadores hacia la solución. La micro:bit actúa como cerradura electrónica — solo se "abre" con la combinación correcta de botones antes de que se acabe el tiempo.

Programación

Elige tu lenguaje preferido. También puedes descargar directamente el archivo de programación listo para cargar en tu micro:bit.

MakeCode JavaScript
// Escape Room con micro:bit — solo botones integrados
// A = iniciar · A+B juntos = combinacion secreta (ganar)

let tiempoLimite = 30000  // 30 segundos
let tiempoInicio = 0
let resuelto = false
let iniciado = false

// Boton A: iniciar la cuenta atras
input.onButtonPressed(Button.A, function () {
    if (!iniciado) {
        tiempoInicio = control.millis()
        resuelto = false
        iniciado = true
        basic.showString("GO!")
    }
})

// A+B juntos: combinacion secreta para ganar
input.onButtonPressed(Button.AB, function () {
    if (iniciado && !resuelto) {
        resuelto = true
        iniciado = false
        music.playTone(523, 150)
        music.playTone(659, 150)
        music.playTone(784, 400)
        basic.showIcon(IconNames.Happy)
    }
})

basic.forever(function () {
    if (iniciado && !resuelto) {
        let restante = tiempoLimite - (control.millis() - tiempoInicio)
        basic.showNumber(Math.floor(restante / 1000))

        // Tiempo agotado: alarma
        if (restante <= 0) {
            iniciado = false
            music.playTone(200, 1000)
            basic.showIcon(IconNames.Sad)
        }
    }
})
⏱️
control.millis() — Devuelve los milisegundos transcurridos desde encendido. Restando el tiempo de inicio obtienes el tiempo jugado. Dividido entre 1000 = segundos para mostrar en pantalla.
🎮
input.onButtonPressed(Button.AB) — Se activa cuando el jugador pulsa A y B al mismo tiempo. Esta es la "combinacion secreta". Puedes cambiarla por una secuencia de pulsaciones para hacerlo mas dificil.
🔒
La variable 'iniciado' controla si el juego esta activo. Solo se puede pulsar A para iniciar si el juego esta parado, y solo vale A+B si el juego esta en curso. Asi se evitan trampas.
MicroPython
from microbit import *
import music

# Escape Room — solo botones integrados
# A = iniciar · A+B juntos = combinacion secreta

tiempo_limite = 30  # segundos
tiempo_inicio = None
resuelto = False

while True:
    # Boton A: iniciar si el juego no esta activo
    if button_a.was_pressed() and tiempo_inicio is None:
        tiempo_inicio = running_time()
        resuelto = False
        display.scroll('GO!')

    # A+B juntos: combinacion secreta para ganar
    if button_a.is_pressed() and button_b.is_pressed():
        if tiempo_inicio is not None and not resuelto:
            resuelto = True
            tiempo_inicio = None
            music.play(['C5:2', 'E5:2', 'G5:4'])
            display.show(Image.HAPPY)

    # Cuenta atras activa
    if tiempo_inicio is not None and not resuelto:
        transcurrido = (running_time() - tiempo_inicio) // 1000
        restante = tiempo_limite - transcurrido
        display.show(str(restante))

        # Tiempo agotado: alarma
        if restante <= 0:
            tiempo_inicio = None
            music.play(['C3:8'])
            display.show(Image.SAD)
⏱️
running_time() — Devuelve los ms desde encendido. Dividiendo entre 1000 obtienes segundos. Es la base del temporizador de cuenta atras.
🎮
button_a.is_pressed() and button_b.is_pressed() — Detecta que los dos botones estan pulsados a la vez. Esa es la combinacion secreta del escape room. Con was_pressed() detectas una sola pulsacion rapida.

Problemas frecuentes

Si algo no funciona, busca aquí tu problema. El 95% de los errores tienen una solución sencilla.

"Al pulsar A+B no pasa nada"
Asegurate de pulsar los dos botones exactamente a la vez — si sueltas uno antes que el otro puede no detectarlo bien. Tambien comprueba que el juego este iniciado (haber pulsado A antes). Sin iniciar, A+B no hace nada.
"El tiempo no se muestra bien en el display"
La pantalla 5×5 muestra numeros de dos cifras desplazandose. Es normal. Si quieres que sea mas rapido de leer, reduce el tiempo a 10 o 15 segundos — asi solo aparece un digito en pantalla y se lee al instante.
"El juego no se puede volver a iniciar despues de ganar"
Despues de ganar o perder, pulsa el boton de reset (parte trasera de la micro:bit) para reiniciar el programa desde cero. Tambien puedes añadir logica para que pulsar A de nuevo reinicie el juego sin resetear.
"Quiero hacer el reto mas dificil"
Reduce el tiempo (cambia 30000 por 15000 ms) o cambia la combinacion secreta. Por ejemplo, exige que el jugador pulse B tres veces rapido usando un contador, o que agite la micro:bit con el acelerometro en lugar de pulsar A+B.