Escuela 4.0: BBC micro:bit en el aula
Curso de introducción al uso en las aulas de educación primaria y de educación secundaria obligatoria de la tarjeta robótica de bajo coste BBC micro:bit.
- Introducción y primeros pasos con micro:bit
- ¿Qué es micro:bit?
- Aprender pensando y aprender haciendo
- Descripción de la placa micro:bit
- Accesorios para micro:bit
- El entorno de trabajo de MakeCode
- Nuestro primer programa
- Jugando con los LED: bloques básicos de código
- Sensores y automatismos simples
- Interacción con micro:bit por medio de los pulsadores
- Bloques de entradas: sonómetro, magnetómetro y acelerómetro con una sola línea de código
- Bucles y eventos de tiempo: un termómetro
- Bloques condicionales: luz crepuscular
- Brújula digital
- Nivel de burbuja usando el giroscopio
- Música y sonido con micro:bit
- Una pequeña melodía
- Grabadora de sonidos
- Fray Santiago
- Controles de volumen, tempo y tono
- El sintetizador de micro:bit
- Variables, lógica y funciones
- Registro y radiotransmisión de datos
- La extensión datalogger
- Registro automático de datos ambientales
- Recuperación y tratamiento de datos
- Extensión Power para el ahorro de energía
- Alarma por radio
- Un registrador a distancia de datos ambientales
- Makecode Arcade: programación de juegos
- El robot Cute Bot
- Cutebot se mueve
- Lucípeto y Giróvago
- Evitando obstáculos
- Un sencillo seguidor de líneas
- Rover marciano
- Recursos para micro:bit
- Tutoriales para el aprendizaje autónomo
- Make it: code it
- Recursos para el profesorado
- Micro:bit classroom
- Micro:bit y Scratch
- Preguntas frecuentes sobre micro:bit
- Diseño de situaciones de aprendizaje con micro:bit
- Situaciones de aprendizaje, ¿qué son?
- Mazurca de Albarracín
- Investigando el péndulo físico
- Confort y ahorro de energía
- Orientación en el medio natural
- Las placas del coro
- La digestión con micro:bit
- Presentando nuestro centro
- Binario a decimal
- Micro:bit para conocer la humedad de la tierra en nuestro huerto
- Digitalizamos la geometría mudéjar
- Referencias
- Créditos
Introducción y primeros pasos con micro:bit
¿Qué es micro:bit?
La placa micro:bit
Micro:bit es un pequeño ordenador del tamaño de media tarjeta de crédito creado inicialmente por la BBC (British Broadcasting Corporation) en 2015 con el fin de promover el desarrollo de la robótica y el pensamiento computacional entre la población escolar de entre 11 y 15 años del Reino Unido.
Actualmente su uso está extendido entre 39 millones de escolares de más de 60 países (Micro:bit Educational Foundation, 2023) con más de 5 millones de tarjetas distribuidas por todo el mundo (Microes.org, 2023).
Placa BBC micro:bit. Micro:bit Educational Foundation CC BY-SA 4.0
El hardware es 100% libre, y está gestionado por una fundación sin ánimo de lucro fundada en 2016, la micro:bit Educational Foundation.
Micro:bit no es el primer proyecto de alfabetización informática de la BBC. Ya en 1981 produjo el BBC Micro, un ordenador de 8 bit programable mediante varios lenguajes de programación, entre ellos un lenguaje BASIC muy avanzado para la época. De este ordenador llegaron a venderse 1,5 millones de unidades, principalmente en el Reino Unido. Fue el ordenador con el que las escuelas británicas comenzaron la enseñanza de la informática.
Volviendo a micro:bit, el desarrollo del proyecto ha sido llevado a cabo por 29 socios tecnológicos de primera línea. Por ejemplo, la implementación del Bluetooth corrió a cargo de la fundación propietaria de la marca, Bluetooth SIG, asociación privada sin ánimo de lucro.
Micro:bit es económico; tanto las placas como los accesorios producidos por terceras empresas tienen un precio muy contenido.
El sistema destaca por su alta integración de software y hardware: basta un clic de ratón para cargar las librerías necesarias para que funcione cualquier complemento robótico, como sensores, pantallas, tarjetas de Internet de las Cosas, robots, casas domóticas, etc.
Programación de micro:bit
La programación de la placa se realiza desde un ordenador a través de un navegador cualquiera, estando disponibles 12 lenguajes de programación. Dado su carácter abierto, existen múltiples soluciones de programación, aunque las más común es MakeCode.
El sitio MakeCode permite programar con bloques y también en Python y en Java, traduciendo de un lenguaje a otro instantáneamente. No se necesita ningún registro en la plataforma para poder programar. Nuestros programas se guardan en el servidor de MakeCode siempre que no utilicemos nuestro navegador de Internet en modo incógnito o que no tengamos activado el borrado automático de cookies.
Sitio web de Make Code. Captura de pantalla
Los programas también pueden guardarse descargados en el ordenador compilados en código de máquina. Al subir de nuevo el programa en el editor, se realiza una decompilación automática al lenguaje de bloques, Python o Java. Los programas guardados en código de máquina se pueden cargar directamente en micro:bit, que en el escritorio de un ordenador aparece como una simple unidad USB.
MakeCode contiene además múltiples recursos como tutoriales, vídeos, fichas de programación, cursos para el profesorado, ejemplos y propuestas de proyectos y experimentos en varios idiomas.
Otra solución muy usada para programar micro:bit es MicroPython, creada por Python Software Foundation, otra organización sin ánimo de lucro.
MicroCode permite que los más pequeños, a partir de los 6 años de edad, programen micro:bit mediante un sistema de fichas dispuestas en líneas de acción. Están disponibles un tutorial introductorio en 20 idiomas, una guía del usuario y muchos ejemplos. El proyecto es de código abierto.
Ejemplo de programa con MicroCode. Captura de pantalla
Micro:bit también es programable en Scratch con sólo añadir una extensión al editor.
Todos los entornos de desarrollo descritos disponen de un simulador de micro:bit, por lo que ni siquiera resulta necesario disponer de una tarjeta física para aprender a programar.
Características de micro:bit
Características de micro:bit V2:
• Procesador de 64 MHz.
• 512 KB de RAM Flash y 128 KB de RAM.
• Matriz de 5 x 5 LED rojos.
• Dos pulsadores mecánicos y un tercer pulsador de apagado y reset.
• Pulsador táctil en el logotipo.
• Micrófono y altavoz.
• Acelerómetro y compás.
• Sensores de luz y de temperatura.
• Bluetooth de bajo consumo.
• Alimentación a 3 V o por USB.
• 25 pines de entradas y salidas.
• GPIO, PWM, I2C y SPI.
• 200 mA disponibles en las salidas para alimentar accesorios.
La placa micro:bit que se encontraba disponible en el mercado antes de la introducción de la V2 era la denominada V1.5. Se distingue de la V2 en que carece de micrófono, de altavoz y de pulsador táctil en el logo. Internamente tiene un procesador menos potente y menos memoria RAM. Tampoco tiene piloto de encendido ni puede apagarse desde el pulsador de reset.
Aprender pensando y aprender haciendo
La introducción del pensamiento computacional en los currículos es tan reciente que no existe una definición precisa ni del concepto ni de su alcance. Esta cuestión comentada por Serrano (2022) es resuelta por el mismo autor, quien proporciona una definición operativa generada desde una perspectica histórica:
El pensamiento computacional está compuesto por un conjunto de procesos de pensamiento involucrados en la formulación de problemas para que sus soluciones puedan representarse como pasos computacionales y algoritmos.
Según esta definición el pensamiento computacional tiene como propósito resolver problemas. Un problema parte de una situación nueva en la que el proceso de resolución es desconocido. Es por ello que la simple memorización de procedimientos para automatizar una tarea, no pone en juego los procesos mentales propios del pensamiento computacional.
Los procesos mentales básicos involucrados en el pensamiento computacional son:
- Descomposición. Se analiza y se fragmenta el problema en subproblemas más simples.
- Identificación de patrones. Los patrones son situaciones ya experimentadas cuya solución es previamente conocida o bien situaciones que se presentan repetidamente en el problema.
- Abstracción. Se pasan por alto los detalles que carecen de importancia.
- Diseño del algoritmo. Se secuencian los pasos necesarios para llegar a la solución.
Fases del pensamiento computacional. Elaboración propia
Si la computación permite aprender pensando, la robótica educativa contribuye a aprender haciendo. Por este motivo, la robótica es denominada computación física. La robótica materializa el algoritmo, que puede de esta forma interactuar con el mundo real.
Más complicado resulta determinar para qué introducir el pensamiento computacional en el aula. Serrano (2022) cita dos corrientes principales, la que limita su desarrollo al ámbito del desarrollo de la competencia digital del alumnado y la que sostiene que el pensamiento computacional puede ser trabajado en todas las disciplinas con el objetivo de contribuir a la mejora global de los aprendizajes.
La fundación micro:bit sigue el primer enfoque, basando su visión en el riesgo de perpetuación y de profundización de las desigualdades sociales que producen las tecnologías digitales. Con su Teoría del Cambio (Micro:bit Educational Foundation, 2023c) pretende que todas las personas desarrollen habilidades digitales que les permitan comprender, participar y trabajar en el mundo moderno. Para ello ha desarrollado productos como micro:bit, alianzas con socios tecnológicos, contenidos y programas educativos con el objetivo de llegar a 100 millones de estudiantes en 2025.
Alegoría de BBC micro:bit generada con IA de Bing.
El segundo enfoque tiene en cuenta el perfecto encaje del pensamiento computacional en las metodologías activas que se derivan de la corriente pedagógica construccionista, que postula que el sujeto construye su conocimiento a través de la acción orientada a la creación. Dos metodologías muy adecuadas para introducir el pensamiento computacional son el aprendizaje basado en problemas y el aprendizaje basado en juegos.
Por otro lado, las actividades de robótica y de pensamiento computacional contribuyen a desarrollar toda una serie de habilidades secundarias o periféricas que no conviene desdeñar. Estas habilidades comunes a todas las metodologías activas son, entre otras, la creatividad, el espíritu crítico, la autonomía personal y las capacidades comunicativas.
Dado el gran número de personas y países involucrados en los programas de micro:bit, diversas organizaciones han realizado estudios de impacto desde los primeros años. Por ejemplo, un estudio de la BCC (2017) encontró que tras un año con micro:bit, la mayoría del alumnado de 11 años de edad consideraba que programar era fácil y que cualquiera podía hacerlo. Además se produjo un incremento significativo de estudiantes que consideraban que las TIC podían ser una opción profesional para su futuro. Este incremento fue del 70% entre las chicas. En cuanto al profesorado, alrededor de un 80% valoró muy positivamente la introducción de micro:bit en el aula.
Descripción de la placa micro:bit
Presentación de micro:bit
Micro:bit es una pequeña placa de circuito impreso de 52 mm x 42 mm, dimensiones que corresponden aproximadamente al tamaño de media tarjeta de crédito. El circuito dispone sus componentes electrónicos al aire, sin ninguna carcasa, y se encuentran soldados por las dos caras de la placa.
La placa micro:bit es segura para su uso con el alumnado de 8 a 14 años (Micro:bit Educational Foundation, 2023b). Ha sido ampliamente probada y cumple con todos los requisitos de seguridad y compatibilidad medioambiental exigibles. En el siguiente enlace se muestran todas las normas y estándares que cumple la tarjeta: https://microbit.org/compliance/
El siguiente vídeo, pensado para personas sin conocimientos de robótica, proporciona una primera idea acerca de las posibilidades y del manejo de la placa micro:bit.
Kits
Micro:bit se encuentra disponible comercialmente como placa simple (micro:bit single) o como parte de un kit. El coste medio en el año 2023 de una placa es de unos 22 €. Por un precio un poco más elevado se puede adquirir un kit más completo, cuyo contenido está pensado como un equipo de iniciación.
Contenido de un kit de inicio. Elaboración propia
El kit presentado en la imagen contiene:
- Una placa micro:bit versión 2. El color de la decoración de la placa puede ser magenta, azul, verde o amarillo.
- Una pequeña guía icónica de inicio rápido.
- Una hoja con recomendaciones de seguridad en varios idiomas.
- Un cable corto micro USB para conectar la placa al ordenador.
- Una cajita portapilas con conector JST.
- Dos pilas alcalinas IEC LR03 (AAA).
Componentes electrónicos integrados en la placa
El anverso de la placa en su versión 2 tiene el aspecto mostrado de la figura.
Anverso de la placa BBC micro:bit. Elaboración propia
La parte marcada con el número 1 es una fila de contactos o pines que permiten conectar la placa a múltiples accesorios, como altavoces, robots, sensores o actuadores. Dispone de 25 pines, 5 de ellos de anillo. Estos últimos están pensados para conectar cables por medio de pinzas o bananas.
El número 2 corresponde al pulsador A. En el lado derecho de la placa existe otro pulsador B. Ambos pulsadores son programables y permiten al usuario comunicarse con micro:bit.
El número 3 apunta al pulsador táctil. Se trata de una novedad de la versión 2 de micro:bit. El pulsador puede distinguir entre pulsaciones rápidas y pulsaciones prolongadas.
El sensor marcado con el número 4 es un micŕofono. Es otra novedad de la versión 2 de la placa. Aunque puede grabar sonido, las grabaciones resultan de una calidad muy pobre. Es por ello que el micrófono se usa sobre todo para medir el ruido ambiental. Un diodo LED de color rojo indica que el micrófono está en funcionamiento.
La matriz de 25 LED rojos está marcada con el número 5. Se usa para representar mensajes de texto e iconos. Su intensidad es ajustable. Sirve también como sensor del nivel de luz ambiental.
El reverso de la placa es un poco más complejo. Aquí se encuentran soldados los dispositivos que permiten el funcionamiento de micro:bit. Se trata del procesador, de los sensores y de los circuitos integrados que proporcionan funcionalidades como la comunicación USB o Bluetooth.
Reverso de la placa BBC micro:bit. Elaboración propia
El circuito número 6 es un acelerómetro y un compás. Este dispositivo permite medir aceleraciones y giros, así como campos magnéticos.
El componente 7 es un pequeño zumbador que puede reproducir tonos y sonidos. Su potencia es muy baja, pero micro:bit puede también conectarse a un altavoz externo.
El procesador es el circuito marcado con el número 8. Además contiene un sensor de temperatura.
La antena Bluetooth se indica con el número 9. Gracias al Bluetooth incorporado, micro:bit puede enviar y recibir datos por radio a cortas distancias.
Cuando el LED de color rojo 10 está encendido indica que la placa está conectada a una fuente de alimentación. Micro:bit puede ser alimentado por un ordenador o por una batería externa través de un cable USB o bien por un par de pilas.
La placa puede comunicarse con un ordenador mediante el conector micro USB 11. Mediante esta conexión micro:bit puede ser programado y también puede enviar al ordenador los datos que recoja con sus sensores.
El LED ámbar 12 parpadea cuando la placa está conectada a un ordenador y se encuentra emitiendo o recibiendo datos.
El pulsador 13 se usa para reiniciar el programa contenido en la placa. Una pulsación prolongada apaga micro:bit, pero sólo si la placa es de la versión 2.
El conector JST 14 permite conectar el portapilas para alimentar la placa con dos pilas alcalinas de 1,5 V. También se pueden usar pilas recargables; las clásicas pilas recargables de NiMH o níquel-hidruro metálico que se venden en algunos supermercados hacen que tanto micro:bit como sus accesorios funcionen sin problemas.
Accesorios para micro:bit
Micro:bit puede ser expandida con múltiples accesorios fabricados por empresas asociadas. Los sensores, las placas de expansión o los robots se acoplan a la tarjeta y se programan de forma simple e intuitiva. También es posible conectar micro:bit a dispositivos no pensados específicamente para la placa, como altavoces o sensores autofabricados, al estilo de Makey Makey. En estos casos es muy conveniente disponer de cables de conexión con pinzas de cocodrilo. Las pinzas se conectan a los pines circulares números 0, 1 y 2 y a los pines GND (masa de alimentación) y 3V (salida de alimentación de 3 volt).
Pinzas de cocodrilo conectadas a micro:bit V2. Elaboración propia
Debemos tener cuidado de no cortocircuitar los pines GND y 3V.
Las fundas de plástico tienen un precio muy bajo y protegen la placa eficazmente, pero hay que tener cuidado de adquirirlas de color transparente, o el sensor de luz podría no funcionar.
Funda para micro:bit V2. Elaboración propia
Quizás los accesorios más potentes sean las placas de expansión. En la figura se muestra una placa IoT (Internet de las Cosas) del fabricante Elecfreaks. La tarjeta micro:bit se inserta directamente en la ranura azul. La placa dispone de un reloj de cuarzo alimentado por una pila de litio de larga duración, de un módulo de comunicación wifi y de conectores de pines (GVS) para añadir sensores. El precio de la placa ronda los 20€ en 2023.
Los terminales GVS se emplean para conectar sensores y actuadores. La G se refiere al terminal de masa (polo negativo, marcado en negro), la V al terminal de alimentación (polo positivo, marcado en rojo) y la S (marcada en amarillo) al terminal que recoge la señal del sensor o del actuador.
Placa IoT de Elecfreaks. Elaboración propia
Los sensores vienen generalmente agrupados en kits. La figura es un kit de Elecfreaks orientado a actividades relacionadas con la agricultura. Además de una placa IoT para monitorizar a distancia nuestros cultivos, también hay sensores de humedad del suelo, de humedad ambiental, de lluvia, de luz y de temperatura, además de un servo para abrir y cerrar ventanas, un sensor de ultrasonidos para detectar intrusos y una pantalla OLED para mostrar información. El precio del kit es de unos 60€ en 2023.
Kit de agricultura de Elecfreaks. Elaboración propia
Algunos accesorios añaden grandes funcionalidades, como el reproductor de audio mp3 de la fotografía. Incorpora un altavoz de más calidad y un lector de tarjetas micro SD. La cantidad de archivos reproducibles sólo está limitada por la capacidad de la tarjeta.
Reproductor de audio en formato mp3. Elaboración propia
Los robots como Cute Bot, disponen de dos ruedas controlables individualmente para ajustar la velocidad y la dirección. Además incorporan sensores para el seguimiento de líneas, luces de colores, sensores de distancia para evitar obstáculos y sensores de infrarrojos para el control con mandos a distancia. Su precio en 2023 es de unos 35€.
Robot Cute Bot de Elecfreaks. Elaboración propia
El Maqueen es también muy parecido ver comparativa en https://libros.catedu.es/books/microbit-car/page/cars-para-microbit
El brazo manipulador de la fotografía se conecta a pines GVS como los de una placa de expansión o como los de un robot. Abre y cierra las pinzas gracias a un servo incorporado y es compatible con juegos de construcción de bloques.
Brazo manipulador. Elaboración propia
Es posible encontrar achivos para imprimir accesorios en 3D en repositorios como Thingiverse. En la fotografía se muestra una cajita de plástico para proteger la placa micro:bit y contener la caja portapilas.
Caja impresa en 3D para micro:bit según diseño de University of Bristol. CC BY-NC. Elaboración propia
El entorno de trabajo de MakeCode
El punto de partida para el estudio de un lenguaje de programación pasa inevitablemente por los lenguajes gráficos o de bloques que facilitan su estudio al mostrar de forma visual las instrucciones del algoritmo programado. (Morales, 2023)
Aunque micro:bit dispone de 12 lenguajes de programación, la mayoría de ellos textuales, parece apropiado iniciar al alumnado en la codificación con bloques. Generalmente, la realización de programas con bloques es el paso siguiente a los juegos desconectados de codificación, a los robots de suelo y los paneles de programación desenchufados.
MakeCode ofrece un entorno integrado, simple e intuitivo de codificación por bloques. Hay que decir que en el entorno de MakeCode también están disponibles los lenguajes Java y Python, con la ventaja de que un programa desarrollado mediante bloques puede ser traducido instantáneamente a cualquiera de los otros dos lenguajes. También es posible realizar la operación inversa, es decir, traducir un programa en Java o Python a bloques.
Pulsando sobre el botón de continuar aparecerá la ventana principal de MakeCode. Para iniciar el entorno de programación habremos de pulsar sobre el botón de nuevo proyecto:
MakeCode nos pedirá seguidamente dar un nombre cualquiera al proyecto y pulsar el botón de crear, tras lo cual se abrirá la ventana del editor.
Entorno Microsoft MakeCode. Captura de pantalla
Para trabajar con MakeCode no se requiere registro. No obstante, pulsando sobre el icono de la esquina superior derecha, situado en la barra de herramientas, es posible acceder a MakeCode desde una cuenta de Google o de Microsoft. Esta característica permite guardar en la nube los diseños realizados y acceder a ellos desde cualquier ordenador.
Podemos ajustar el idioma de la interfaz pulsando sobre la rueda dentada de la esquina superior derecha. Están disponibles 33 idiomas, incluyendo el español.
El panel de la izquierda representa el anverso de una placa micro:bit. Se trata de un simulador, que mostrará en tiempo real el efecto del programa en desarrollo. Nótese que no es necesario disponer de una placa real para realizar los primeros pasos en programación con micro:bit.
Con el puntero del ratón se puede interactuar con la placa y pulsar sus botones, agitarla o cambiar las condiciones simuladas de luz o de ruido. Por otro lado, los controles situados bajo la placa nos permiten:
- Apagar o encender el simulador.
- Reiniciar el simulador, es decir, el programa en ejecución.
- Entrar en modo de depuración para localizar y solucionar errores.
- Activar o desactivar el altavoz del ordenador.
- Tomar una fotografía de la placa.
- Mostrar el simulador en pantalla completa.
El panel central es una caja de herramientas en forma de menú desplegable con todos los bloques de programación disponibles. Los bloques pueden ser arrastrados directamente con el ratón desde el menú. Cada color del menú se identifica con un tipo de acción o de estructura de control. Por ejemplo, el color verde se reserva para los bloques que permiten ejecutar acciones repetitivas o bucles.
La caja de búsqueda colocada sobre el menú desplegable es muy útil para encontrar rápidamente el bloque más adecuado para realizar la acción deseada en cada momento.
El panel de la derecha es el área de programación. Aquí se escriben los programas arrastrando y encajando los bloques de código. Cuando se abre el navegador aparecen por defecto dos bloques azules de eventos del menú básico:
- Al iniciar, es la estructura que contendrá el algoritmo que será ejecutado por la placa sólo una vez, tras ser encendida o reiniciada.
- Para siempre, es el bucle que contendrá el algoritmo que se ejecutará indefinidamente, una y otra vez, cuando acabe la ejecución del algoritmo de inicio.
Pulsando con el botón derecho del ratón sobre un bloque se desplegará un menú contextual que dará varias opciones, como duplicar, borrar u obtener ayuda sobre el uso del bloque.C
Al colocar el puntero del ratón sobre un bloque, el editor mostrará una etiqueta de ayuda con una breve explicación sobre la función del bloque.
https://makecode.microbit.org/reference contiene explicaciones detalladas de los bloques de MakeCode.
En la parte inferior de la ventana de MakeCode se dispone la barra de herramientas, con botones para realizar acciones como descargar el programa en un placa micro:bit conectada al ordenador, guardar el programa en nuestro ordenador o en un repositorio en línea, hacer y deshacer y ampliar o reducir la imagen.
Nuestro primer programa
El primer programa que se realiza cuando se comienza a aprender un nuevo lenguaje consiste casi siempre en presentar un saludo por pantalla. Micro:bit es más original, puesto que propone como primer programa un corazón palpitante.
Vamos a combinar el saludo inicial con el corazón. De esta forma ilustraremos el funcionamiento de los bloques de eventos al inicio y para siempre.
Se trata de seguir los pasos explicados en la página anterior y crear un programa llamado Hola. Tras la apertura del editor pulsaremos sobre el menú Básico y arrastraremos y encajaremos los bloques para configurar el siguiente programa:
Para escribir el texto ¡Hola! basta con hacer clic sobre la caja blanca del bloque mostrar cadena. De igual forma, los iconos de los bloques mostrar icono y los números de los bloques pausa (ms) pueden seleccionarse pulsando sobre las flechas, acción que despliega menús de selección.
Como en el caso de la caja de texto, también puede teclearse directamente el número de milisegundos del bloque pausa (ms).
¿Qué hace el programa? Cuando se enciende la placa, el algoritmo de inicio mostrará una vez mediante la matriz de LED la cadena de texto "¡Hola!". Como la pantalla es muy pequeña, micro:bit deslizará el texto horizontalmente, de derecha a izquierda.
Seguidamente, el algoritmo principal mostrará en pantalla el icono de un corazón grande y entrará en pausa 500 milisegundos, es decir, medio segundo. Pasado este tiempo, micro:bit mostrará un corazón pequeño y esperará otro medio segundo. Este algoritmo se ejecutará indefinidamente hasta que se apague la placa, se pulse el botón de reinicio o se acaben las pilas. El efecto visual será el de un corazón palpitante.
Nada más terminar de colocar el último bloque, el simulador de MakeCode mostrará en pantalla el resultado del programa en ejecución. Para reiniciar el programa hay que pulsar sobre el icono de reinicio, situado justo bajo el dibujo de la placa micro:bit.
Cargar el programa en micro:bit
Hay que conectar primero la placa al ordenador por medio del cable USB. Después de unos instantes, el sistema operativo, (Linux, Windows o MacOS) reconocerá a la tarjeta micro:bit conectada como si se tratase de una unidad USB con el nombre MICROBIT.
La unidad Micro:bit en el escritorio de Linux Mint
Si la tarjeta es nueva, llevará cargado de fábrica un programa de demostración que empezará a ejecutarse nada más ser conectada al puerto USB. El programa mostrará mensajes, iconos en movimiento y sonidos y pedirá al usuario que calibre el compás magnético.
Seguidamente hay que pulsar sobre el botón Descargar, acción que abrirá el diálogo de guardado de archivos del sistema operativo. Bastará con seleccionar la unidad MICROBIT y confirmar la descarga.
Si tienes Vitalinux, te recomendamos visitar esta página.
Mientras dure la transferencia de datos, el LED ámbar situado junto al conector USB de micro:bit parpadeará rápidamente, quedando fijo cuando el programa haya sido transferido.
La transferencia de archivos a micro:bit lleva algo de tiempo, especialmente si el programa es largo. Tras la transferencia, el programa empezará a ejecutarse inmediatamente sobre la tarjeta micro:bit.
Sólo es posible cargar un programa a la vez en micro:bit, por lo que cada nuevo programa se reescribe sobre el anterior.
Si se desea que micro:bit funcione desconectado del ordenador, simplemente hay que alimentarlo por medio de la caja de pilas o mediante una batería externa o un cargador USB. El programa se ejecutará de igual forma, pues se encuentra guardado en la memoria de la placa.
Jugando con los LED: bloques básicos de código
El menú Básico contiene los bloques más usados para programar micro:bit. En la página anterior se han visto los bloques de eventos al iniciar y para siempre. También se han utilizado los comandos mostrar icono, pausa (ms) y mostrar cadena.
El bloque mostrar LEDs sirve para dibujar iconos personalizados. Basta con hacer clic en los puntos para dibujar la figura deseada como en el caso del gato de la figura.
El menú contiene además los bloques borrar la pantalla, mostrar flecha y mostrar número, cuyos nombres son lo suficientemente indicativos de sus funciones.
El menú LED posibilita el control individual de los 25 LED de la pantalla.
Graficar enciende el LED de coordenadas x e y. La coordenada 0, 0 corresponde al LED situado en la esquina superior izquierda de la pantalla, mientras que la coordenada 4, 4 es la del LED de la esquina inferior derecha. El LED central es el de coordenadas 2, 2.
Ocultar apaga el LED de coordenadas x e y.
Invertir cambia el estado del LED de coordenadas x e y. Si estaba apagado lo enciende; si estaba encendido lo apaga.
Punto informa sobre si el punto de coordenadas x e y está encendido o apagado. Este tipo de bloques se explicará en la sección de variables, lógica y matemáticas.
Plot bar graph of crea una barra vertical para representar un parámetro. Resulta un bloque muy útil para visualizar gráficamente las medidas de los sensores de micro:bit. En la sección siguiente se verá con más detalle aplicado a un ejemplo.
El siguiente programa crea una animación con los bloques básicos. Las animaciones son una excelente forma de introducir al alumnado de menor edad en los fundamentos de la programación a través de secuencias simples y en las imágenes digitales.
Nótese que al inicio se ha ajustado el brillo de la pantalla. La función ajustar brillo se encuentra pulsando sobre los tres puntos suspensivos bajo el menú LED. El brillo máximo es de 255, por lo que 128 representa un valor medio.
Sensores y automatismos simples
Interacción con micro:bit por medio de los pulsadores
Pulsadores mecánicos
El menú Entradas contiene los bloques que permiten captar datos de los sensores integrados en micro:bit. Para que la placa lleve a cabo acciones al pulsar los botones A, B ó A y B a la vez, disponemos del bloque de eventos denominado al presionarse el botón:
Al arrastar el bloque anterior desde la caja de herramientas hasta el área de programación y seleccionar la opción de pulsación A+B, la imagen de la tarjeta cambia para mostrar la posibilidad de pulsar con el ratón sobre un nuevo botón virtual que simula la pulsación simultánea de los botones A y B.
Para que micro:bit realice alguna acción específica al pulsar un botón, bastará con introducir los bloques de código necesarios dentro de un bloque de evento de pulsación. El siguiente programa mostrará una flecha apuntando hacia la izquierda al pulsar el botón A, una flecha apuntando hacia la derecha al pulsar el botón B y dos flechas al pulsar los botones A+B. Transcurrido 1 s, se borrará la pantalla.
Los eventos al iniciar y para siempre han quedado vacíos simplemente porque no hemos previsto que se lleve a cabo ninguna acción inicial ni permanente.
Pulsador táctil
Desde la versión 2 de la tarjeta el logo situado en el anverso es un sensor táctil. El menú Entradas dispone de un bloque específico que puede ajustarse mediante un menú desplegable para capturar el evento deseado.
Como puede verse, los eventos asociados al logo son pulsar, tocar, soltar y mantener pulsado. Cada vez que se toque el logo se producirán tres eventos:
- Evento al tocar el logotipo en el instante en que se toca el logo.
- Evento al soltar el logotipo justo en el momento en el que se levanta el dedo del logo.
- Evento al pulsar el logotipo justo en el momento en el que se levanta el dedo del logo siempre que la pulsación haya sido corta.
- Evento al mantener pulsado el logotipo justo en el momento en el que se levanta el dedo del logo siempre que la pulsación haya sido larga.
El siguiente programa simula una luz temporizada.
Mada más tocar el logo, el evento al tocar el logotipo hará brillar la pantalla con una luz tenue. Al levantar el dedo, el evento al soltar el logotipo iluminará la pantalla a plena potencia. Si la pulsación ha sido corta, el evento al pulsar el logotipo mantendrá la luz encendida durante 3 s. Si la pulsación ha sido larga, el evento al mantener pulsado el logotipo mantendrá la luz encendida durante 15 s.
Bloques de entradas: sonómetro, magnetómetro y acelerómetro con una sola línea de código
Sensor de sonido
Para usar los sensores integrados de micro:bit no es necesario cargar ni inicializar bibliotecas de código. Las medidas de los sensores se encuentran disponibles en el menú Entrada en forma de variables. En el lenguaje de bloques las variables se representan mediante rectángulos de extremos redondeados.
La versión 2 de micro:bit dispone de un micrófono que además de grabar sonidos puede medir el nivel de ruido. La variable nivel de sonido nos dará lecturas entre 0 (nivel mínimo de sonido) y 255 (nivel máximo). Estos niveles no se corresponden con ninguna unidad física, como el dB por ejemplo, y deben usarse con fines comparativos.
La razón de que algunos sensores de micro:bit proporcionen medidas entre 0 y 255, es que con un byte (8 bits) sólo se pueden representar 28 = 256 números distintos, es decir, el 0 y los 255 primeros números naturales.
El bloque plot bar graph of del menú LED permite construir un sencillo medidor de sonido ambiente. Como 255 es un valor muy alto de intensidad de sonido, ajustamos el rango de medida de la barra, up to, a la mitad, es decir, a 128. Así la barra reflejará mejor el sonido de una voz o el sonido ambiental normal.
La variable nivel de sonido debe arrastrarse desde el menú Entrada. En el momento en el que la variable haya sido introducida en el programa, el simulador de micro:bit cambiará, mostrando una barra ajustable que simulará el nivel de sonido captado por el micrófono. El valor numérico del nivel de sonido simulado también será mostrado al lado del LED del micrófono.
Tras descargar el programa en la placa real, la matriz de LED representará continuamente el sonido recogido por el micrófono en forma de barra vertical. El LED del micrófono iluminado indicará que micro:bit está captando sonido.
Una tarjeta micro:bit ejecutando este programa puede agotar un par de pilas alcalinas IEC R03 (AAA) en unas 40 horas (Frost 2018). Para ahorrar energía y prolongar la autonomía del medidor podemos reducir tanto el brillo de la pantalla como el número de medidas por segundo que realiza el sensor. Para conseguir esto último introduciremos en el bucle para siempre un bloque pausa (ms). Si el bloque se ajusta a 100 ms, el sensor sólo realizará 10 mediciones del nivel de sonido cada segundo.
Magnetómetro y acelerómetro
Con una mínima modificación, el código anterior puede usarse para monitorizar aquellas magnitudes que puedan variar rápidamente. Por ejemplo, podemos usar el sensor integrado de campo magnético (magnetómetro) para medir el campo magnético de la Tierra, el de una imán o el de una masa de hierro.
Podemos acceder al sensor mediante la variable fuerza magnética (µT), que proporciona la inducción magnética medida en microtesla. Al cargar el programa, micro:bit comenzará a medir el campo magnético terrestre que varía, según la localización, entre 25 y 65 µT. Nótese que el magnetómetro no limita sus medidas al valor de 255.
Otra medida interesante es la de la aceleración de la placa. La variable de acceso al acelerómetro se llama aceleración (mg) y proporciona las aceleraciones medidas en milésimas de g. Cuando la placa esté en reposo medirá la aceleración de la gravedad terrestre, que es de 1 g. Los movimientos bruscos de la placa en cualquier dirección deberían alterar el valor medido.
Bucles y eventos de tiempo: un termómetro
Programación del termómetro
El siguiente programa proporcionará el valor numérico de la temperatura ambiente en grados Celsius cada vez que se pulse el botón A. La variable temperatura (ºC) se encuentra disponible en el menú Entrada.
El evento al iniciar comienza encendiendo un punto de la matriz de LED a modo de piloto de funcionamiento. El brillo de la pantalla se ajusta a un valor bajo para conseguir un bajo consumo de energía.
Por otro lado, cada vez que se pulse el botón A, ocurrirá un evento del tipo al presionarse el botón A que subirá el brillo de la pantalla al máximo (255) y mostrará la temperatura mediante una cadena de texto deslizante, para volver más tarde a dejar encendido el piloto de funcionamiento a bajo brillo.
La temperatura indicada será algo superior a la ambiental. Esto ocurre porque el sensor de temperatura se encuentra en el microprocesador y éste se calienta ligeramente cuando la placa está en funcionamiento. Martínez de Carvajal (2019) establece el error medio en 3ºC, por lo que habrá que restar 3 al valor mostrado en pantalla para obtener la temperatura real. La manipulación de la placa con los dedos también contribuye al calentamiento y al error en la medida de la temperatura.
Podemos añadir un evento de tiempo para que el termómetro muestre la temperatura cada cierto tiempo. Para ello debemos usar el evento cada ms, dentro del menú Bucles.
Cada 30000 ms, o cada 30 segundos, el programa mostrará la temperatura aunque no haya sido pulsado el botón A. Dentro del bucle de tiempo no se sube el brillo, así que los dígitos se mostrarán con bajo brillo para ahorrar batería.
Es posible mejorar un poco más el programa haciendo que micro:bit muestre tres veces la temperatura cada 30 segundos. Podríamos repetir sin más la sentencia mostrar cadena temperatura (ºC) tres veces dentro del bucle de tiempo, pero en su lugar vamos a usar un bucle del tipo repetir veces , que también se encuentra en el menú Bucles.
Nótese que el programa ejecuta un bucle cada 30 segundos, y que dentro de ese bucle se ejecuta otro bucle que muestra la temperatura tres veces seguidas. Al hecho de introducir un bucle dentro de otro se le llama anidar bucles.
Mejorando la lectura del sensor de temperatura
Para corregir el error de 3 grados Celsius en la lectura del sensor, bastará con restar 3 al valor de la variable temperatura (ºC). El menú Matemática contiene bloques para realizar operaciones aritméticas. Si se usa el bloque de resta - dentro de los bloques mostrar cadena resulta sencillo realizar la corección necesaria. El código del termómetro completo quedará:
Los dos bloques mostrar LED han sido sustituidos por dos bloques graficar x y para conseguir que el código sea algo más compacto.
Bloques condicionales: luz crepuscular
Brillo adaptativo
La matriz de LED de micro:bit es también un sensor que puede captar tanto la luz visible como la invisible. En este último caso se encuentra la luz infrarroja emitida por los mandos a distancia.
Los valores de la variable nivel de luz del menú Entrada se encuentran comprendidos entre 0 y 1023. Como en el caso del sensor de sonido, estos valores no tienen correspondencia con ninguna unidad física, como el lux.
Para poder obtener buenas medidas de luz, la matriz de LED debe estar descubierta. Las fundas para micro:bit, especialmente las de color oscuro, pueden alterar las medidas del sensor de luz.
De acuerdo con Martínez de Carvajal (2019), el sensor de luz arrojará aproximadamente las siguientes medidas:
- 0 en condiciones de oscuridad absoluta.
- 100 en una habitación con luz artificial.
- 400 en un día muy nublado.
- 1023 a pleno sol.
Podemos retomar el proyecto del sonómetro y acompañarlo de una pantalla con brillo adaptativo, como la de los teléfonos móviles. La pantalla debe iluminarse con más brillo cuanto mayor sea la luz ambiental.
El evento al presionarse el botón A medirá el nivel de sonido y lo mostrará gráficamente con la ya conocida barra.
Usaremos un evento de tiempo cada ms para medir la luz ambiental cada segundo y así poder ajustar el brillo de pantalla al nivel de luz medido. De esta forma, a mayor luz ambiental, mayor brillo de pantalla. Como el brillo máximo es de 255 y el nivel de luz máximo medible es de 1023, dividiremos la lectura del nivel de luz entre 4 usando un bloque aritmético / del menú Matemática.
Luz crepuscular
Vamos a dar solución a un reto propuesto por Muñoz (2022) programando un automatismo que encienda la pantalla de LED cuando la luz ambiental caiga por debajo de un cierto valor, por ejemplo 100.
Todos los algoritmos programados hasta este momento se ejecutan linealmente desde el primer bloque colocado en la parte superior hasta el último situado abajo. Sin embargo, para solucionar el reto de la luz crepuscular necesitaremos que el flujo del programa siga caminos distintos según se cumpla o no una determinada condición.
Empezaremos evaluando la luz ambiental cada segundo mediante un evento de tiempo cada ms. Esto significa que el automatismo tendrá un tiempo de reacción de un segundo.
Dentro del evento de tiempo, usaremos la estructura si entonces si no, disponible en el menú Lógica , para encender con el máximo brillo la luz de la matriz de LED si la luz ambiental es inferior a 100 o para apagar la matriz en caso contrario. Tras el apagado de la pantalla dejaremos un pequeño punto en el centro iluminado a baja intensidad como piloto de funcionamiento.
El bloque comparador < (menor que) usado dentro de la estructura si entonces también se encuentra dentro del menú Lógica.
Semáforo del ruido en el aula
Make Code permite construir sentencias condicionales más complejas. El código del semáforo del ruido emplea un bloque si entonces si no, si entonces si no. Para construir este bloque se ha utilizado la estructura si entonces si no del ejemplo anterior y se ha añadido una condición suplementaria pulsando sobre el pequeño círculo con el símbolo +. De igual manera, pulsando sobre los círculos con los signos - podremos eliminar condiciones.
Así pues, si el nivel de sonido es inferior a 64, la pantalla mostará un icono sonriente. En caso contrario, si el nivel de sonido es alto pero todavía inferior a 128, se mostrará una cara triste. FInalmente, si el sonido es igual a superior a 128, se mostrará una cara enfadada.
Brújula digital
Una brújula numérica
El sensor de campo magnético integrado en micro:bit también puede usarse para medir el campo magnético terrestre. De esta forma es posible determinar la dirección del norte magnético y programar así una brújula.
De acuerdo con la esencia de micro:bit bastan unas pocas líneas de código para realizar una brújula digital. El código mostrado a continuación indica en pantalla la dirección a la que apunta el logotipo cada vez que se presiona el botón A.
Como el resto de bloques de sensores, el bloque dirección de la brújula (º) se encuentra disponible en el menú Entrada.
La dirección será mostrada en grados sexagesimales. Conviene recordar que el valor de 0º corresponde al norte y el de 180º al sur. La siguiente rosa de los vientos puede servir para clarificar la correspondencia entre los puntos cardinales y los rumbos asociados:
Por ejemplo, y de acuerdo con la rosa de los vientos, una lectura de 340º indicará que el logotipo de micro:bit apunta en dirección casi norte, concretamente nornoroeste.
La brújula funcionará mejor en exteriores, ya que el sensor magnético puede ver alteradas sus lecturas por la presencia de masas metálicas en el interior de los edificios, como las de los electrodomésticos o las armaduras de pilares y forjados.
Es posible que al encender micro:bit, aparezca un mensaje en inglés solicitando agitar la tarjeta para calibrar el sensor. Esta cuestión se trata en el apartado siguiente.
Calibrando el compás
Al igual que la brújula de un teléfono móvil, el compás de micro:bit necesita ser calibrado para proporcionar medidas fiables. Los puntos suspensivos ... más bajo el menú Entrada despliegan otro menú que contiene el bloque calibrar brújula.
Añadiendo el evento mostrado, nuestra brújula digital permitirá ser calibrada cada vez que se pulse el botón B.
El proceso de calibración es muy simple, ya que sólo requiere mover la placa en todas las direcciones hasta que todos los LED de la pantalla estén iluminados.
Una brújula analógica
Vamos a completar la funcionalidad de la brújula añadiendo un cursor que marque continuamente la dirección del norte. Usaremos un evento de tiempo para leer el sensor y actualizar el dibujo del cursor cada medio segundo.
Dentro del evento de tiempo, el código dibujará una flecha hacia arriba cuando la dirección de micro:bit sea mayor que 315º o menor que 45º, es decir, cuando el logotipo apunte aproximadamente al norte. Los bloques condicionales y los comparadores usados en el código se encuentran en el menú Lógica.
Sin embargo, este programa sólo mostrará la flecha cuando el logo apunte al norte, borrando la pantalla en caso contrario. Para que haya una flecha en pantalla apuntando permanentemente al norte, habrá que pulsar sobre el signo + para añadir líneas al bloque condicional.
Nótese que cuando el logo de micro:bit apunta al este, dirección de la brújula (º) < 135, hay que dibujar la flecha apuntando a la izquierda (flecha oeste), y que cuando el logo apunta al oeste, hay que mostrar una flecha apuntando a la derecha (flecha este). Sólo de esta forma la flecha apuntará siempre al norte.
Nivel de burbuja usando el giroscopio
Mediante el sensor de fuerza, micro:bit puede determinar para cada uno de los tres ejes coordenados las proyecciones de la aceleración de la gravedad y, a partir de ellas, el giro de la placa con respecto al plano horizontal.
Vamos a usar la medida del giro de la placa para programar un sencillo nivel de burbuja. La burbuja será un punto luminoso en la pantalla LED de micro:bit. Cuando el punto se encuentre en el centro de la pantalla, cuyas coordenadas son (2,2), micro:bit estará nivelado. Si micro:bit está desnivelado hacia la izquierda o hacia la derecha, el punto se dibujará desplazado en esas direcciones.
La estructura del código, compuesto por múltiples sentencias condicionales, es muy similar al de la brújula analógica presentada en el apartado anterior.
El código consta de un único evento temporal dentro del cual se evalúa el giro de la placa cada 250 ms y que, en función del ángulo de inclinación, enciende el punto correspondiente. Por ejemplo, si la placa se inclina hacia la izquierda con una rotación inferior a -5º, se encenderá el punto situado más a la izquierda, cuyas coordenadas son (0,2). En caso contrario, si la placa está incilinada hacia la izquierda menos de -2º, se encenderá el siguiente punto, de coordenadas (1.2), y así sucesivamente.
Música y sonido con micro:bit
Una pequeña melodía
Secuencias
By pressing down a little key, it plays a little melody.
Kraftwerk, "Pocket Calculator", 1981
El menú Música de MakeCode contiene muchos bloques para producir sonidos y melodías. La forma más rápida de generar una pequeña melodía es introducir en el código el bloque play melody. En el ejemplo siguiente, al pulsar el botón A sonará una melodía pregrabada elegida de una lista desplegable.
La melodía suena en el fondo, in background, por lo que el resto del código que haya sido introducido en micro:bit seguirá ejecutándose mientras suene la música.
La opción hasta que termine detiene la ejecución del código hasta que finalice la melodía.
La opción looping in background hace sonar la música continuamente mientras se ejecuta el resto del código programado en micro:bit.
También es posible programar pequeñas melodías usando el bloque play melody at tempo. En el monento de programar, el bloque despliega un secuenciador gráfico de ocho notas y una octava, en el que las notas están codificadas por colores. Además, el bloque permite elegir el tempo de reproducción en bpm o pulsos por minuto. Vamos a usar el bloque play melody at tempo para codificar un arpegio que suene a 240 bpm al pulsar el botón B:
Adicionalmente, el bloque play melody at tempo dispone de varias secuencias programadas, a las que se accede pulsando sobre el botón Galería.
Melodías y efectos de sonido
El bloque play contiene varias melodías pregrabadas, que pueden seleccionarse mediante una lista desplegable.
Con la versión 2 de micro:bit podemos añadir efectos de sonido por medio del bloque play. De nuevo, al pulsar sobre el bloque se desplegará una lista de los efectos disponibles.
El programa de la figura usa play para hacer que suene el efecto misterioso cuando micro:bit sea agitado.
Grabadora de sonidos
La versión 2 de micro:bit tiene la capacidad de grabar sonidos gracias a su micrófono integrado. El sonido grabado puede reproducirse con el altavoz de la placa aunque, debido a su pequeño tamaño, la calidad es algo pobre. A pesar de ello, experimentar con la grabación del sonido siempre producirá resultados interesantes.
El sonido grabado se guarda en la memoria RAM de la placa, por lo que se borrará cuando se desconecte la alimentación.
Cuando se accede al entorno de MakeCode no aparece ningún menú de bloques relacionados con la grabación o con la reproducción del sonido. Resulta por lo tanto necesario cargarlo como una extensión del lenguaje de bloques de micro:bit. Para ello hay que pulsar sobre el menú Extensiones de la caja de herramientas de MakeCode y seleccionar audio-recording. Tras unos instantes, aparecerá en la caja de herramientas un nuevo menú llamado Record.
Con la nueva extensión ya cargada, podemos pasar a codificar un sencillo grabador y reproductor de sonido.
El programa debe grabar un sonido cuando se pulse el botón A y debe reproducirlo al pulsar el botón B. Durante la grabación mostraremos en pantalla el icono universal record (algo parecido a un círculo) y durante la reproducción mostraremos el icono universal play (un triángulo apuntando hacia la derecha). Cuando el programa termine de grabar o de reproducir, debe mostrar el icono pause (dos barras verticales). El programa puede ser algo parecido a esto:
Una vez introducido el código, el simulador de MakeCode nos ofrecerá la posibilidad de probar el funcionamiento del programa sin necesidad de descargarlo previamente en la placa. Para ello usará el micrófono y el altavoz de nuestro ordenador.
La duración del mensaje grabado es de unos 6 segundos.
Adicionalmente, podemos usar el evento al iniciar para ajustar al máximo la calidad y la sensibilidad del micro.
Set sample rate to 22000 for everything indica que tanto la grabación como la reproducción del sonido se realizarán tomando 22000 muestras o lecturas de la onda sonora por segundo.
Fray Santiago
Por medio del bloque play tone, del menú Música, micro:bit puede reproducir melodías algo más complejas. Hay que recordar que para poder reproducir la melodía es necesario disponer de una tarjeta de la versión 2, ya que la primera versión de micro:bit no dispone de altavoz integrado.
A modo de ejemplo vamos a codificar la melodía Fray Santiago, cuya partitura se muestra a continuación:
De acuerdo con la partitura, las notas musicales que hay que reproducir son:
Do-Re-Mi-Do (2 compases)
Mi-Fa-Sol (2 compases)
Sol-La-Sol-Fa-Mi-Do (2 compases)
Re-Sol-Do (2 compases)
El bloque play tone da la posibilidad de ajustar la duración de las notas en pulsos. Algunas de las notas de Fray Santiago son negras, por lo que durarán un pulso. Otras son corcheas y deben durar la mitad de una negra, es decir, medio pulso. Las blancas tendrán una duración de dos pulsos.
Usaremos un evento si agitado para que la música se inicie al sacudir la tarjeta. Como cada compás se repite dos veces, deben usarse varios bucles repetir 2 veces para ahorrar líneas de código. Aplicando todo lo expuesto, el programa tendrá el siguiente aspecto:
Cuando el programa esté completo, el simulador de micro:bit dará la opción de agitar la placa con el puntero del ratón para reproducir la melodía desde el ordenador, sin necesidad de descargarla en la placa física.
Por otro lado, la imagen del simulador muestra la posibilidad de conectar la tarjeta a un altavoz externo por medio de unas pinzas de cocodrilo y del jack de 3,5 mm del altavoz. Esta es la solución para reproducir sonidos cuando no se dispone de una tarjeta de la versión 2.
Controles de volumen, tempo y tono
Ajustando el volumen y el tempo
La potencia del altavoz de micro:bit no es muy alta, pero puede regularse con el bloque específico establecer volumen a. Por medio de este bloque el nivel sonoro puede ajustarse entre valores de 0 y 255. El ajuste del volumen puede realizarse en cualquier momento de la ejecución del programa. En el caso de la melodía de Fray Santiago, podemos fijar el volumen dentro del evento al iniciar. Además, aprovecharemos este evento para mostrar permanentemente en pantalla una corchea.
De nuevo, tras modificar el programa de Fray Santiago, el simulador de micro:bit nos mostrará cómo conectar la tarjeta a un altavoz externo.Al conectar la placa a un altavoz, puede ser deseable desconectar el altavoz interno. Esta función la realiza el bloque llamado configurar altavoz interno, que puede adoptar los estados activado y desactivado.
La melodía se reproduce por defecto a un tempo de 120 pulsos por minuto. El bloque ajustar tempo a (bpm) admite tempos de entre 40 y 500 pulsos por minuto. Para reproducir Fray Santiago a una velocidad menor que 120 bpm, daremos al tempo un valor de 90 bpm dentro del evento al iniciar.
Sonidos estocásticos
El bloque tono de timbre (Hz) produce un sonido continuo cuya frecuencia en hertz (Hz) puede ser ajustada. El tono generado por micro:bit no tiene una duración determinada, así que sonará hasta que sea apagado mediante el bloque para todos los sonidos.
Usando estos dos bloques podemos programar un generador de notas aleatorias. Para producir números aleatorios se utiliza el bloque escoger al azar de, disponible en el menú Matemática.
De acuerdo con el código presentado, cada vez que se pulse el botón A, la placa generará al azar entre 16 y 32 sonidos, cuyas frecuencias variarán entre 262 Hz y 440 Hz, y que durarán entre 125 ms y 250 ms.
El sintetizador de micro:bit
Los bloques de Música de MakeCode hacen posible que micro:bit sintetice sonidos simples pero muy llamativos. El bloque básico usado para la síntesis es play, que puede ejecutarse mientras sigue la ejecución del programa o hasta que termine el sonido o en bucle.
Pulsando repetidamente sobre el signo +, aparecerán otras opciones para el control del sonido.
Como se ve en la imagen, es posible ajustar la duración del sonido, sus frecuencias inicial y final y el volumen inicial y final.
Los efectos disponibles son trémolo, vibrato y gorjeo. La interpolación afecta a la forma en la que se genera el sonido, produciendo un cambio en su timbre.
Al pulsar sobre el icono de la onda, se despliega un cuadro de diálogo en el que se pueden realizar los ajustes de forma gráfica, siendo además posible seleccionar distintas formas de onda: sinusoidal, cuadrada, triangular, diente de sierra y ruido.
El botón Play reproduce el sonido sintetizado, mientras que Generate Similar Sound produce variaciones. La Galería contiene varias muestras de sonidos, la mayoría percusivos, que admiten ser modificados.
Variables, lógica y funciones
Variables y arreglos
Una variable es un dato almacenado en la memoria del ordenador, al que nos referimos por un nombre y cuyo valor puede ser cambiado durante la ejecución de un programa.
Las variables pueden almacenar tres tipos básicos de datos:
- Booleanos. Un dato de este tipo sólo puede tomar los valores verdadero o falso, a veces nombrados como true y false, high y low, alto y bajo ó 0 y 1.
- Numéricos. Los números almacenados pueden ser enteros, reales, complejos, etc.
- Alfanuméricos, como caracteres o cadenas de texto
Para ilustrar el uso y la utilidad de las variables, vamos a modificar nuestro termómetro digital para que, además de la temperatura actual, muestre también las temperaturas máxima y mínima registradas a lo largo del tiempo.
Comenzaremos por la parte más básica: al pulsar el botón A, micro:bit mostrará en pantalla la temperatura actual. Para ello usamos el bucle de eventos al presionarse el botón A, el bloque mostrar número y la función - para restar 3 grados a la lectura del sensor de temperatura (ºC) y obtener así una lectura más precisa, tal y como se indicó en el capítulo de Bucles y eventos de tiempo: un termómetro.
Las temperaturas máxima y mínima van a ser almacenadas en dos variables que debemos crear previamente. Puesto que cada variable debe tener asignado un nombre, vamos a llamarlas tmax y tmin.
Para crear una variable hay que deplegar el menú Variables, pulsar sobre Crear un variable... y darle el nombre deseado. Tras crear las variables tmax y tmin, el aspecto del menú debería ser el siguiente:
Nada más encender o reinicializar la placa conviene guardar el valor de la temperatura actual en las variables creadas. Para ello usaremos la estructura al iniciar, el valor proporcionado por la entrada temperatura (ºC) y las funciones de asignación de valores fijar tmax a y fijar tmin a.
El bloque fijar...a asigna a la variable el valor numérico indicado, mientras que el bloque cambiar... por suma a la variable el valor indicado.
Las temperaturas máximas y mínimas guardadas en tmax y en tmin van a ser actualizadas cada minuto. Es necesario por lo tanto usar un evento de tiempo del tipo cada 60000 ms de la siguiente forma:
Hemos vuelto a usar dos bloques fijar a para cambiar los valores de las temperaturas máxima y mínima. Por otro lado, las funciones min de...y... y max de...y... se encuentran en el menú Matemática.
El primer bloque de asignación da a la variable tmin el valor mínimo entre la temperatura actualmente medida con la entrada temperatura (º) y la temperatura mínima anteriormente guardada en tmin.
El segundo bloque de asignación da a la variable tmax el valor máximo entre la temperatura actualmente medida con la entrada temperatura (º) y la temperatura máxima anteriormente guardada en tmax.
Ya sólo queda mostrar las temperaturas registradas cada vez que se pulse del botón B. No nos olvidarnos de restar 3 grados a las temperaturas guardadas con el fin de proporcionar unas lecturas más precisas.
Un arreglo es una variable que contiene varios valores numéricos o textuales organizados en filas. El menú Arreglos contiene bloques para crear arreglos, asignarles valores y acceder a los valores guardados. En la imagen se muestra un arpegio guardado como una lista de cuatro notas musicales.
Por último, Para manejar variables de texto, existen muchos bloques específicos disponible en el menú Texto.
Dado de seis caras
Mediante el generador de números aleatorios podemos convertir micro:bit en un dado, de forma que cada vez que la placa sea agitada muestre en pantalla el resultado de una tirada.
Para empezar, es preciso crear una variable que almacene el número aleatorio generado por micro:bit cuando sea agitado. Llamaremos a esta variable resultado, y la crearemos desde el menú Variables, para lo cual hay que pulsar sobre Crear una variable...
Un evento de tipo si agitado borarrá la pantalla y hará sonar una pequeña melodía antes de mostrar el resultado de la tirada. El bloque fijar resultado a escoger al azar de 1 a 6 asignará a la variable resultado un valor aleatorio de 1 a 6. El bloque escoger al azar de...a... se encuentra en el menú Matemática.
Seguidamente, una estructura condicional si...entonces decidirá qué icono mostrar en la pantalla en función del resultado.
El código mostrado es muy fácil de adaptar a otros eventos aleatorios, como el lanzamiento de una moneda al aire o el juego de piedra, papel y tijera, cuyo código se presenta a continuación:
Metrónomo digital
Usaremos variables para convertir micro:bit en un metrónomo digital. Mediante los botones A y B cambiaremos el tempo del metrónomo, mientras que agitando la tarjeta encenderemos y apagaremos el sonido del metrónomo.
En primer necesitamos una variable que almacene el tempo, y a la que vamos a llamar, obviamente, tempo. Otra variable se llamará marcha, y almacenará los valores verdadero, si el metrónomo está en marcha o falso, si está parado. Marcha será por lo tanto una variable de tipo booleano.
La variable findepulso almacenará el momento exacto medido en milisegundos en el que debe acabar cada pulso.
Para crear las variables hay que acceder al menú Variables y pulsar sobre Crear una variable... El aspecto que presentará el menú desplegable una vez creadas las variables es el siguiente:
Seguidamente daremos unos valores iniciales a las variables: 120 para el tempo y falso para marcha. Este último valor indica que el metrónomo estará parado cuando sea encendido o reiniciado.
Recordemos que el bloque con la constante falso se obtiene del menú Lógica.
El metrónomo se pondrá en marcha o se parará cada vez que se agite. Usaremos un evento si agitado del menú Entrada y cambiaremos el valor de marcha. Gracias al operador no, del menú Lógica, si el valor de marcha es falso, cambiará a verdadero, y si es verdadero, cambiará a falso.
Cuando se pulse el botón A el tempo disminuirá un pulso y cuando se pulse el botón B el tempo aumentará un pulso.
Al pulsar A+B micro:bit mostrará en pantalla el tempo.
El bloque para siempre será el encargado de hacer sonar un pitido con cada pulso y de mostrar brevemente el icono de una corchea en la pantalla LED.
En primer lugar, el bucle si marcha entonces se asegura de que el metrónomo sólo funcione si la variable marcha tiene el valor verdadero. En caso contrario el bucle no hará nada.
Si el metrónomo está en marcha, la variable findepulso tomará el valor en milisegundos en el que debe acabar la ejecución del pulso actual. Este valor es la suma del tiempo actual, milisegundos (ms), y de la duración de un pulso en milisegundos, es decir, 60000 ms/min dividido entre el tempo en pulsos/min. La variable milisegundos (ms) se encuentra en el menú Avanzado/Control.
Seguidamente se hace sonar una nota breve, se muestra una corchea en pantalla, se espera un instante y se borra la pantalla.
Como todavía quedará tiempo para que finalice el pulso actual, se introduce un bucle de espera cuyo funcionamiento es el siguiente: mientras el tiempo actual en ms sea menor que el tiempo en el que debe finalizar el pulso, no se hará nada. Por el contrario, cuando el tiempo actual en ms sea igual o mayor al tiempo de findepulso, el pulso habrá acabado, el bucle mientras finalizará y se iniciará una nueva ejecución del bucle para siempre (un nuevo pulso).
Uso de funciones
Una función es por lo tanto un trozo de código al que asignamos un nombre que podemos invocar en cualquier momento y desde cualquier parte del programa para que se ejecute. En otros lenguajes de programación, las funciones como las de MakeCode son denominidas rutinas, subrutinas, módulos, métodos o procedimientos.
Consideremos del código siguiente, que convierte a micro:bit en una alarma: cada vez que la tarjeta es agitada presenta un icono intermitente y produce un sonido.
Después de ajustar el volumen al máximo, un bucle repetir 4 veces, muestra un icono, después reproduce una melodía pregrabada por medio del bloque play...hasta que termine, borra la pantalla y espera medio segundo.
Podemos hacer más sensible la alarma añadiendo más eventos para dispararla, por ejemplo, el giro de la placa a la izquierda.
Para cualquier otro evento que deba activar la alarma habrá que repetir volver a repetir el código, llenando el área de programación de bloques. Solucionemos este probllema creando una función a la que vamos a llamar activar.
Tan sólo hay que pulsar en el menú Avanzado Funciones, pulsar sobre crear una variable... y darle el nombre elegido. Inmediatamente aparecerá el nuevo bloque de código correspondiente a la función activar.
Ahora debemos completar el código de la función:
Finalmente, cada evento que deba disparar la alarma incorporará una llamada a la función, que aparecerá como un bloque denominado como llamada activar dentro del menú Funciones.
Registro y radiotransmisión de datos
La extensión datalogger
Una de las funciones más interesantes de la placa micro:bit es la de registro de datos o data logging. Gracias a la memoria no volátil de la placa, los datos captados por los sensores pueden ser almacenados cada cierto tiempo para, posteriormente, ser recuperados en formato de hoja de cálculo, accesible como un archivo guardado dentro de micro:bit.
Micro:bit puede convertirse de esta forma en un instrumento de almacenamiento de medidas de mútiples magnitudes físicas, como temperatura, nivel de luz, aceleración, giro, humedad, presión, etc. Teniendo en cuenta que cualquier experiencia científica necesita realizar mediciones, se comprende la potencia y versatilidad de la placa en este tipo de actividades.
El registro de datos sólo está disponible en las versiones 2.x de micro:bit .
Micro:bit puede registrar datos mientras tenga alimentación eléctrica. Con un par de pilas alcalinas R03 podrá funcionar durante algo más de un día. Con una batería externa USB podremos alargar su funcionamiento durante varios días. Usando un cargador de móvil, el registro de datos durará hasta que se llene la memoria de la placa, que es de 512 kB.
La captura de datos puede ser manual, por ejemplo cada vez que se apriete un botón, o automática, programando un evento que registre los datos a intervalos regulares de tiempo. Estos intervalos pueden ser muy largos, como en la medición de magnitudes ambientales como la temperatura, o muy cortos, si es necesario medir fenómenos rápidos como las aceleraciones en una caída.
Para poder usar el registro de datos en MakeCode hay que cargar previamente la extensión datalogging. Primero pulsaremos sobre +Extensiones y posteriormente sobre el icono de datalogger.
Después de unos instantes se habrá cargado la biblioteca, y aparecerá un nuevo menú llamado Data Logger en la toolbox de MakeCode.
El nuevo menú incluye bloques para crear, configurar, añadir datos y borrar el registro de datos o log. Los datos del log se organizan en una matriz de filas y columnas, como en una hoja de cálculo. La primera columna contiene los instantes en los que se realizan los registros. Las siguientes columnas almacenan los valores numéricos registrados.
Los datos no se borran al apagar o reiniciar la placa. El log puede borrarse desde el programa con el bloque delete blog o bien cargando un nuevo programa en micro:bit.
Registro automático de datos ambientales
Para ilustrar el funcionamiento de la biblioteca datalogger vamos a programar un registrador quinceminutal de temperatura y luminosidad ambiental.
Para inicializar el registro de datos o log tendremos que añadir dos bloques dentro del evento al iniciar. El bloque set timestamp hours añadirá el tiempo, expresado en horas, en las celdas de la primera columna del log. Set columns creará dos nuevas columnas en el log, una llamada Luminosidad y otra llamada Temperatura. Los botones + y - sirven, respectivamente, para añadir o quitar columnas de datos.
Cada vez que se ejecute el evento cada...ms grabaremos una línea de datos en el log. El evento se ejecuta cada 60000 x 15 ms, es decir, cada 15 minutos. El bloque operador x se encuentra en el menú Matemática. Los valores que van a ser grabados en las celdas de las dos columnas son el nivel de luz y la temperatura (ºC), del menú Entrada.
Añadiremos un evento para parpadee una luz a modo de testigo o piloto de funcionamiento. Cada segundo, el LED central de la matriz alternará su estado entre encendido y apagado. El bloque invertir x...y... se encuentra en el menú LED.
Una vez compuestos los tres bloques de código, el simulador de Make Code nos ofrece la posibilidad de asignar valores a las lecturas de la temperatura y del nivel de luz.
Un botón en la parte inferior, etiquetado como Show data Simulator, da acceso a los datos simulados del registro.
En ocaciones resulta conveniente iniciar y finalizar la captura de datos manualmente, por ejemplo, pulsando un botón. Esta funcionalidad puede conseguirse creando una variable booleana, a la que vamos a llamar registrando. esta variable debe crearse desde el menú Variables.
En primer lugar modificaremos el evento al iniciar para que asigne el valor falso a registrando, lo cual indicará que el registro de datos no debe estar activado cuando se encienda la placa. El menú lógica contiene la constante falso.
Cada vez que se pulse el botón A, registrando cambiará de valor. Si tenía el valor falso cambiará a verdadero y vicerversa. El operador de negación no, del menú Lógica, lleva a cabo este cambio de valores. Además, haremos que micro:bit reproduzca un breve sonido como confirmación del cambio.
Sólo cuando registrando sea verdadero guardaremos los datos.
Por último, el piloto de funcionamiento del registrador debe apagar el LED central si es que registrando es falso y mantenerlo intermitente si es verdadero.
Recuperación y tratamiento de datos
Usaremos el programa registrador de datos ambientales, codificado en el apartado anterior, para mostrar cómo se gestionan los datos grabados en la tarjeta.
Los datos mostrados a continuación son los grabados como resultado de colocar la placa micro:bit conectada a su cajita de pilas dentro de un recipiente hermético de plástico transparente, y de dejar el recipiente toda una noche en el exterior.
De acuerdo con la documentación de micro:bit, pueden almacenarse hasta 11000 datos cuando se crea una sola columna. Por otro lado, la autonomía de funcionamiento con dos pilas alcalinas nuevas es de unos dos días. Podemos aumentar la autonomía usando baterías USB o conectando la tarjeta a un cargador de móvil. En la página siguiente usaremos una biblioteca que nos permitirá ahorrar mucha energía en los procesos de registro de datos.
Para acceder a los datos hay que conectar la placa al ordenador. El archivo de datos se encuentra haciendo doble clic en la unidad USB MICROBIT, acción que mostrará el archivo MY-DATA.htm. Al hacer doble clic en el archivo, se abrirá una nueva página en nuestro navegador:
Además de la tabla con los datos registrados, la página presenta cinco botones:
Download: descarga los datos en nuestro ordenador en formato *.csv. El documento resultante podrá ser abierto desde cualquier hoja de cálculo.
Copy: copia los datos en el portatapapeles. De esta forma podremos pegarlos en una hoja de cálculo o en un procesador de textos.
Update data...: actualiza los datos presentados en la pantalla, transfiriendo los últimos datos grabados desde la tarjeta conectada al ordenador.
Clear log...: borra los datos grabados en la tarjeta.
Visual preview: representa gráficamente los datos registrados. En nuestro caso, los datos mostrarán la caída de la temperatura durante la noche y el aumento de la luminosidad a partir del amanecer.
Además, cuando pasemos el cursor sobre la curva, aparecerán controles suplementarios para acercar o alejar la gráfica, para reinicializar los ejes y para guardar la imagen. Al colocar el cursor sobre un punto de la gráfica nos serán mostradas sus coordenadas:
Podremos también ocultar o mostrar la gráfica de una columna determinada haciendo clic en la etiqueta correspondiente, Luminosidad o Temperatura.
El efecto escalonado de la gráfica se debe a que micro:bit guarda valores enteros de la temperatura, sin decimales.
Extensión Power para el ahorro de energía
Power contiene bloques para poner a micro:bit en estado latente o de hibernación, sleep mode, en el cual la ejecución del programa se detiene reduciendo drásticamente el consumo de energía.
Micro:bit podrá despertar y volver a ejecutar el programa gracias un evento de tiempo, por la pulsación de un botón, o bien mediante una señal de entrada aplicada a uno de sus pines.
La extensión Power sólo funciona con micro:bit V2.
Power resulta muy útil para crear registradores de datos, ya que éstos pasan la mayor parte del tiempo inactivos y sólo miden y graban magnitudes cada cierto tiempo, a menudo cada muchos minutos.
Para instalar Power hay que pulsar sobre el menú +Extensiones y, una vez abierta la página de la biblioteca, sobre el botón Software.
La carga de la extensión requiere pulsar sobre el icono Power.
Despueś de la carga de la extensión, Power aparecerá el menú de bloques.Vayamos con el registrador de datos. Empezaremos modificando el evento al iniciar para que micro:bit pase al estado latente justo tras ser encendido. Para ello, tras crear las columnas del registrador de datos, colocamos un bloque request low power.
Por supesto, es posible ahorrar energía eliminando el piloto LED intermitente, pero vamos a mantenerlo en funcionamiento. El evento de piloto estará ahora controlado por full power every 1000 ms. Es decir, despertaremos a micro:bit cada segundo para invertir el estado del piloto LED.
Cuando se despierte micro:bit, habrá que impedir que otro evento que se esté ejecutando lo vuelva a dormir. Esta función la realiza el bloque low power prevent, Después de ejecutar este bloque se invierte el LED central, se da permiso a la placa para dormir con low power allow y se le ordena volver a dormir con request low power.
Ahora le toca al evento grabador de datos que se ejecuta cada quince minutos o 60000 x 15 ms. Su estructura es la misma que la del control del piloto. Aquí también hay que prevenir que la placa se duerma mientras grabamos datos.
Podemos prolongar todavía más la duración de las pilas manteniendo a la vez la luz piloto para saber si está funcionando la placa. Haremos que el LED parpadee más lento, por ejemplo cada 3 segundos, y durante menos tiempo, por ejemplo durante 75 milisegundos por medio a un bloque pausa (ms). De esta forma, la placa permanecerá dormida un 97,5% del tiempo, alargando espectacularmente la autonomía de funcionamiento.
El gráfico siguiente muestra la temperatura exterior en ºC captada por una placa alimentada a pilas durante 5 días de funcionamiento, tras los cuales, la placa seguía alimentada.
Alarma por radio
Las placas micro:bit disponen de Bluetooth integrado de bajo consumo. A máxima potencia y en campo abierto, dos placas pueden comunicarse hasta a 70 metros de distancia. Sin embargo, el alcance dentro de un edificio se reduce a unos pocos metros a causa de las interferencias con otras fuentes de radio, de los muros, de los forjados y del mobiliario.
El menú Radio contiene los bloques necesaarios para enviar y recibir datos por Bluetooth. Lo habitual es inicializar la radio dentro del evento al iniciar de la siguiente forma:
La potencia de transmisión debe tomar un valor entre 0 y 7. A mayor potencia, mayor alcance, pero también mayor consumo de energía.
Todas las placas que pretendan comunicarse deben transmitir en el mismo grupo. Hay 256 grupos disponibles, numerados desde 0 hasta 255.
También puede ajustarse la banda de frecuencia, que puede variar entre 0 y 83.
Vamos a comunicar dos placas para crear una alarma inalámbrica por movimiento. Cuando una placa sea movida, enviará un mensaje de texto a la placa receptora y ésta mostrará un signo de alarma en la pantalla a la vez que hace sonar un pitido de alarma.
Las dos placas, la emisora y lareceptora, deben tener el mismo código en el evento al iniciar, con idénticos canal y banda de frecuencia.
La placa emisora mandará un mensaje de texto cualquiera, por ejemplo "Alarma", cuando sea sacudida. Usaremos un evento del tipo si agitado y un bloque radio enviar cadena "Alarma".
La placa receptora usará un evento al recibir radio receivedString, que se activará cuando la placa reciba una cadena de texto cualquiera. Dentro del evento mostraremos un signo de admiración, subiremos el volumen a tope y repetiremos cuatro veces un sonido pregrabado. Finalmente borraremos la pantalla.
Un registrador a distancia de datos ambientales
En esta práctica utilizaremos una placa micro:bit como sensor de temperatura exterior y otra placa como sensor de temperatura interior. La placa exterior enviará por radio cada 15 minutos una medida de temperatura a la placa interior, que se ocupará también de medir y registrar la temperatura interior. Ambas placas trabajaran en modo de ahorro de energía.
Programación de la placa exterior
Como primer paso hemos de programar la placa exterior, que usará la extensión Power, que deberá instalarse desde el menú Extensiones. Además debemos configurar la radio, por lo que desde el menú de inicio ajustaremos la banda de transmisión, la potencia (máxima) y el grupo, para finalmente poner la placa en hibernación con request low power.
Haremos que el LED central dé un breve destello de luz de 75 ms cada 5 segundos, para lo cual habrá que despertar a la placa hibernada tras el inicio con full power every 5000 ms y volverla a dormir con request low power.
Cada 15 minutos, o cada 15 x 60 x 1000 = 900000 ms, despertaremos a la placa, tomaremos una medida de la temperatura y la enviaremos por radio. Para despertar a la placa volveremos a usar el bloque full power every 900000 ms del menú Power.
En este caso nos conviene que el evento anterior encargado de encender el LED central cada 5 segundos no nos pueda poner la placa a dormir, por lo que bloquearemos la hibernación con low power prevent.
Hasta que no recibamos una confirmación de recepción procedente de la placa interior (una cadena de texto cualquiera) no hibernaremos la placa exterior, tras de lo cual desabilitaremos el bloqueo de la hibernación y pondremos a dormir a la placa.
Si va a dejarse la placa exterior a la intemperie, resulta muy conveniente colocarla dentro de un recipiente hermético, como un táper.
Programación de la placa interior
Al igual que en el caso de la placa exterior, habrá que configurar la radio con los mismos parámetros. También tendremos que inicializar el registro de datos, para lo cual habrá que cargar primero la extensión Data Logger.
Guardaremos los datos en dos columnas, una para la temperatura exterior y otra para la interior. Con set timestamp añadiremos una tercera columna que guarde los tiempos, expresados en minutos, en los que realizan las lecturas .
De nuevo, el LED central tendrá que parpadear cada 5 segundos a modo de testigo de funcionamiento. El código es el mismo que en el caso de la placa exterior.
Cada 15 minutos despertaremos a la placa y evitaremos que otro evento la ponga en hibernación con low power prevent, a la espera de recibir por radio algún dato de la placa exterior.
Cuando la placa esté despierta y reciba por radio un dato de temperatura de la placa exterior, contenido en received number, podrá guardar éste junto con la temperatura interior, temperatura (ºC), en el registro de datos.
Por último, mandaremos una cadena de texto cualquiera, en este caso "Leído", a la placa exterior para que pase a hibernación, habilitaremos la hibernación de la plaza interior y la hibernaremos. Dentro de otros 15 minutos despertarán las dos placas y volverá a comenzar el proceso para registrar un nuevo par de valores.
Makecode Arcade: programación de juegos
Qué es Makecode Arcade
MakeCode Arcade es una plataforma web que permite crear y jugar videojuegos de estilo retro. La programación se puede realizar mediante bloques o, como ya sabemos, en lenguaje de programación JavaScript.
Accedemos a través de https://arcade.makecode.com/ y, del mismo modo que sucede con la programación de la tarjeta micro:bit, en su página de inicio encontramos una gran cantidad de mapas, tutoriales, lecciones, etc.
Programamos nuestro primer juego: "PAPA NOEL vs KRAMPUS"
Vamos a centrar nuestra práctica en la programación de un sencillo juego que nos permita identificar algunos de los bloques más básicos: “PAPA NOEL vs KRAMPUS” .
En primer lugar, creamos el escenario a través del menú scene.
Una sencilla forma de comenzar es seleccionando una imagen de la galería y editándola posteriormente, si lo deseamos, aunque podríamos crear la imagen para el fondo partiendo de cero.
Seguidamente creamos nuestro primer sprite, en este caso, PAPA NOEL. Para ello, fijamos el sprite desde el menú Objetos.
Por un lado, crearemos una nueva variable para dar nombre a nuestro sprite. En nuestro caso, PAPA NOEL.
Por otro, definimos la imagen de nuestro sprite, en el apartado objeto. Pulsando sobre la imagen, nos abrirá una nueva venta en la que, al igual que para crear el fondo, podremos seleccionar uno ya existente en la galería, podremos editarlo e incluso acceder a nuestro archivos y creaciones previas para reutilizar alguno de los que creamos anteriormente. En este caso, hemos dibujado la cara de Papá Noel.
Y para acabar, en este bloque sólo nos quedará definir su rol. En este caso, PAPA NOEL, jugaría el rol de player (jugador), ya que es el sprite con el que nos identificamos y sobre el que ejecutamos las acciones mediante la programación de los pulsadores.
Ahora que ya hemos hecho la configuración inicial y la creación de un sprite, vamos a analizar el primer grupo de bloques (al inicio). Como ya sabes bien, los colores de los bloques nos facilitan la ubicación en su categoría correspondiente.
Vamos a crear y configurar ahora dos nuevos sprites. Uno será el KRAMPUS, enemigo de PAPA NOEL en este juego. Otro, el REGALO. Estos regalos son los que PAPA NOEL irá recogiendo por el camino para sumar puntos.
Vamos con el KRAMPUS:
Como ya conocemos bien el significado, nos fijamos únicamente en los bloques de los regalos que, en este caso, vamos a configurar con el rol (kind) "Food", ya que son sprites positivos que aportarán puntos por el mero hecho de ser recogidos por PAPA NOEL (o lo que es lo mismo, por superponerse ambos sprites).
Vamos a crear ahora un sprite que va a servir a PAPA NOEL para hacer desaparecer al KRAMPUS. Este sprite se va a llamar BOLA DE NIEVE y va a funcionar a modo de proyectil. Para lanzarlo tendremos que pulsar el botón A y del mismo modo que hemos indicado anteriormente, podemos configurar su velocidad de desplazamiento.
Una vez tenemos creados los sprites, tenemos que configurar las consecuencias de su interacción, o lo que es lo mismo, cómo conseguimos que PAPA NOEL sume puntos para alcanzar su objetivo y ganar la partida al KRAMPUS o, cómo podemos quedarnos sin vidas, a causa del KRAMPUS y, por lo tanto, perder la partida.
Ahora que hemos visto cómo configurar el KRAMPUS, veamos cómo configurar la interacción del sprite BOLA DE NIEVE con el KRAMPUS, y la del sprite REGALO con PAPA NOEL. Ambos casos son beneficiosos para PAPA NOEL que sumará un punto por cada regalo recogido en su camino y también un punto por cada KRAMPUS que destruya con una BOLA DE NIEVE.
Ya tenemos todo configurado para jugar pero habrá que indicar cuándo y cómo acaba el juego, o podrían darnos las Navidades del año próximo sin haber resuelto todavía semejante conflicto. Vamos a ello.
En primer lugar, supongamos que todo se resuelve favorablemente para PAPA NOEL. En ese caso:
Puede suceder que antes de acumular los 50 puntos necesarios para que PAPA NOEL gane la partida, hayamos perdido las tres vidas que le asignamos inicialmente a PAPA NOEL. ¡Oh, qué lástima!
Una vez finalizado, sólo nos queda disfrutar del videojuego en la consola (simulador)
o bien descargar el programa (.hex) y copiarlo en nuestra tarjeta micro:bit. Es muy importante seleccionar correctamente el tipo de soporte (hardware) en el que vamos a insertar nuestra tarjeta:
En nuestro caso, se trata del soporte micro:bit Retro Shield:
Makecode arcade genera automáticamente el archivo .hex necesario para el hardware seleccionado.
¡Y ahora, sí! Sólo queda insertar la tarjeta micro:bit y ¡a jugar!
El robot Cute Bot
Cutebot se mueve
¿Qué es Cutebot?
Cutebot es un pequeño robot programable diseñado para enseñar programación y robótica a los niños. Cutebot dispone de una ranura en la que se inserta una tarjeta micro:bit, que actúa como controladora del robot.
El fabricante de Cutebot es Elecfreaks, una empresa con sede en China que desarrolla, fabrica y vende productos educativos basados en micro:bit. La empresa es el distribuidor de micro:bit en China y uno de los socios de la fundación micro:bit.
Cutebot tiene las siguientes funcionalidades:
- Dos ruedas controladas independientemente y conectadas a sendos motores provistos de reductoras de engranajes.
- Alimentación mediante tres pilas alcalinas R06 (AAA), tres pilas recargables de NiMH o un pack de batería de litio.
- Dos LED frontales RGB de colores seleccionables desde el código del programa.
- Dos LED RGB bajo la placa para producir efectos de luz mediante una biblioteca de bloques específica.
- Dos sensores colocados bajo la placa para detectar líneas.
- Dos LED azules sobre la placa para informar sobre el estado de la detección de líneas.
- Un emisor y receptor de ultrasonidos para la detección de obstáculos.
- Varios puertos para la conexión de accesorios tales como brazos motorizados, cámaras de inteligencia artificial, pantallas OLED, servomotores, etc.
- Un receptor de infrarrojos que permite el control del robot mediante un mando a distancia.
- Un pequeño zumbador para producir sonidos.
Cada sensor o actuador es accesible mediante puertos numerados desde P0 hasta P15. Por ejemplo, las luces LED situadas bajo la placa se activan desde el puerto P15. Los puertos P13 y P14 corresponden a los sensores del seguidor de líneas.
Biblioteca de bloques de Cutebot
Para controlar Cutebot es preciso programar previamente la placa micro:bit. Los bloques de programación para el control de Cutebot no están disponibles inmediatamente en el editor MakeCode, por lo que deben ser cargados antes de comenzar a programar. Para ello hay que pulsar sobre el menú +Extensiones de MakeCode.
Se desplegará un mosaico de imágenes de accesorios entre los que se encuentran varios robots. Tan sólo hay que buscar la imagen correspondiente a Cutebot y pulsar sobre ella.
Tras unos instantes, se cargarán dos nuevos menús de bloques, uno llamado Cutebot para el control del robot y otro llamado Neopixel para producir efectos de luces con los LED colocados bajo la placa.
El menú Cutebot ofrece bloques para el control de la velocidad de las ruedas, para ajustar el color de las luces, para leer los sensores de infrarrojos, de líneas y de obstáculos y para accionar los servomotores que pudieran conectarse.
Cutebot se mueve
Para probar Cutebot, vamos a programar un pequeño bucle que haga avanzar una corta distancia al robot cuando detecte un ruido fuerte, como una palmada. Adicionalmente, el robot encenderá las luces frontales y emitirá un breve pitido de confirmación. El código a introducir es el siguiente:
La secuencia que se ejecuta continuamente dentro del bucle para siempre consta de los siguientes pasos:
- Comprobar si el nivel de sonido supera un cierto umbral, en nuestro ejemplo, 180.
- En caso afirmativo encender las dos luces frontales con luz roja.
- Tocar una nota musical breve y esperar a que termine de sonar.
- Hacer girar las dos ruedas hacia adelante a un 25% de su velocidad máxima.
- Esperar un segundo.
- Detener las ruedas.
- Apagar las luces.
En algunos casos, Cutebot no conseguirá avanzar en línea recta. Esto ocurrirá cuando las ruedas giren a velocidades ligeramente distintas, efecto producido por la variabilidad en las características de los motores. Por ejemplo, el robot se desviará a la derecha cuando la rueda izquierda gire a una velocidad algo mayor que la derecha. Para solucionar este problema conviene reducir ligeramente la velocidad de la rueda izquierda o bien aumentar la velocidad de la rueda derecha.
Lucípeto y Giróvago
Lucípeto...
Muñoz (2023) presenta un código muy simple para que Cutebot pueda detectar las fuentes de luz intensa y se mueva hacia ellas, al igual que un insecto.
El código combina la lectura del sensor de luz de la placa micro:bit con los bloques de control de velocidad de los motores de CuteBot. Cuando el nivel de luz medido es muy bajo, el robot enciende las luces frontales con color rojo y gira sobre sí mismo buscando una fuente de luz lo suficientemente intensa. El giro se consigue moviendo las dos ruedas a la misma velocidad, pero en sentidos contrarios.
Cuando el sensor detecta suficiente luz, las dos ruedas pasan a girar a la misma velocidad, por lo que Cutebot avanza en línea recta hacia la fuente de luz. Adicionalmente, se encienden las luces frontales con luz blanca.
...y Giróvago
Vamos a convertir Cutebot en un spinner activado por un sonido fuerte, como una palmada. El spinner girará sobre sí mismo, encenderá una luces e irá reduciendo paulatinamente su velocidad hasta pararse.
El código utilizado es el siguiente:
Esta vez introduciremos el código que hace girar al robot dentro del evento al detectar el sonido alto, disponible en el menú Entrada.
Necesitamos una variable, a la que llamaremos velocidad, para guardar el valor de la velocidad de las ruedas. Dicha velocidad irá disminuyendo progresivamente, al igual que ocurre en un spinner; la variable debe ser creada previamente pulsando sobre el menú Variables.
Volviendo al código, cuando micro:bit detecte un sonido fuerte, se activará el evento al detectar el sonido alto y la variable velocidad tomará al azar un valor inicial entre el 30% el 50%.
Seguidamente se iniciará un bucle mientras que mantendrá girando el robot durante 500 mS en cada iteración. La rueda derecha se moverá hacia adelante a velocidad y la rueda izquierda se moverá hacia atrás a -velocidad.
Transcurridos 500 mS, se restará 1 a la variable velocidad. Mientras la velocidad sea mayor que 10, el bucle mientras se volverá a ejecutar y Cutebot se mantendrá girando, aunque cada vez a menor velocidad.
Cuando la velocidad sea igual o menor que 10, la ejecución saldrá del bucle mientras y parará los motores.
Añadamos ahora al nuestro spinner efectos de luces con los LED colocados bajo la placa y con los bloques de la biblioteca Neopixel. Esta biblioteca está pensada para producir efectos de luz con tiras de LED. En primer lugar lugar hay que inicializar los dos LED que forman nuestra tira:
Fijar strip es un bloque que se encuentra en Neopixel. Strip es la variable con la que nos refirimos a las luces colocadas bajo la placa de Cutebot, P15 es el puerto correspondiente a las luces y 2 es el número total de luces a controlar.
Los LED RGB generan cada color gracias a la mezcla de tres luces, cada una de ellas correspondiente a uno de los tres colores primarios: rojo, verde y azul.
En cada ejecución del bucle mientras se encenderán los dos LED de la variable strip con un color que será la mezcla de los tres colores rojo, verde y azul, generados cada uno de ellos con intensidades aleatorias, desde 0 (valor mínimo) hasta 255 (valor máximo).
Al salir del bucle mientras es preciso apagar los LED mediante el bloque strip show color black.
Evitando obstáculos
El sensor de distancia
El kit básico de Cutebot incluye un sensor de distancia. Se trata de un accesorio conectable al frontal de Cutebot mediante cuatro pines marcados en la placa como "SONAR". El funcionamiento de la placa se basa en la emisión de ultrasonidos y en la recepción de los ecos generados cuando las ondas rebotan contra objetos cercanos.
El sensor de distancias debe conectarse en el puerto marcado como "SONAR" y no en el marcado como "IIC". Es muy posible confundirse, ya que ambos conectores se encuentran juntos.
El bloque que proporciona la medida de la distancia detectada por el sensor es Sensor de distancia cm HC-SR04, y se encuentra en el menú de bloques de Cutebot. La medida proporcionada por el sensor puede ajustarse en cm y en pulgadas.
El programa mostrado sobre estas líneas es el código básico que detiene el movimiento de Cutebot al encontrar un obstáculo. Cuando el sensor de distancia detecta un obstáculo a menos de 10 cm, el coche se detiene por completo y enciende las luces rojas. En caso de no encontrar ningún obstáculo, el robot simplemente se mueve hacia adelante con las luces apagadas.
Recordatorio: si Cutebot no anvanza en línea recta, habrá que aumentar ligeramente la velocidad de una de las ruedas. Si el desvío se produce hacia la izquierda, habrá que aumentar la velocidad de la rueda izquierda. Si el desvío se produce hacia la derecha, habrá que aumentar la velocidad de la rueda derecha.
Detección y evitación de obstáculos
Es posible refinar el código para que Cutebot no se detenga ante un obstáculo, sino que lo esquive. Para ello haremos que cuando el robot se encuentre con un obstáculo, haga un giro al azar a la izquierda o a la derecha durante 250 ms y continúe con la ejecución del programa.
Un ligero retroceso antes de empezar a girar puede mejorar el comportamiento del robot.
Jugando con la distancia de detección y con los tiempos de giro y retroceso también puede mejorarse el comportamiento del robot ante los obstáculos.
Un sencillo seguidor de líneas
Código básico
Los dos sensores ópticos colocados bajo la placa de Cutebot, similares a los de un ratón de ordenador, pueden detectar líneas negras. El kit de Cutebot incluye una plantilla de papel con una línea negra cerrada a modo de circuito. Programaremos micro:bit para que Cutebot sea capaz de reconocer el circuito y recorrerlo de forma autónoma.
Tras cargar la extensión de Cutebot, comenzaremos por introducir un código que muestre en la matriz de LED de micro:bit el logotipo del seguidor de líneas:
El bucle para siempre se dedicará a leer continuamente los dos sensores de líneas y a actuar sobre la velocidad de las ruedas. Cuando los dos sensores de líneas detecten el color negro (El estado del seguimiento es ●●), significará que Cutebot está justo sobre la línea del circuito y que debe continuar avanzando hacia adelante. Para ello hay que hacer girar las dos ruedas a la misma velocidad.
Si el sensor derecho detecta color blanco (El estado del seguimiento es ●○), el robot se ha salido de la línea por la derecha y debe girar hacia la izquierda. Para ello habrá que parar la rueda izquierda y hacer girar la rueda derecha hacia adelante. El código tendrá el siguiente aspecto:
Si, por el contrario, el sensor izquierdo detecta color blanco (El estado del seguimiento es ○●), el robot se habrá desviado hacia la izquierda y habrá que girarlo hacia la derecha para recolocarlo sobre la línea:
¿Qué ocurre si el robot ha perdido completamente la línea y los dos sensores detectan color blanco? En este caso, (El estado del seguimiento es ○○), conviene parar el robot. El código completo se muestra a continuación:
Cuando las pilas estén muy frescas, Cutebot se desplazará más rápido y puede que pierda la línea continuamente. Este problema se soluciona reduciendo la velocidad de las ruedas, por ejemplo al 20%.
Mutatis mutandis
El código desarrollado es efectivo, pero admite muchas mejoras. Por ejemplo, cuando el robot intente dar una curva muy cerrada, es posible que pierda la línea y se detenga completamente. Realicemos una pequeña modificación en el código para que Cutebot pueda volver a encontrar la línea perdida:
De acuerdo con el último bloque condicional, cuando se pierda la línea (El estado del seguimiento es ○○) el robot comenzará a rotar sobre sí mismo y no se detendrá hasta que la vuelva a encontrar.
Si no frenamos completamente las ruedas al realizar las correcciones de la trayectoria podremos conseguir que el movimiento de Cutebot sea más suave. El código requiere unos cambios mínimos:
Añadimos funciones automáticas
El seguidor de líneas puede incorporar luces automáticas que se enciendan, por ejemplo, al entrar en un túnel. Incorporar esta función es tan simple como añadir al código un evento de tiempo que lea el sensor de luz de micro:bit y, dependiendo del valor medido, encienda o apague los LED de Cutebot.
Rover marciano
Control remoto
Programemos un robot de exploración a control remoto. Esta vez serán necesarias dos placas micro:bit, una receptora montada sobre Cutebot y una emisora a modo de mando de control remoto.
Además, Cutebot enviará a la placa usada como control la información que capten sus sensores durante las exploraciones.
En primer lugar, es preciso que ambas placas ajusten la radio Bluetooth en el mismo grupo y banda de frecuencia. Los bloques necesarios se encuentran en el menú Radio. El siguiente código es por lo tanto común a la placa emisora y a la receptora.
Vamos ahora con el emisor. Cuando pulsemos los botones A+B, el rover debe avanzar. Para ello le enviaremos por radio una cadena de texto con el código "Av".
Al pulsar el botón A el mando enviará un código "Iz", que indicará un giro a la izquierda. De la misma forma, Al pulsar el botón B el mando mandará un código "De", indicativo de un giro a la derecha.
El código básico del emisor está ya resuelto. En cuanto al receptor, éste sólo debe ocuparse de mover el rover cuando reciba los códigos. Un rover marciano debe moverse muy despacio, así que cada vez que se reciba un código, las ruedas se mantendrán en movimiento durante unos pocos milisegundos.
La estructura si...si no, si... se obtiene del menú Lógica; habrá que pulsar sobre los símbolos + y - para añadir o quitar condiciones a la estructura.
El evento al recibir radio se encuentra en el menú Radio. receivedString hace referencia al código recibido, y puede arrastarse para encajarse en los comparadores incluye, que se encuentran en el menú ^Avanzado Texto.
El código es muy claro: cuando se recibe una cadena de texto se comprueba si contiene el código "Av" y, en caso afirmativo, se hace avanzar a Cutebot durante 500 ms. Si por el contrario el código es "Iz", el robot girará a la izquierda durante 250 ms. Por último, cuando el código sea "De", el robot girará a la derecha durante otros 250 ms. FInalmente, se pararán los motores.
Transmisión de datos ambientales
Hagamos ahora que el rover transmita información sobre los obstáculos que vaya encontrando. En primer lugar haremos que su placa micro:bit muestre el logotipo de la misión de exploración planetaria (La Tierra y Marte):
Cada vez que el robot reciba un código para moverse, se comprobará la distancia medida por el sensor y, si ésta resulta ser menor o igual a 10 cm, se enviará el dato numérico al mando a distancia. Como puede verse a continuación, esta función se consigue añadiendo sólo dos bloques más.
Por su parte, la placa que se usa como control remoto debe mostrar en su pantalla el valor de la distancia que haya medido y retransmitido el rover. En primer lugar borraremos la pantalla LED cada vez que enviemos un código al rover.
Mediante el bloque plot bar graph del menú LED, mostraremos en la pantalla del mando una barra luminosa cada vez que se reciba un número desde el rover.
Mediante la función de resta entre 10 y el distancia recibida desde el rover conseguimos que la barra muestre su altura máxima cuando la distancia a un obstáculo sea mínima. De igual forma, la barra tendrá un altura nula cuando no haya obstáculos cercanos.
Podemos conseguir un movimiento más preciso del rover reduciendo los tiempos de avance y giro, por ejemplo, a 250 ms y 125 ms. También podemos añadir la función de marcha atrás al pulsar el logo táctil.
Recursos para micro:bit
Tutoriales para el aprendizaje autónomo
El sitio web de MakeCode presenta en su página de inicio una serie de tutoriales para el autoaprendizaje desde cero de la programación con micro:bit.
Los tutoriales de la primera fila están pensados para la placa micro:bit V1, pero también son perfectamente válidos para la nueva placa micro:bit V2.
Para entrar en un tutorial sólo hay que pulsar sobre su icono. Veamos por ejemplo cómo es el tutorial del proyecto "Name Tag":
En primer lugar, se nos ofrece la posibilidad de ver un pequeño vídeo explicativo del programa a realizar.
Aunque el vídeo está inglés, se encuentra alojado en youtube, por lo que es posible activar los subtítulos en español.
Por otro lado, el tutorial nos ofrece la posibilidad de programar en los tres lenguajes de programación de MakeCode.
Cada tutorial comienza con una ventana que explica el proyecto a realizar. En este caso vamos a convertir micro:bit en una etiqueta digital con nuestro nombre.
Tras pulsar Aceptar, se abrirá el editor de micro:bit que mostrará una línea de instrucciones.
Además, la parte superior derecha de la ventana del editor muestra un control de los pasos necesarios para completar el programa y realizar el tutorial.
Para evitar confusiones, el menú de bloques o caja de herramientas sólo contiene los bloques estrictamente necesarios para realizar el programa:
En caso de duda, un botón con el icono de una bombilla nos proporcionará las pistas necesarias para seguir adelante:Al finalizar el tutorial podremos ver otro vídeo, en este caso explicativo del funcionamiento de los diodos electroluminiscentes, LED.
Para finalizar el tutorial, bastará con pulsar el botón LIsto, del control de pasos.
Make it: code it
El sitio de la Fundación micro:bit contiene en uno de sus apartados una colección de más de 100 proyectos cortos STEAM.
Los proyectos están organizados por nivel, tipos de sensores utilizados, lenguaje de programación y temática tratada. Cada proyecto incluye una descripción del proyecto, la lista de los materiales necesarios, instrucciones de montaje paso a paso y archivos .hex con el código necesario para hacer funcionar los proyectos. En cada proyecto hay también una o varias propuestas de mejora.
Adicionalmente, muchos de los proyectos incluyen vídeos explicativos tanto del objetivo del proyecto como de la codificación necesaria.
Recursos para el profesorado
Professional Development courses
En el sitio web de Micro:bit Educational Foundation podermos acceder gratuitamente a 11 clases (en inglés), cada una de ellas de unos 40 minutos de duración media. El acceso al material requiere registro o bien acceso mediante una cuenta de Google, Linkedin o Facebook.
Las temáticas disponibles incluyen temas de iniciación a micro:bit y al lenguaje de bloques, trucos para el profesorado o propuestas para el uso de la tarjeta en proyectos de ciencias, Cada clase está estructurada en secciones y dispone de un pequeño vídeo introductorio.
El acceso a las clases permite descargar guías en formato pdf así como reproducir vídeos explicativos que podremos ver subtitulados si es necesario.
Unidades didácticas
La web de Micro:bit Educational Foundation también dispone de varias unidades didácticas sobre temáticas diversas adaptadas a los currículos británicos y estadounidense y estructuradas en lecciones. Pueden descargarse, sin necesidad de registro, en formato zip.
Cada archivo zip contiene presentaciones en formato .pptx, hojas explicativas, fichas y hojas de lectura en formato .docx y los códigos de los programas micro:bit en formato .hex.
Introducción a la ingeniería Informática
Se trata de un curso para estudiantes de 11 a 14 años disponible en MakeCode. El curso es descargable en múltiples formatos sin necesidad de registro.
El curso está estructurado en 12 unidades que cubren 14 semanas de clase. Cada lección incluye una introducción, actividades desenchufadas, actividades de codificación, proyectos, actividades de ampliación y orientaciones curriculares.
Experimentos científicos
Podemos descargar líbremente una colección de actividades científicas, proporcionadas por Utah Coding Project, desde el sitio de MakeCode. Las actividades aplican el método científico basado en la observación, la medida y el análisis de datos para el estudio de fenómenos físicos, todo ello con el apoyo de micro:bit y acompañado de guías.
Micro:bit classroom
Crear una nueva clase
Micro:bit dispone de un aula virtual de libre acceso y sin registro denominada Micro:bit classroom. La pantalla de inicio es muy sencilla, pues tan sólo tenemos que elegir entre abrir una clase previamente guardada, abrir la última clase realizada, crear una nueva clase o buscar proyectos o lecciones para crear una clase.
Vamos a crear una clase pulsando en New blank session. Inmediatamente aparecerá un cuadro de diálogo de configuración, que nos pedirá en primer lugar establecer el lenguaje, MakeCode o Python, y el título del proyecto, al que vamos a llamar "Termómetro".Seguidamente configuraremos los bloques que deseemos que apararezcan en el editor de cada estudiante cuando acceda a la clase virtual. En nuestro caso vamos a programar un termómetro, por lo que podemos colocar en el área de trabajo, los bloques desordenados para siempre, mostrar cadena y temperatura (ºC). Para ello pulsaremos sobre la etiqueta Edit situada en la parte inferior derecha del cuadro de diálogo, acción que abrirá el editor de MakeCode. Cuando hayamos terminado de colocar los bloques pulsaremos sobre la etiqueta Back to setup, lo cual mostrará los bloques iniciales dentro del cuadro de diálogo.
Invitar al alumnado
Finalmente pulsaremos sobre el botón Start session. Ahora podemos invitar a los estudiantes. Una opción consiste en generar un enlace de acceso, un código de clase y una contraseña. Nótese que esta forma de acceso no requiere introducir ningún dato personal.
También es posible enviar al alumnado un enlace para acceder directamente a la clase. Para ello es necesario pulsar sobre Copy Student Invite Links.
Cuando los estudiantes accedan a la clase usando la URL se les pedirá el nombre de la clase y la contraseña.
Al pulsar sobre el botón Next se le pedirá al alumno que introduzca un nombre identificativo, que puede ser real o inventado.
Cuando el alumndo pulse sobre Join session podrá finalmente acceder al editor para trabajar en el programa:
Desarrollo de la clase
Por su parte, el profesor dispondrá en su panel de control de una lista con todo el alumnado que haya entrado en la clase:
Al pulsar sobre el nombre de un alumno, el profesor podrá ver qué está haciendo ese alumno.
Las funciones adicionales de la ventana de control son:
- Edit code: abre el editor para modificar el código en el que está trabajando el alumno.
- Send code: envía el código modificado a un grupo de alumnos seleccionado.
- Invite: vuelve a generar los códigos de acceso a la clase para que entren más alumnos.
- Save: guarda la sesión de clase en nuestro ordenador. También permite guardar un documento .docx con las capturas de pantalla de los códigos de todo el alumnado.
- End session. Finaliza la sesión de trabajo.
Las sesiones se guardan en el ordenador en formato .html. Para volver a cargarlas sólo hay que pulsar sobre Continue a saved session, en la ventana de inicio de Micro:bit classroom, y seleccionar el archivo .html previamente guardado en nuestro disco. Al restaurar una clase se recuperan tanto los nombres del alumnado como sus trabajos. Tan sólo es necesario que el alumnado vuelva a entrar a la clase con los datos de acceso o con el enlace.
Micro:bit y Scratch
Es posible usar el entorno de Scratch para programar micro:bit. Únicamente se requiere cargar un archivo .hex en la tarjeta así como un extensión en el editor de Scratch. En el siguiente enlace hay instrucciones muy detalladas para los principales sistemas operativos:
https://scratch.mit.edu/microbit
Preguntas frecuentes sobre micro:bit
¿Qué se necesita para trabajar con micro:bit?
¿Por qué aparecen mensajes de error al intentar descargar el código en micro:bit?
¿Dónde se puede encontrar más información sobre micro:bit?
¿Cómo se actualiza el firmware de las placas?
¿Cómo se fabrica una cajita para micro:bit?
¿Se pueden usar pilas recargables?
Micro:bit está pensado para funcionar con dos pilas alcalinas del tipo LR03 (AAA). Sin embargo, puede funcionar sin problemas alimentado por dos pilas recargables de NiMH. Estas pilas, junto con sus cargadores, pueden encontrarse fácilmente en cualquier gran superficie, incluyendo hipermercados e incluso algunos supermercados.
El uso de pilas recargables resulta a la larga más económico, evita el problema ambiental del deshecho de las pilas convencionales y nos permite tener siempre pilas disponibles para realizar las actividades. Además, cuando se dejan olvidadas dentro de un aparato, las pilas alcalinas pueden presentar fugas de su electrolito, que es una sustancia muy corrosiva.
Una ventaja añadida de las pilas recargables es que mantienen siempre una tensión constante de 1,2 V, por lo que los robots se moverán siempre a la misma velocidad. Por el contrario, la tensión de las pilas alcalinas cae desde los 1,5 V cuando son nuevas hasta los 1,1 V cuando están agotadas. Este efecto puede ocasionar que los robots se muevan más despacio a medida que las pilas alcalinas se vayan agotando.
¿Cómo se limpian las placas y los accesorios?
Las placas y los accesorios pasan por muchas manos, por lo que se ensucian y pueden llenarse de gérmenes. Micro:bit recomienda, a falta de cajas desinfectantes de luz ultravioleta, usar una mezcla de alcohol isopropílico y etanol al 70%/30%.
Los alcoholes convencionales, como el etanol (alcohol para heridas) o el metanol (alcohol de quemar) dejan residuo y son agresivos con los materiales. El alcohol isopropílico (alcohol de limpieza, isopropanol, 2-propanol o propan-2-ol) se evapora rápidamente, no deja residuo y no ataca las superficies, por lo que es amplicamente usado para la limpieza de los aparatos electrónicos.Podremos encontrar el alcohol isopropílico en las secciones de productos de limpiezas de las grandes superficies, en droguerías o en tiendas de bricolaje.
Diseño de situaciones de aprendizaje con micro:bit
Situaciones de aprendizaje, ¿qué son?
Concepto de situación de aprendizaje
El desarrollo legislativo, tanto nacional como autonómico, de la Ley Orgánica 3/2020, de 29 de diciembre, (LOMLOE) por la que se modifica la Ley Orgánica 2/2006, de 3 de mayo, de Educación, introduce la situación de aprendizaje como el principal instrumento de aplicación del currículo.
Por ejemplo, la Orden ECD/1172/2022, de 2 de agosto del currículo aragonés de Educación Secundaria Obligatoria, define las situaciones de aprendizaje de la siguiente forma:
Situaciones y actividades que implican el despliegue por parte del alumnado de actuaciones que contribuyen al desarrollo de las competencias clave y las competencias específicas y cuyo diseño involucra el aprendizaje de diferentes saberes básicos asociados a una o varias materias.
De acuerdo con la propia normativa, una situación de aprendizaje presenta las siguientes características:
- Integra los elementos curriculares de una o varias materias: saberes básicos, criterios de evaluación y competencias.
- Tiene unos objetivos claros y precisos.
- Propone tareas complejas que permiten al alumnado aplicar lo aprendido y construir nuevos aprendizajes.
- Fomenta la autonomía personal, el pensamiento crítico y la creatividad.
- Está referidas a un contexto real, cercano y de importancia para el alumnado, con especial atención a los retos del siglo XXI, como la sostenibilidad, la convivencia y el interés común.
- Permite tanto el trabajo individual como en grupo, permitiendo al alumnado asumir responsabilidades personales y actuar cooperativamente.
- Implica la producción y la interacción verbal.
- Su desarrollo implica el uso de recursos en distintos soportes y formatos, tanto analógicos como digitales.
Las características enumeradas son las contenidas en los anexos III de los decretos de enseñanzas mínimas. Estos anexos tienen carácter orientativo y no básico.
En realidad, el concepto de situación de aprendizaje no difiere mucho de la práctica pedagógica actual, derivada de los principios metodológicos que estableció la LOGSE en 1990. Por ejemplo, en Tecnología de Educación Secundaria Obligatoria, el currículo LOGSE consideraba la realización de proyectos tecnológicos en grupo como el eje vertebrador de la materia.
Teniendo en cuenta todo lo expuesto, parece claro que las metodologías activas resultan especialmente adecuadas para desarrollar situaciones de aprendizaje. El aprendizaje basado en proyectos, el aprendizaje basado en problemas, el aprendizaje cooperativo, la gamificación o la clase invertida son algunas de las metodologías aplicables, todas ellas basadas en el principio learning by doing, o aprender haciendo.
Un aspecto interesante de las situaciones de aprendizaje es que deberían estar formuladas de acuerdo con el diseño universal para el aprendizaje, DUA, que establece la necesidad de planificar las acciones educativas partiendo de la diversidad, con el fin de dar la oportunidad de aprender a todo el alumnado. Como consecuencia, una situación de aprendizaje no debería necesitar adaptaciones, sino que debería poder aplicarse independientemente de las características personales del alumnado.
En los siguientes enlaces encontraremos los currículos aragoneses LOMLOE para las distintas etapas educativas. En los currículos de las distintas áreas y materias se ejemplifican variadas situaciones de aprendizaje.
Elementos de una situación de aprendizaje
La formalización en detalle de las situaciones de aprendizaje corresponde al último nivel de concreción curricular o programación de aula. No es necesario por lo tanto que las programaciones didácticas incluyan los desarrollos de la situaciones de aprendizaje. De hecho, la normativa establece que en una programación didáctica sólo es preceptivo indicar los criterios para la elaboración de las situaciones de aprendizaje.
El artículo 59.3 de la Orden ECD/1172/2022, de 2 de agosto, por el que se aprueba el currículo aragonés para la ESO, establece en su punto i, que las programaciones didácticas deben incluir al menos:
i) Estrategias didácticas y metodológicas: organización, recursos, agrupamientos, enfoques de enseñanza, criterios para la elaboración de situaciones de aprendizaje y otros elementos que se consideren necesarios.
Dado que la formalización por escrito de la situación de aprendizaje debe resolver necesidades operativas, su nivel de desarrollo documental dependerá del criterio docente. Se presentan a continuación todos los elementos que contribuyen a describir una situación de aprendizaje.
Coviene no confundir la situación de aprendizaje, es decir, lo que se planifica y se lleva a cabo en el aula, con su registro documental: los papeles. Es perfectamente posible, e incluso habitual, que lo uno exista sin lo otro.
A. Datos identificativos. Se incluyen en este apartado el título de la situación o secuencia, la etapa, el curso o ciclo a que va destinada, la materia, área o ámbito, el periodo temporal de realización y el número de sesiones necesarias. También debe describirse con algo más de detalle en qué consiste la secuencia y qué objetivos persigue, así como la posible conexión con otras áreas, materias o ámbitos.
Arufe (2022) llama la atención sobre la importancia del nombre de la actividad para generar interés en el alumnado y para describir en pocas palabras los contenidos y competencias abordadas en la situación de aprendizaje.
B. Conexiones con el currículo. Aquí deben indicarse los objetivos generales, las competencias claves y, sobre todo, las competencias específicas, los criterios de evaluación y los saberes básicos involucrados en la situación. Es conveniente centrarse en una o en unas pocas competencias específicas y en los criterios de evaluación asociados para poder enfocar correctamente las actividades.
B. Conexiones con la programación didáctica, o relaciones destacables de la situación de aprendizaje con lo dispuesto en los distintos apartados de la programación. Sólo por poner unos ejemplos, puede indicarse la unidad didáctica a la que pertenece la situación, si forma parte del plan de refuerzo o cuál es su contribución al plan lector.
C. Metodología. Puede citarse el tipo de metodología, como por ejemplo, aprendizaje basado en proyectos, o describirse en detalle, sin olvidar explicar el rol docente.
D. Secuencia de actividades. Consiste en una enumeración de las actividades a realizar y el orden y las sesiones en las que se desarrollan.
D. Productos de la actividad. Este concepto incluye elementos muy variados, como diarios de trabajo, creaciones artísticas, exposiciones orales, documentos escritos, produccciones digitales, artefactos o diseños de artefactos, etc. La relación de los productos también puede incluirse dentro de la secuencia de actividades.
D. Recursos. Los recursos de todo tipo necesarios para el desarrollo de la situación de aprendizaje también deberían incluirse dentro de la secuencia de actividades.
E. Evaluación. El centro de la evaluación es el grado de desarrollo de las competencias específicas seleccionadas. Para ello deben aplicarse los criterios de evaluación a los productos de la actividad. Dicha aplicación será posible si se desarrolla en descriptores directamente relacionados con los productos. Un instrumento muy utilizado para aplicar los descriptores es la matriz de evaluación o rúbrica, que no conviene que sea muy compleja, o correremos el riesgo de naufragar en un mar de información o de pasar más tiempo evaluando que realizando las actividades.
Anexos. Es posible que las actividades necesiten alguna documentación suplementaria, como por ejemplo el código de los programas desarrollados en las actividades robóticas o algún tipo de esquema, diagrama o ejemplo.
Referencias. Pueden indicarse aquí las fuentes documentales empleadas.
Planificación de la situación de aprendizaje.
Ejemplos de situaciones de aprendizaje
Los siguientes enlaces del INTEF muestran varias situaciones de aprendizaje para Educación Infantil, Primaria y Secundaria Obligatoria. Hay que tener en cuenta que al ser situaciones compartidas con fines formativos, son documentos muy detallados y elaborados, especialmente en la parte de la definición.
Situación de aprendizaje para Educación Infantil.
Situación de aprendizaje para Educación Primaria.
Situación de aprendizaje para Educación Secundaria Obligatoria.
Mazurca de Albarracín
Descripción de la situación de aprendizaje
Se trata de diseñar una coreografía con Cute Bot a partir de un tema musical. Todos los robots realizarán el mismo baile y serán activados mediante una señal, por ejemplo un ruido fuerte o un mensaje de radio. Para programar los robots sólo serán necesarios los bloques de Make Code para mover las ruedas de Cute Bot y para generar esperas. Será preciso un cierto trabajo de sincronización de los movimentos con la música.
Mazurca de Albarracín. María Esther Arilla Luna. CP de Ejea de los Caballeros.
Una de las actividades de la situación de aprendizaje consistirá en diseñar los disfraces de los robots.
Los Gigantes de Aragón. María Esther Arilla Luna. CP de Ejea de los Caballeros.
Investigando el péndulo físico
Descripción de la situación de aprendizaje
Se propone utilizar el sensor de aceleración integrado en micro:bit para transmitir o registrar los datos del movimiento de un péndulo físico. Se medirán la velocidad máxima del péndulo, el ángulo máximo y el periodo de oscilación a través del tiempo.
El péndulo puede construirse con un listón de madera, de longitud suficiente, con la placa y la caja portapilas unidas al extremo mediante cinta adhesiva de doble cara y tornillos.
La longitud reducida, λ, del péndulo puede ser calculada fácilmente por el profesor a partir de la geometría del listón y suponiendo que la placa y el portapilas sean masas puntuales. De esta forma, la expresión del periodo T de oscilación del péndulo se simplifica:
Para desarrollar el código, hay que tener en cuenta que el acelerómetro indicará una aceleración total igual a la de la gravedad en el punto más alto del recorrido del péndulo. Además, las componentes de la aceleración permitirán calcular el ángulo.
En el punto más bajo, la aceleración será vertical y hará posble calcular a partir de ella la velocidad angular del péndulo.
Conociendo el tiempo transcurrido entre los eventos anteriores será posible obtener el periodo de oscilación.
Con el dispositivo así construido y con listones de varias longitudes puede realizarse una secuencia didáctica de investigación en grupos sobre el péndulo. El alumnado puede investigar y exponer sus conclusiones sobre las siguientes cuestiones:
- ¿Cómo es la gráfica del ángulo recorrido en función del tiempo?
- ¿Por qué reduce el péndulo la amplitud de sus movimientos a medida que pasa el tiempo?
- ¿Cambia el periodo de oscilación a medida que el péndulo se frena?
- ¿Se cumple la expresión matemática del periodo de oscilación?
- ¿Cuál es el error entre la medida dada por micro:bit y el periodo teórico obtenido de la expresión matemática?
- ¿A qué puede deberse dicho error?
- ¿Cómo afecta la longitud reducida del péndulo al periodo?
- ¿Cambia el periodo de oscilación si el péndulo cae desde otras alturas?
- ¿Qué ocurre si añadimos más masa al péndulo?
- ¿Qué aplicaciones prácticas puede tener el péndulo?
Confort y ahorro de energía
Descripción de la situación de aprendizaje
Dentro del área de Ciencias de la Naturaleza y durante el segundo ciclo de Educación Primaria se trataron como saberes básicos la temperatura, su medición y el registro y la representación gráfica de datos.
En esta secuencia, trabajada en grupos, va a utilizarse la placa robótica micro:bit programada mediante lenguaje de bloques para configurar registradores automáticos de temperatura. Con estas placas colocadas en el exterior del colegio, en las aulas y en los pasillos se registrarán las temperaturas cada hora durante una semana completa.
Los datos obtenidos serán tratados mediante cualquier aplicación que permita obtener las gráficas lineales de la temperatura en función del tiempo. Las gráficas generadas serán comparadas entre sí y también con la información obtenida de la red
acerca de los rangos de temperatura de confort en un centro escolar y de las previsiones meteorológicas para la localidad.
Con toda la información obtenida cada grupo tratará de buscar las respuestas y relaciones causales a preguntas como las siguientes:
- ¿Se han cumplido las previsiones meteorológicas para la semana?
- ¿Cuáles han sido las diferencias entre las temperatura exterior e interior?
- ¿Cuáles han sido las temperaturas mínimas y máximas cada día, tanto en el interior como en el exterior?
- ¿Cuándo se han producido las temperaturas mínimas y máximas cada día, tanto en el interior como en el exterior?
- ¿Qué efecto tiene sobre el confort y el consumo de energía la diferencia entre la temperatura exterior e interior?
- ¿En algún momento ha hecho demasiado calor o demasiado frío?
- ¿En algún lugar del colegio ha hecho demasiado calor o demasiado frío?
- ¿Dónde podríamos bajar la potencia de la calefacción para ahorrar energía?
- ¿Cuándo podríamos bajar la potencia de la calefacción para ahorrar energía?
Finalmente, con el empleo de aplicaciones en línea se elaborarán infografías simples que resuman las conclusiones de la investigación realizada. Con el apoyo de las infografías, cada grupo de trabajo presentará ante la clase los resultados de su investigación.
Orientación en el medio natural
Las placas del coro
La digestión con micro:bit
Descripción de la situación de aprendizaje
Sobre un esquema del aparato digestivo humano dibujado a gran tamaño se dibuja una línea gruesa que representa el recorrido de los alimentos. La línea presenta cortes sobre los órganos donde el robot Cute Bot debe pararse. En cada parada, la pantalla Cute Bot realiza giros circulares y ruidos, que reprensentan el proceso digestivo, y muestra el nombre del proceso y del producto del proceso, por ejemplo, "boca" y "bolo alimenticio".
La digestión con micro:bit. Erika Erlés Giménez y María Pilar Roitegui Igual. CRA Los Bañales. Uncastillo.
Presentando nuestro centro
Descripción y justificación de la situación de aprendizaje
Pese a que nuestro centro es el único que existe en la localidad, la necesidad de reinventarse e innovar es obligatorio y más con el cambio de ley. El pensamiento computacional a día de hoy no está muy presente y con este trabajo vamos a matar dos pájaros de un tiro. Uno, vamos a introducir y trabajar a través de la metodología STEM y con dispositivos como la placa Microbit y el Cubebot. Dos, esta formación de nuestro alumnado va a acabar siendo parte importante en la presentación de nuestro centro a las nuevas familias y a todas aquellas, que ya siendo del centro, quieran ver qué son capaces de hacer al llegar a sexto curso.
¿Y cuál va a ser nuestro trabajo? Pues tal y como he citado anteriormente, nuestra placa y nuestro coche van a guiar a las familias a través del centro, tanto por infantil, como por las zonas de recreo y primaria. Voy a adjuntar un plano para que se vea el recorrido y unos números, en los cuales nuestro dispositivo tiene que realizar algún tipo de actividad para las familias (darles la bienvenida, luz adecuada, música de puesta en marcha, temperatura idónea o no en las aulas, iluminación adecuada…)
¿Qué ha motivado elegir este proyecto? Primero que es casi infinito y sumativo. Se puede ampliar y modificar tanto como queramos en función de las necesidades que veamos o del nivel de nuestro alumnado. Segundo que es una forma muy atractiva para las familias. Da imagen de colegio puntero y actualizado a la normativa y a los tiempos que corren. Y por último, formar a nuestro alumnado para hacerlos competentes en el pensamiento computacional.
En el plano se podrá observar el recorrido y qué va a realizar en cada uno de los números marcados.
Carmelo Catalán Mendoza. CEIP Cervamtes. Pedrola.
Binario a decimal
Descripción de la situación de aprendizaje
Dentro de la materia de programación y robótica de 3º de ESO vamos a repasar el Sistema Binario relacionado con el funcionamiento de las computadoras y su equivalencia con el Sistema Decimal.
En esta secuencia se trabaja en grupos de dos personas. Se va a utilizar la placa robótica micro:bit. Se programará mediante el lenguaje de bloques https://makecode.microbit.org/.
Se tomará como base un programa que indique un nº al azar de 5 dígitos en sistema binario representado por la primera fila de leds de la placa micro:bit de tal forma que los que estén encendidos toman el valor de 1 y los apagados de 0, es decir, tendremos números binarios desde el 00000 al 11111. Los leds permanecen encendidos o apagados durante 3 segundos y luego tenemos que introducir su equivalente en sistema decimal mediante los botones de la placa A (para sumar decenas) y B (para sumar unidades). Cuando se termina de introducir el número decimal se agita la placa y si el número decimal es correcto nos aparece el símbolo de la carita sonriente y si no es correcto el símbolo de la carita triste.
A partir de este primer programa deberán modificarlo para generar nuevos retos: crear diferentes niveles de dificultad, añadiendo filas para tener varios números a la vez, cambiando el tiempo de visualización, incorporando nuevos símbolos o textos, diferentes formas de interactuar con la placa, etc.
Para cada reto deberán diseñar un cartel en formatoA4 en el que expliquen su funcionamiento y tendrán que exponer y explicar su trabajo a los compañeros de clase.
Una vez terminados sus programas los enseñaran a otros cursos y pueden organizar un concurso en el recreo en el que el alumnado del centro deba superar todos los retos propuestos.
Álvaro Herrero Sebastián. IES Conde de Aranda.
Micro:bit para conocer la humedad de la tierra en nuestro huerto
Descripción de la situación de aprendizaje
Icono realizado por laterunlabs de www.flaticon.com
En el área de Ciencias de la Naturaleza, se aborda el tema del crecimiento de los seres vivos y en concreto de las plantas. Por ello vamos a plantar un pequeño huerto y para saber con qué frecuencia debemos regarlo hemos distribuido varias placas microbit, conectadas a unos cables cocodrilos y unos clavos en contacto con la tierra.
A través de los clavos y con ayuda de los cables cocodrilos conectados a la placa de microbit recibiremos el valor de la humedad de la tierra y nos avisará si necesita riego nuestro huerto.
Raquel Langa Guarinos. CRA Ínsula Barataria.
Digitalizamos la geometría mudéjar
Referencias
Referencias
ARUFE, Víctor, 2022. ¿Qué son las situaciones de aprendizaje y cómo se diseñan? En ARUFE, Víctor y otros (Coordinadores), Situaciones de Aprendizaje en Educación Primaria. 1ª edición. Edita EDUCA. ISBN: 978-84-125068-2-2
BBC, 2017. BBC micro:bit celebrates huge impact in first year, with 90% of students saying it helped show that anyone can code. En: bbc.co.uk [en línea]. Disponible en: https://www.bbc.co.uk/mediacentre/latestnews/2017/microbit-first-year [consulta: 2 julio 2023].
FROST, Matthew, 2018. Power Consumption Analysis of the BBC micro:bit. En : microbit.org [en línea]. Disponible en: https://support.microbit.org/helpdesk/attachments/19020173029 [consulta: 8 julio 2023].
MARTÍNEZ DE CARVAJAL, Ernesto, 2019. Robótica Educativa con micro:bit y Javascript. Edita el autor. ISBN 978-8409122851.
MICRO:BIT EDUCATIONAL FOUNDATION, 2023a. Our impact. En: microbit.org [en línea]. Disponible en: https://microbit.org/about/#our-impact [consulta: 30 junio 2023].
MICRO:BIT EDUCATIONAL FOUNDATION, 2023b. Technical Information. En: microbit.org [en línea]. Disponible en: https://microbit.org/compliance [consulta: 30 junio 2023].
MICRO:BIT EDUCATIONAL FOUNDATION, 2023c. Teory of Change. En: microbit.org [en línea]. Disponible en: https://microbit.org/about/#top [consulta: 1 julio 2023].
MICROES.ORG, 2023a. ¿Qué es micro:bit?. En: microes.org [en línea]. Disponible en: http://microes.org/que-es-microbit.php [consulta: 30 junio 2023].
MORALES CAUDEL, Rafael, 2023. PSeInt: programando en pseudocódigo. Observatorio de tecnología educativa. [en línea]. Madrid: INTEF, no.103. p. 1. ISSN 2695-4176. Disponible en: https://intef.es/wp-content/uploads/2023/05/118_22_RED_OTE_Pseint.pdf [Consulta: 30 junio de 2023]
MUÑOZ, José Francisco, 2022. Manual de programación micro:bit & Cutebot. 5ª edición. Microes.org.
MUÑOZ, José Francisco, 2023. Manual de programación Cutebot. 2ª edición. Microes.org.
SERRANO, José Luis, 2022. Pensamiento computacional en educación. Brétigny-sur-Orge: Amazon France. ISBN 978-84-09-45043-5.
Créditos
Curso creado en diciembre de 2023 por Mario Monteagudo Alda con licencia CC-BY-NC-SA 4.0.