En este artículo hacemos una introducción a la placa del microcontroladora Micro:bit para aplicaciones educativas, analizando sus características y aplicaciones.
Las principales características de microcontrolador son:
- Bluetooth de baja energia.
- Modulo de radio de 2.4 GHz.
- Memória Flash de programa de 256 KBytes.
- Memória RAM de 16 KBytes.
- Tensión de operación de 1.8 a 3.6 voltios.
- Muy bajo consumo (ultra-low power).
- Conversores analógicos a digital (ADC) de 10 bits.
- 31 pinos de entrada y salida (GPIO).
- 1 timer de 32 bits.
- 2 timer de 16 bits.
- Interface serial de periféricos (SPI).
- Interface de comunicación serial I2C.
- Sensor de temperatura.
- Puerto serial (UART).
- Reloj de tiempo real (RTC).
- Comparadores de tensión.
- Decodificador de Cuadratura (QDEC).
El modulo de Radio tiene un receptor de radio de 2.4 GHz y un transmisor de radio de 2.4GHz.
Brújula incorporada para saber en que dirección te diriges.
Transmisor y receptor de radio y Bluetooth para permitirle interactuar con dispositivos móviles de forma inalámbrica
Una gama de pines de entrada y salida para permitirle conectar el micro:bit a otros dispositivos a través de su conector perimetral
Acelerómetro para detectar el movimiento y saber cuándo estás en movimiento
Dos botones programables que se pueden utilizar para controlar juegos o pausar y omitir canciones en una lista de reproducción de música
25 luces LED rojas que pueden parpadear mensajes y ser utilizados para crear juegos.
Microbit es una placa diseñada para estudiantes y personas que deseen iniciarse en la programación.
MAKECODE.
MakeCode es el ambiente de desarrollo (IDE) para programar la placa Microbit. Esta IDE es creada por Microsoft. En la Figura 1 podemos observar esta IDE:
La IDE tiene 3 partes principales, las cuales se pueden observar en la Figura 1.
- Una ventana para programar, la cual se puede hacer de forma gráfica o por código.
- Una ventana para el simulador, la cual muestra una placa Microbit en la que se puede ejecutar el código.
- Una ventana de funciones, donde se encuentran todos los bloques de funciones, las cuales incluyen: sensores, entradas, salidas, lógica, etc.
INTRUCCIONES DE LA PLACA MICROBIT.
Las instrucciones que la placa microbit puede ejecutar son: Básicas, Entrada, Música, Led, Radio, Loops, Lógica, Variables o Memoria, matemáticas, y también ejecuta instrucciones avanzadas como: Funciones, Arrays, Texto, Juegos, imágenes, Pines, Serial y Control. Estas se pueden encontrar y seleccionar en la ventana destinada para los bloques. La seguiente figura muestra las instrucciones:
![](/images/sampledata/artigo2022/mic0053s_0002.png)
![](/images/sampledata/artigo2022/mic0053s_0003.png)
INSTRUCCIONES BASICAS.
Un bloque programa llamado On Start, es un evento o código que se ejecuta cuando el programa inicia. Normalmente, es usado para inicializar el programa, como, por ejemplo: configurar periféricos, inicializar variables, etc. El siguiente bloque representa el evento On Start:
![](/images/sampledata/artigo2022/mic0053s_0004.png)
En el siguiente ejemplo, se inicializa la variable intensidad con un valor de 78.
![](/images/sampledata/artigo2022/mic0053s_0005.png)
Otro bloque necesario para programación es el forever, el cual ejecuta parte de un programa constantemente durante el tiempo que la placa Microbit este alimentada.
![](/images/sampledata/artigo2022/mic0053s_0006.png)
Los anteriores bloques son similares a las muy utilizadas funciones de lenguaje C, como por ejemplo Arduino:
void init()
void loop()
INSTRUCCIONES DE ENTRADA.
Las Instrucciones de Periféricos son usadas para controlar las entradas y salidas de la placa.
ESCRIBIR EN SALIDAS DIGITALES.
Para escribir o colocar un pino de salida digital a nivel alto (1 lógico), podemos usar el siguiente bloque de programación:
![](/images/sampledata/artigo2022/mic0053s_0007.png)
Este bloque de programación permite escribir en cualquier pin y seleccionar un nivel lógico bajo (0) o alto (1). La siguiente imagen muestra los pines de salida digital que tiene la placa Microbit:
![](/images/sampledata/artigo2022/mic0053s_0008.png)
Si se quiere colocar por ejemplo el pin 7 a nivel lógico bajo (0 lógico) puede usar el bloque de código con la siguiente configuración:
![](/images/sampledata/artigo2022/mic0053s_0009.png)
Para generar un temporizador o retardo de tiempo se puede usar el bloque de programación:
![](/images/sampledata/artigo2022/mic0053s_0010.png)
El programa completo para este ejemplo seria así:
![](/images/sampledata/artigo2022/mic0053s_0011.png)
Notemos que programar en bloques de código es muy fácil y practico.
INSTRUCCIONES DE MEMORIA.
Las Instrucciones de Memoria hacen referencia a los movimientos de datos en la Memoria RAM.
INSTRUCCIONES DE LOOPS.
Las Instrucciones de Loops son usados para repetir un bloque del programa por una determina condición o por el numero de veces programado. Estas
Si queremos repetir algún código un determinado numero de veces podemos usar el siguiente bloque de código:
![](/images/sampledata/artigo2022/mic0053s_0012.png)
El anterior bloque se repetiría 4 veces y después el microcontrolador sale de ese loop.
El siguiente bloque de código muestra como repetir un código mientras se cumpla una condición:
![](/images/sampledata/artigo2022/mic0053s_0013.png)
Por ejemplo, el siguiente bloque de código muestra como verificar una condición donde la humedad es menor a 70.
![](/images/sampledata/artigo2022/mic0053s_0014.png)
Si queremos usar un loop que se repita usando una varible index, entonces podemos usar un bloque como el siguiente:
![](/images/sampledata/artigo2022/mic0053s_0015.png)
Significando que la variable index se autoincrementa cada vez que el código se ejecuta.
INSTRUCCIONES ARITMETICAS.
Las Instrucciones Aritméticas y Lógicas son las usadas para operaciones matemáticas. Estos bloques de código pueden ser encontrados en el menú:
Alli encontraremos bloques de código para las instrucciones aritméticas como: multiplicación, división, suma, resta.
![](/images/sampledata/artigo2022/mic0053s_0016.png)
El siguiente bloque de código hace una suma entre la intensidad y la luz.
![](/images/sampledata/artigo2022/mic0053s_0017.png)
el resultado de esta operación matemática puede ser almacenado en otra variable para los cual podemos usar el bloque de programación change. En la siguiente instrucción, se le dice a la placa microbit que haga una suma de la intensidad y la luz y almacene el resultado en la variable luxómetro.
![](/images/sampledata/artigo2022/mic0053s_0018.png)
Por ejemplo, el siguiente bloque multiplica la intensidad por la resistencia y almacena el resultado en la variable voltage:
![](/images/sampledata/artigo2022/mic0053s_0019.png)
INSTRUCCIONES LOGICAS.
Las Instrucciones Lógicas son las usadas para: comparaciones, condiciones y booleanas. Se encuentran agrupadas en el siguiente menú:
Una de las instrucciones de control mas usadas es la if, la cual puede ser usada para verificar si algo es verdadero o falso y en el caso que se cumpla la condición ejecutar un determinado código. El bloque de código que representa la instrucción if, para verificar si algo es verdadero, es el siguiente:
![](/images/sampledata/artigo2022/mic0053s_0020.png)
El bloque de código que representa la instrucción if, para verificar si algo es falso, es el siguiente:
![](/images/sampledata/artigo2022/mic0053s_0021.png)
Existe una instrucción que permite combinar las dos opciones anteriores, en un solo bloque de código, llamada if else. Es decir, si es verdadero haga una determina acción y si es falso, otra acción. El bloque de código usado para la instrucción if else, es el siguiente:
![](/images/sampledata/artigo2022/mic0053s_0022.png)
Es posible comparar una variable y un valor constante, para generar un condición verdadera o falsa. Eso podemos hacerlo con los bloques de código para comparación.
![](/images/sampledata/artigo2022/mic0053s_0023.png)
En el siguiente ejemplo se verifica si la humedad es mayor a 27, caso verdadero se ejecutará el código del bloque if. Caso falso, entonces se ejecuta el código dentro de la sentencia else.
![](/images/sampledata/artigo2022/mic0053s_0024.png)
También podemos verificar condiciones verdaderas y falsas entre 2 posiciones de memoria o variables. El siguiente bloque de código muestra un ejemplo:
![](/images/sampledata/artigo2022/mic0053s_0025.png)
El anterior bloque de código se ejecuta si la humedad es menor o igual que la variable luz, caso contrario se ejecuta el código dentro del bloque else.
También podemos usar operadores lógicos como el AND y OR. El siguiente bloque de código hace una operación lógica AND entre la intensidad y la tensión.
![](/images/sampledata/artigo2022/mic0053s_0026.png)