Antes de...
Justificación pedagógica
Esta actividad busca que el alumnado utilice el razonamiento proporcional y el cambio de unidades para interpretar datos técnicos en un entorno de seguridad.
- Qué explicar. El docente explicará el concepto de factor de conversión y el manejo de las unidades implicadas (señal analógica, altura en cm y volumen) para traducir datos físicos a un lenguaje matemático comprensible.
- Qué hacer. El alumnado diseñará un sistema IoT con micro:bit que convierta la señal analógica de un sensor en el porcentaje de altura del habitáculo inundado, calculando la medida necesaria para sustituir un sensor averiado.
- Vinculación curricular. Se vincula con los saberes de estrategias de elección de unidades y operaciones (B.1.3.2), la comprensión de la variable en sus diferentes naturalezas (D.3.3.1) y la resolución de problemas en situaciones reales (CE6).
- Vínculo narrativo. Tras la avería de un sensor de nivel en la base, el equipo debe actuar rápidamente utilizando fórmulas matemáticas y variables alternativas para recuperar el control de la sala inundada y evitar daños en la instalación.
Objetivo
El objetivo principal es que el alumnado utilice el razonamiento proporcional y el cambio de unidades para interpretar datos técnicos y solventar la avería de un sensor en la estación submarina.
Para lograrlo, cada estudiante diseñará un sistema de conversión con micro:bit (IoT) que asocie lógicamente la señal analógica con la altura del agua, aplicando fórmulas matemáticas y manejando variables como el volumen y la altura del habitáculo.
Finalmente, mediante el uso de la tecnología, configurarán un dispositivo para transformar los valores detectados en porcentajes de inundación, logrando así recuperar el control de la sala y garantizar la seguridad de la base.
Conocimientos previos Micro:bit y Make Code
En esta sección encontramos todos los conocimientos necesarios para poder trabajar con Micro:bit y MakeCode:
- Presentación sobre el entorno MakeCode y la placa Micro:bit.
- Vídeo sobre el funcionamiento y primeros pasos con la placa Micro:bit.
- Prácticas para familiarizarnos con entorno MakeCode y la placa Micro:bit.
Comencemos con los conocimientos necesarios para poder trabajar con Micro:bit y MakeCode.
Para ver a pantalla completa clicamos en presentación.
Video que nos muestras el funcionamiento y primeros pasos con Micro:bit:
Para ver a pantalla completa clicamos en presentación.
Ya estamos listos para conocer el Kit IoT.
Conocimiento previos de Kit IoT Smart Science
Ahora veremos lo que necesitamos saber de Smart Science IoT:
- Presentación IoT Smart Science.
- Video sobre el funcionamiento de los componentes del kit.
- Presentación con diferentes prácticas que nos ayudarán a entender las aplicaciones de este Kit.
¿Qué necesitas preparar?
Antes de la sesión de acompañamiento es conveniente:
- Mostrar al alumnado el kit Smart Science IoT y Micro:bit. Su funcionalidad y uso, de este modo comprenderán con menor dificultad lo que deben hacer en la actividad.
- Mostrar al alumnado la interfaz de MakeCode. De esta forma, en el acompañamiento podremos centrarnos en cómo programar por bloques y la sesión será más ágil.
Además, necesitarás este material:
- Un portátil por cada dos alumnos/as (máximo 3) con conexión a internet o con la aplicación MakeCode instalada.
- Documentos:
- Documentos para el docente:
- Diario de aprendizaje (será necesario uno por grupo de alumnos o como especifique el docente)
Desarrollo de la actividad
- Desarrollamos los pasos que deberá seguir el alumnado para poder realizar con éxito la misión.
- Acceso a MakeCode : A través de la web MakeCode.
Paso 1. Añadir la extensión Environment-and-Science-IoT
Para poder programar la pantalla OLED en MakeCode necesitamos añadir una extensión especial.
- Tenemos que abrir nuestro proyecto o crearlo en Microsoft MakeCode for Micro:bit.
- Una vez dentro del proyecto, haz clic en el botón “Extensiones” (parte inferior del menú de bloques o desde la rueda dentada ⚙).
- Dentro del buscador de extensiones, escribe: Environment-and-Science-IoT y haz clic sobre la extensión para que se instale directamente.
- Cuando añadimos la extensión, aparece una nueva opción en el menú de Categorías relacionada con sensores ambientales e IoT.
Dentro de esta categoría encontraremos los bloques para trabajar con la pantalla OLED, como por ejemplo:
- Inicializar pantalla OLED
- Mostrar texto
- Mostrar número
- Limpiar pantalla
- Mostrar en posición X, Y
- Inicializar pantalla OLED
De esta manera, ya podremos programar y mostrar información en la pantalla OLED desde MakeCode.
Paso 2. Configuración de la pantalla al arrancar.
Ahora definiremos cómo debe encenderse la pantalla para que los mensajes se vean correctamente.
- Contenedor inicial. Se utiliza el bloque "al iniciar", obtenido de la categoría Básico (color azul), para que la configuración se realice una sola vez al encender el sistema. Se añade el bloque "initialize OLED with width 128 height 64" de la extensión OLED para ajustar la resolución de la pantalla.

