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.
Necesitas la micro:bit y el material imprimible gratuito — cartas, personajes y tablero.
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 |
Elige tu lenguaje preferido. También puedes descargar directamente el archivo de programación listo para cargar en tu micro:bit.
// 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) } } })
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)
was_pressed() detectas una sola pulsacion rapida.Si algo no funciona, busca aquí tu problema. El 95% de los errores tienen una solución sencilla.