Paso 3. Obtención y procesamiento de la lectura
En esta fase, el programa captura la señal física del agua y realiza un cálculo para convertirla en un valor fácil de entender.
- Creamos la variable "lectura_agua" en la categoría [Crear variable], a continuación, se añade el bloque "fijar [lectura_agua] a" y se guarda el valor captado por el bloque "lectura analógica pin P1"
- Vigilancia continua. Se utiliza el bloque "para siempre" de la categoría Básico (color azul) para que la medición no se detenga nunca. Se añade el bloque "fijar [lectura_agua] a", de la categoría Variables, se guarda el valor captado por el bloque "lectura analógica pin P1".
Paso 4. Cálculo de porcentaje y visualización.
Este es el núcleo del programa, donde se limpia la pantalla y se muestra el nivel de inundación procesado matemáticamente.
- Refresco visual. Se coloca el bloque "clear OLED display" de la extensión OLED para evitar que los números se amontonen.
- Fórmula de conversión. Mediante el bloque "show string" de la extensión OLED, se utiliza un bloque "unir" (categoría Texto) para mostrar la palabra "Inundación" junto al resultado del cálculo: (lectura_agua X 100) / 1023. Al final de la cadena de texto, se añade el símbolo "%" para indicar que el valor mostrado es un porcentaje.
Paso 5. Estabilidad del sistema.
Finalmente, añadimos una pequeña pausa para asegurar que el sistema sea estable y la lectura sea legible.
- Pausa técnica. A través del bloque "pausa (ms) 500", de la categoría Básico (color azul), detenemos el programa durante medio segundo antes de repetir todo el ciclo de nuevo.
Paso final. Conexiones
Es el momento de darle vida a nuestro proyecto físico. Sigue estos pasos para realizar la transferencia y el montaje:
- Descarga y transferencia a la placa Micro: una vez completados estos pasos, el código está listo para ser descargado a tu tarjeta Micro:bit. En esta presentación se explica las diferentes posibilidades
- Montaje de hardware: insertamos con cuidado la Micro:bit en la ranura de la placa de expansión IoT:bit.
- Conexión de sensores: conectamos el sensor de nivel de agua tal y como se muestra en la imagen.
Al conectar el sensor veremos los datos en al pantalla OLED actualizándose automáticamente cada medio segundo.
En este enlace podemos encontrar el resultado de la actividad al completo.
Comencemos - Equipo de Matemáticas
¡Atención, equipo de Ingenieros de la Base!
Estamos ante una emergencia técnica en nuestra estación submarina. Uno de los sensores de nivel de agua se ha averiado y hemos perdido la lectura real de la inundación en una de las salas principales. ¡Solo nuestro dominio de los cálculos matemáticos puede devolvernos el control antes de que el daño sea irreparable!
Nuestra misión es aplicar un factor de conversión que transforme la señal analógica que aún recibimos en el porcentaje de altura del habitáculo inundado. Utilizaremos fórmulas y el manejo de distintas variables para obtener la medida exacta que el sensor roto no puede dar, garantizando así la estabilidad y seguridad de toda la instalación.
Aprenderemos a elegir las unidades y operaciones adecuadas (señal analógica, centímetros y volumen) para resolver problemas de medida en contextos reales. Comprenderemos la naturaleza de la variable en sus diferentes formas y utilizaremos el razonamiento proporcional como una herramienta de precisión para que la tecnología nos permita cumplir nuestra misión y salvar la base submarina.
¡A descifrar los datos!
Visualizamos el vídeo
Aquí tenemos un vídeo que nos ayudará con los pasos que debemos de seguir.
Lectura facilitada
¡Atención, equipo de analistas de datos! Vuestro trabajo es fundamental para la supervivencia. Mientras los ingenieros arreglan las grietas, vosotros sois los responsables de explicar qué está pasando.
🎯 ¿Cuál es nuestro objetivo?
Queremos que la placa Micro:bit funcione como un traductor. El sensor de agua envía señales eléctricas "brutas" (números difíciles de entender). Vuestra misión es convertir esos números en un porcentaje de peligro que todo el mundo pueda leer.
🧠 El reto de las matemáticas
Para que el sistema de alerta funcione, debemos hacer una conversión:
- El sensor nos da. Números entre 0 y 1023.
- Nosotros queremos ver. Un porcentaje entre 0% y 100%.
🚀 ¿Cómo vamos a trabajar?
Nuestra misión es transformar la electricidad en información de supervivencia:
- Preparar los cálculos. Usaremos operaciones matemáticas para pasar de los números grandes (1023) a los porcentajes (100).
- Programar el escalado. Escribiremos el código en el ordenador para que haga la cuenta automáticamente.
- Evitar errores. ¡Revisad bien las operaciones! Si los cálculos fallan, la tripulación no sabrá que la base se inunda hasta que sea demasiado tarde.
Recuerda. Si vuestras cuentas son correctas, el sistema de alarma será perfecto. ¡La seguridad de todos depende de vuestra precisión!
📋 Pasos para el equipo
- Recibir los datos. Mira qué número marca el sensor cuando toca el agua salada.
- Aplicar la fórmula. Usa la regla de proporcionalidad en vuestro programa.
- Mostrar el peligro. Asegúrate de que en la pantalla aparezca el símbolo % correctamente.
¡A descifrar los datos! ¡La estación cuenta con vuestra inteligencia!
Nos preparamos
Estas presentaciones contienen todos los conocimientos necesarios para poder trabajar con Micro:bit y Smart Science IoT, así mismo esta dispone de un índice indicando los contenidos que veremos.
Para ver a pantalla completa clicamos en presentación.
Ya estamos listos para conocer el Kit IoT. Ahora veremos lo que necesitamos saber de Smart Science IoT. .
Fase 0. Preparando nuestro entorno de desarrollo
Iniciamos nuestra misión en la estación Abyss-Zero configurando el cerebro de nuestro sistema para que pueda comunicarse con los dispositivos de medición.
- Nuestro reto. Instalar la extensión "Environment-and-Science-IoT" para disponer de todas las herramientas de control ambiental y visualización.
- Pista de investigación. ¿Dónde solemos acudir cuando queremos ampliar las capacidades de nuestro menú de bloques? Buscamos en el apartado de extensiones (en la rueda dentada o al final de la lista) y escribimos el nombre exacto de la librería de IoT para activarla.
- Comprobación / visualización. Comprobamos que, tras la carga, aparecen nuevas categorías con bloques específicos para manejar pantallas OLED y sensores de entorno.
Fase 1. Encendiendo el visor de la estación
Para que la tripulación pueda leer los niveles de inundación, primero debemos asegurarnos de que la pantalla reciba la orden de encendido con el tamaño correcto.
- Nuestro reto. Configurar la inicialización de la pantalla OLED justo al conectar la energía para que el panel visual esté listo.
- Pista de investigación. Investigamos en la categoría "Básico" qué bloque nos permite dar una orden única al arrancar. Dentro de él, colocamos el bloque de nuestra extensión que define el ancho y alto del panel (128x64) para que la resolución sea perfecta.
- Comprobación / visualización. Observamos que la pantalla del kit se activa y queda en espera de recibir información desde el primer segundo.
Fase 2. Preparando la memoria del sistema
Antes de hacer cálculos, necesitamos que nuestra estación guarde los datos que llegan del sensor en un lugar seguro y que lo haga constantemente.
- Nuestro reto. Crear una variable para almacenar la lectura del agua y asegurar que el sistema vigile el sensor sin interrupciones.
- Pista de investigación. ¿Qué bucle de la categoría "Básico" nos sirve para que una acción no se detenga nunca? Dentro, pensamos en ir a la categoría "Variables" para crear una llamada "lectura_agua" y le asignamos el valor de la lectura analógica de nuestro pin P1.
- Comprobación / visualización. Observamos que nuestro programa ya está "escuchando" activamente los datos eléctricos que llegan desde el puerto del sensor.
Fase 3. Realizando el mapeado matemático
Los datos que nos da el sensor son números difíciles de entender para los humanos; por eso, vamos a traducirlos a un porcentaje de inundación.
- Nuestro reto. Aplicar una fórmula matemática para convertir la lectura cruda en un valor del 0 al 100%.
- Pista de investigación. Para transformar la señal, necesitamos usar los bloques de la categoría "Matemáticas". ¿Cómo podríamos programar la fórmula (lectura_agua X 100) / 1023 para escalar el valor? Pensemos en cómo encajar multiplicaciones y divisiones dentro de nuestro mensaje de pantalla.
- Comprobación / visualización. Percibimos que ahora el sistema ya no piensa en señales eléctricas extrañas, sino en porcentajes lógicos para nuestra misión.
Fase 4. Proyectando los datos en la pantalla
Es el momento de que la información sea visible para todos; vamos a organizar el texto para que la alerta de inundación sea clara y profesional.
- Nuestro reto. Limpiar los restos de datos antiguos y mostrar el mensaje "Inundacion" junto al porcentaje calculado.
- Pista de investigación. ¿Qué bloque de nuestra extensión nos permite "borrar la pizarra" antes de escribir? Para mostrar el resultado final, investigamos la categoría "Texto" para encontrar un bloque que nos permita "unir" la palabra "Inundacion", nuestro cálculo matemático y el símbolo "%".
- Comprobación / visualización. Observamos que en la pantalla aparece un mensaje nítido y actualizado que nos informa del nivel exacto de agua en cada momento.
Fase 5. Estabilizando los sistemas
Si el sistema procesa los datos a la velocidad de la luz, la pantalla parpadeará tanto que nos costará leer los resultados.
- Nuestro reto. Introducir una pausa de control para que el refresco de la información sea fluido y agradable a la vista.
- Pista de investigación. Buscamos en la categoría "Básico" un bloque que nos permita hacer que el programa "descanse" durante medio segundo (500 ms) antes de volver a empezar el ciclo de lectura.
- Comprobación / visualización. Comprobamos que los números en el panel OLED se mantienen estables y son fáciles de leer sin parpadeos molestos.
Fase 6. Conectando la placa al mundo real
Ha llegado el momento de unir nuestro proyecto físico para que el código pueda detectar el agua de verdad en los tanques de la estación.
- Nuestro reto. Conectar el sensor de nivel de agua a nuestra placa para que el código interactúe con el entorno real.
- Pista de investigación. Revisamos nuestro código para ver qué puerto hemos programado. Conectamos el sensor de agua específicamente al puerto P1 de nuestra placa de expansión, asegurándonos de que los colores de los cables (VCC, GND y Señal) coincidan con los de la placa.
- Comprobación / visualización. Comprobamos que, al sumergir el sensor en un recipiente con agua, el número en nuestra pantalla OLED aumenta automáticamente reflejando el porcentaje de inundación detectado.
Nuestras herramientas de apoyo
- Consejo lógico. El mapeo matemático es fundamental en programación. Al dividir por 1023 (el valor máximo del sensor) y multiplicar por 100, estamos creando una "regla de tres" automática para que cualquier sensor nos hable en porcentajes.
- Consejo hardware / físico. Al conectar el sensor de agua, recuerda que solo las pistas metálicas deben tocar el líquido. Si el agua llega a los componentes electrónicos de la parte superior, el sensor podría dejar de funcionar.
Nuestra autocomprobación
- ¿Hemos identificado correctamente qué activador inicia cada secuencia lógica? (Sí/No)
- ¿Observamos que el comportamiento coincide con el orden lógico visible en la captura? (Sí/No)
- ¿Hemos aplicado correctamente la fórmula de escalado matemático para que el valor mostrado sea un porcentaje del 0 al 100? (Sí/No)
Un poco de ayuda
Ensamblamos bloques
En el siguiente proyecto de MakeCode, están los bloques implicados en la programación que tenemos que realizar solo tenemos que ensamblarlos correctamente.
Aprendo pienso y crezco
Aprendo , pienso y crezco
El diario de aprendizaje es nuestro Informe de Seguridad de la Estación personal de "ingenieros e ingenieras". No sirve para copiar teoría, sino para reflexionar sobre cómo hemos aprovechado la química del agua para crear un sistema de defensa electrónico en la Estación Abyss-Zero.
- Diario de aprendizaje (será necesario uno por grupo de alumnos/as o como especifique el docente)
Después de...
Una vez que el código de monitorización funcione correctamente en nuestra placa de expansión IoT, realizamos una validación cruzada con el resto de la base. Es el momento de exponer nuestro terminal de diagnóstico al comité de seguridad de la estación Abyss-Zero.
Organización de los equipos
- División de Fluidos (Física y Química). Presentaremos los datos recogidos sobre el volumen de la habitación y la respuesta física del sensor al ser sumergido.
- División de Análisis (Matemáticas). Presentaremos los resultados sobre la función de mapeo, las señales analógicas y el cálculo exacto del porcentaje de inundación.
Guía de presentación: qué debemos incluir en nuestro informe
Roles del equipo
Para la exposición de emergencia, dividimos el trabajo en tres misiones para que todo el escuadrón participe:
- La portavocía. Explica el objetivo de la monitorización y las conclusiones alcanzadas sobre el riesgo de colapso de la estación.
- La parte técnica. Maneja el hardware en directo, sumergiendo el sensor en el líquido de prueba y mostrando el funcionamiento del código de alerta en la pantalla OLED.
- El análisis. Explica los datos matemáticos, los tiempos de refresco de pantalla y responde a las dudas sobre posibles falsas alarmas o lecturas erróneas.
Objetivo y programación (¿qué y por qué?)
Explicamos la lógica de nuestro código y su vital importancia para el soporte vital:
- El objetivo. ¿Qué queríamos conseguir con el Smart Science IoT Kit?
- Los bloques (entradas y salidas). ¿Qué bloques hemos usado para controlar la pantalla y los sensores? Explicamos cómo las pausas (en milisegundos) evitan que el procesador se sature al actualizar los datos, o cómo el bloque de lectura analógica del pin P1 capta la conductividad del agua.
Diario de errores y soluciones
Documentamos las dificultades técnicas que hemos superado durante las simulaciones de brecha:
- Errores de lectura. ¿Tuvimos problemas porque los datos se amontonaban y superponían en la pantalla OLED haciéndolos ilegibles? ¿El sensor daba valores extraños porque no medía correctamente?
- Solución. Explicamos cómo usamos el bloque "clear OLED display" al principio del bucle para limpiar la pantalla o cómo ajustamos la fórmula matemática (multiplicando por 100 y dividiendo entre 1023) para lograr la precisión porcentual necesaria.
Comprobación y conclusiones
Analizamos si nuestro sistema es verdaderamente fiable para vigilar la base. Comparamos los resultados:
- Contraste. ¿Necesitaba sumergirse más superficie de las láminas metálicas para alcanzar el valor máximo?
- Conclusión. ¿Es precisa nuestra programación o los datos tienden a fluctuar? Reflexionamos sobre la importancia de la conductividad eléctrica y de establecer umbrales numéricos exactos para determinar si estamos en "Calma" o en "Emergencia".
Formato de presentación (opciones DUA)
Elegimos el formato que mejor demuestre nuestras competencias científicas para exponer el informe anterior:
- Opción A - Demo de inmersión en vivo. Realizamos una prueba real en la base de operaciones (aula). Colocamos el sensor en un recipiente con agua y demostramos cómo la pantalla OLED detecta la subida de nivel delante de las demás divisiones operativas.
- Opción B - Esquema de la red de sensores. Hacemos una captura de pantalla de nuestra programación en MakeCode y dibujamos flechas para explicar el flujo del sistema: identificamos dónde está la orden de inicialización de la pantalla, dónde se lee el pin P1 y dónde se realiza el cálculo de porcentaje.
- Opción C - Tabla de telemetría. Generamos una tabla en nuestro cuaderno de bitácora o pizarra comparando la profundidad de inmersión del sensor con el valor puro por la placa y el observable a simple vista en la escala del sensor.