CMB 1. Introducción. Hola micro:bit

1.1 Introducción

Una buena definición de la tarjeta micro:bit, es la que se indica en la web de la Fundación Micro:bit Educational Foundation

«BBC micro:bit es un micro-computador programable que cabe en tu mano y que puede usarse para todo tipo de fantásticas invenciones: desde robots a instrumentos musicales.»

Efectivamente, BBC micro:bit es una placa basada en un microcontrolador ARM, de un tamaño muy reducido, programable que fue diseñada por la BBC (British Broadcasting Corporation) con el objetivo de facilitar el aprendizaje de la programación y la realización de proyectos de Robótica Educativa.

Para su programación se pueden emplear diversos lenguajes y entornos integrados, pero principalmente se suele utilizar Microsoft MakeCode, JavaScript, Python e incluso Scratch añadiendo una extensión. Lo veremos con más detalle, posteriormente en un punto de este mismo capítulo del curso.

1.2 Hardware

El hardware de BBC micro:bit está concebido con licencia Open Source, al igual que la mayoría del software utilizado para su programación.

Las características principales de la placa BBC micro:bit son las siguientes

  • Procesador, ARM Cortex-M0 de 32 bits
  • Memoria Flash, 256 Kb
  • Memoria RAM, 16 Kb
  • Comunicación Radio y Bluetooth de baja energía (BLE)
  • Matriz de 25 Leds, monocromos rojos.
  • Sensor de Luz
  • Sensor de Temperatura
  • Acelerómetro
  • Giroscopio
  • Brújula
  • Conector micro USB, tipo B
  • Conector para batería
  • Conectores 25 pines, para poder conectar sensores, actuadores y componentes auxiliares
  • Dimensiones 52 x 43 x 11 mm
  • Peso 9 gramos

De forma similar a la placa Arduino, BBC micro:bit solo puede almacenar un único programa en su memoria, el cual inicia su ejecución cuando la placa está alimentada o se presiona el botón reset.

La siguiente imagen describe el esquema de la placa micro:bit, tanto en su vista frontal como posterior, a nivel hardware

Figura CMB1.1 Esquema Hardware BBC micro:bit (fuente microbit.org)

Vamos a ver con un poco más de detalle alguno de estos componentes de la placa

1.2.1 Procesador

El procesador es el cerebro de la placa BBC micro:bit que, realmente en su caso, es un micro-controlador.

Es el lugar donde se almacena y ejecuta el programa que estamos usando en micro:bit.

Pero, ¿Cual es la diferencia entre un Procesador y un Micro-controlador?

Cuando hablamos de un ordenador y esto no ha cambiado en muchos años pues se basa en el modelo de von Neumann definido en 1945 por el matemático y físico John von Neumann , estamos hablando esquemáticamente, tal y como se muestra en la figura siguiente de un Procesador, una Memoria RAM, una Memoria ROM y una Interfaz de entrada/salida que nos permite inter-actuar con el exterior (monitor, teclado, ratón, mandos de juegos, etc) y estos cuatro componentes básicos se conectan entre sí mediante un Bus de Datos.

Figura CMB1.2 Esquema Básico de un Ordenador

Sin embargo y simplificando, podemos decir que un microcontrolador es un circuito impreso o chip donde están integrados todos estos componentes del ordenador. Es decir, sería un ordenador en miniatura e integrado en un único chip.

Estos sistemas también son conocidos como SoC (System on Chip).

Figura CMB1.3 Microcontrolador BBC micro:bit

Esto, como es obvio tiene algunas ventajas y desventajas frente a un «clásico» ordenador:

  • Ventajas Microcontrolador versus Ordenador
    • Reducido tamaño
    • Reducido consumo energético
    • Reducido coste
  • Desventajas Microcontrolador versus Ordenador
    • Reducida potencia de cómputo
    • Reducida potencia de cálculo
    • Reducida potencia de manipulación de operaciones artiméticas
    • Reducido tamaño y cantidad de datos manipulados

En el caso de micro:bit la arquitectura del procesador es la conocida como ARM que ha sido diseñada para ofrecer un alto rendimiento con el menor consumo de energía posible.

Concretamente BBC micro:bit utiliza el procesador Nordic nRF51822, que contiene un ARM de simple nucleo Cortex-M0 con una velocidad de 16 Mhz, 16 KB de RAM (Random Access Memory – Memoria de Acceso Aleatorio) y 256 KB de Memoria No Volátil (NVM, también conocida como FLASH) para almacenar los programas.

1.2.2 Pines de Conexión

En la tarjeta micro:bit podemos encontrar 25 pines en la parte inferior que se distinguen por ser de color dorado.

De ellos 5 son más anchos que los 20 restantes que son estrechos. Estos pines anchos son los etiquetados como 0, 1, 2, 3V y GND.

En la siguiente imagen podemos ver un esquema de los pines de la placa con la función asociada (puedes pinchar sobre la imagen para agrandarla).

Figura CMB1.4 Pines Placa BBC micro:bit

1.2.2.1 Pines Anchos

Estos pines permiten la conexión de componentes mediante cables que tengan las llamadas pinzas de cocodrilo.

En la siguiente imagen se pueden observar este tipo de cables conectados a los pines anchos.

Figura CMB1.5 Placa micro:bit con cables tipo pinza de cocodrilo

Estos pines se utilizan para

1, 2, 3 Señales de entrada o salida, analógicas o digitales
GNDConexión para Tierra. Nunca conectar directamente con pin 3V para no dañar la placa
3VAlimentación 3 voltios. Nunca conectar directamente con pin GND para no dañar la placa

1.2.2.2 Pines Estrechos

Estos pines estrechos permiten conectar componentes, pero es aconsejable utilizar algún tipo de base de conexión para facilitar esta tarea.

Podemos ver algunas de estas soluciones en proyectos realizados con micro:bit de la Sección de Proyectos de esta Web. También se pueden adquirir en la Tienda LabRob.

Como hemos comentado, se trata de 20 pines numerados del 3 al 22 (el 0, 1 y 2 corresponden a los pines anchos).

Vamos a ver la función de estos pines

3Vinculado a Columna 1 de Matriz de Leds. Si Matriz de Leds está apagada, funciona como pin Entrada / Salida, Analógica / Digital
4Vinculado a Columna 2 de Matriz de Leds. Si Matriz de Leds está apagada, funciona como pin Entrada / Salida, Analógica / Digital
5Vinculado a Botón A. Si el Botón está pulsado la señal es de 3 voltios y 0 cuando no lo está
6Vinculado a Columna 9 de Matriz de Leds. Si Matriz de Leds está apagada, funciona como pin Entrada / Salida, Analógica / Digital
7Vinculado a Columna 8 de Matriz de Leds. Si Matriz de Leds está apagada, funciona como pin Entrada / Salida, Analógica / Digital
8Entrada / Salida, Digital
9 Vinculado a Columna 7 de Matriz de Leds. Si Matriz de Leds está apagada, funciona como pin Entrada / Salida, Analógica / Digital
10 Vinculado a Columna 3 de Matriz de Leds. Si Matriz de Leds está apagada, funciona como pin Entrada / Salida, Analógica / Digital
11 Vinculado a Botón B. Si el Botón está pulsado la señal es de 3 voltios y 0 cuando no lo está
12 Entrada / Salida, Digital
13Interface Serie de 3 Cables. Señal de Reloj
14 Interface Serie de 3 Cables. Señal de Emisión / Recepción
15 Interface Serie de 3 Cables. Señal de Recepción / Emisión
16GPIO
17, 18 Alimentación 3 voltios (similar a pin ancho que se sitúa entre ambos)
19, 20Reloj protocolo I2C
21, 22 Conexión para Tierra (similar a pin ancho que se sitúa entre ambos)

1.2.3 Matriz Leds

La placa BBC micro:bit tiene integrados 25 leds monocromos de color rojo distribuidos en una matriz de 5 columnas x 5 filas.

Si queremos acceder directamente a cada led debemos de conocer su distribución interna, que es muy diferente a la que vemos, externamente de forma visual, de 5 x 5.

Internamente los leds se distribuyen en una matriz de 3 filas x 9 columnas. Esto nos da un total de 27 leds, pero 2 de estas posiciones no se utilizan con lo cual tenemos acceso a los 25 leds de la matriz que vemos en la placa.

Pero entonces, ¿Cómo se accede a cada led de la matriz de 5 x 5?

Primero, para acceder a cada led debemos tener presente la siguiente tabla de equivalencias que relaciona fila y columna con un pin de la placa.

Columna LedsPin Placa
Columna 1P4
Columna 2P5
Columna 3 P6
Columna 4P7
Columna 5 P8
Columna 6P9
Columna 7P10
Columna 8P11
Columna 9P12
Fila LedPin Placa
Fila 1P13
Fila 2P14
Fila 3P15

En Segundo lugar debemos conocer también la codificación interna de cada led según la siguiente matriz

Figura CMB1.6 Matriz codificación interna leds placa micro:bit

En tercer lugar, debemos tener presente la imagen anterior de la Figura CMB1.4 para identificar el pin correspondiente sobre el que debemos actuar.

Con estas tres consideraciones, para encender un led concreto definido por la posición fila,columna de la tabla anterior CMB1.5 debemos

  • Poner en High la fila
  • Poner en Low la columna

Con un ejemplo quedará más claro la forma de proceder.

Si queremos encender el led central de la matriz visual de 5 x 5, que en la tabla anterior CMB1.5 está marcado como 2.3 tendremos que

– Poner en High la fila 2, es decir, el pin P14 (según tabla de equivalencias anterior)

– Poner en Low la columna 3, es decir, el pin P6 ( según tabla de equivalencias anterior)

De todos modos, normalmente los entornos de programación utilizados nos facilitan esta tarea y nos permiten definir directa y fácilmente la gestión de la matriz de leds de la placa micro:bit.

1.2.4 Sensor de Luz

Los leds que integra la placa micro:bit actúan al mismo tiempo como leds monocromos rojos y como sensor de luz.

No son tan exactos como un sensor de luz específico, pero nos permiten un amplio rango de valores que posibilitan saber que cantidad de luz hay en el ambiente.

Los valores que lee el sensor de luz van entre 0 para la oscuridad total y 1.023 para la máxima luz del sol.

Algunos valores aproximados que podemos manejar serían los siguientes

0Oscuridad total
40Luz de Luna Llena
100Luz de una bombilla
400Luz día nublado
1023Luz día soleado

1.2.5 Botones A y B

La placa micro:bit en su cara frontal dispone de dos botones: Un Botón A en el lado izquierdo y otro etiquetado como Botón B en el lado derecho de la placa.

Estos botones son realmente pulsadores, es decir, cuando están pulsados transmiten un estado «pulsado» (valor 1) y cuando no lo están un estado «no pulsado» (valor 0). Este valor es momentáneo y puntual en el tiempo y solo mientras está pulsado.

Resultan muy útiles para la realización de muchos Proyectos de Robótica.

Si se necesitan más pulsadores entonces deberíamos utilizar una placa de prototipado o componente similar y los pulsadores necesarios (son los mismos que se utilizan en los Proyectos de Arduino).

1.2.6 Comunicación Radio y Bluetooth

Una de las grandes ventajas de las tarjeta BBC micro:bit es la integración directamente en su placa de la comunicación via Radio y Bluetooth.

La comunicación Radio tiene dos funciones principales

  • Comunicarse con otras tarjetas micro:bit de forma inalámbrica, lo cual permite proyectos de robótica colaborativa en los que podemos interacturar entre varios robots micro:bit
  • Comunicarse con otros dispositivos utilizando Bluetooth de Baja Energía (BLE, Bluetooth Low Energy) que está disponible en los actuales Smartphones y Tablets.

No hay una antena exterior como las utilizadas en las radios tradicionales para escuchar música, en este caso se trata de una pequeña pista de cobre integrada en la placa en la parte trasera en la esquina superior izquierda.

1.3 Software de Programación

Como hemos citado con anterioridad en este capitulo podemos usar diferente software para programar micro:bit.

A continuación vamos a ver un breve resumen de los lenguajes y entornos de programación más utilizados y que actualmente son los siguientes

  • Microsoft MakeCode
  • JavaScript
  • Python

También se puede utilizar Scratch si instalamos la extensión correspondiente.

Una vez realizado nuestro programa con uno de estos lenguajes o entornos de programación, simplemente debemos

  • Descargar el programa a nuestro ordenador (será un fichero con extensión .hex)
  • Conectar nuestra tarjeta micro:bit mediante el cable USB a nuestro ordenador
  • Copiar el fichero .hex a la placa como si fuera un dispositivo de almacenamiento USB habitual

Y de esta forma tan sencilla se iniciará la ejecución del programa realizado en nuestra tarjeta micro:bit.

1.3.1 Microsoft MakeCode

Microsoft MakeCode, es un entorno de programación gráfico.

Puede utilizarse directamente vía web o mediante la correspondiente aplicación de escritorio en entorno Windows.

Microsoft MakeCode también es conocido como Bloques JavaScript.

La programación con MakeCode es muy similar a la de Scratch, ya que utiliza bloques que encajan unos con otros con formato de puzle y que permite la construcción de programas.

En la siguiente imagen podemos ver un sencillo programa que muestra «Hola Mundo» en la matriz de leds de micro:bit, espera un segundo, muestra «LabRob«, espera otro segundo y vuelve a mostrar «Hola Mundo«, … y así indefinidamente en bucle.

Figura CMB1.6 Microsoft MakeCode Ejemplo Hola Mundo

Podremos descargar el programa realizado a nuestro ordenador (fichero .hex) con el botón correspondiente que está situado en la esquina inferior izquierda del entorno MakeCode y copiarlo a nuestra placa micro:bit conectada al ordenador mediante el USB para ver su ejecución en la tarjeta.

Este agradable entorno de programación, Microsoft MakeCode, esta orientado a niños, jóvenes y cualquier persona sin conocimientos de previos de programación que quiera aprender a programar e iniciarse en el mundo de la robótica y la computación física.

1.3.2 JavaScript

También se puede utilizar para programar la tarjeta BBC micro:bit el lenguaje JavaScript, desde el mismo entorno Microsoft MakeCode simplemente seleccionando la opción que se haya situada en la parte superior central de la pantalla.

En la siguiente imagen podemos ver el programa anterior «Hola Mundo» en JavaScript.

Figura CMB1.7 Microsoft MakeCode Ejemplo Hola Mundo en JavaScript

Realmente MakeCode traduce en tiempo real nuestro programa entre la forma gráfica de Bloques y JavaScript y viceversa.

Es decir, podemos programar en ambos lenguajes desde el mismo entorno Microsoft MakeCode simplemente conmutando con el botón correspondiente.

La programación mediante JavaScript nos permite un nivel más avanzado en la programación y podemos ir evolucionando en nuestro aprendizaje, ya que podremos crear subrutinas y funciones e ir acercándonos de esta forma hacia la programación de lenguajes más tradicionales y habituales.

1.3.3 Python

Python es un lenguaje de programación moderno, versátil y muy completo, creado por Guido van Rossum en 1991.

Actualmente Python es uno de los lenguajes más utilizados y populares, sobre todo en el mundo de educación, científico y desarrollos profesionales.

Además, una de las mayores ventajas de aprender y utilizar Python para la programación de micro:bit es que, actualmente es quizás, el lenguaje de programación mas empleado y popular en los proyectos educativos de programación.

Por ejemplo, la Fundación Raspberry Pi utiliza Python como lenguaje base en su ordenador de placa única Raspberry Pi.

La programación de BBC micro:bit, de forma similar a Microsoft MakeCode, puede utilizarse directamente vía web o mediante la correspondiente aplicación de escritorio, que en este caso es el Editor Mu.

En la imagen siguiente podemos ver el anterior ejemplo que hemos programado en Microsoft MakeCode y JavaScript, en esta ocasión en Python (como ya dijimos anteriormente, el programa muestra «Hola Mundo» en la matriz de leds de micro:bit, espera un segundo, muestra «LabRob«, espera otro segundo y vuelve a mostrar «Hola Mundo«, … y así indefinidamente en bucle).

Figura CMB1.8 Ejemplo Hola Mundo en Python

Resumiendo podemos concluir que Python es una muy buena alternativa como lenguaje de programación para continuar aprendiendo y adquirir habilidades más avanzadas en la programación.

1.3.4 Comparativa de los Lenguajes de Programación

En la tabla siguiente, a modo resumen, vamos a realizar una comparativa de las principales características entre los tres lenguajes de programación vistos anteriormente que se utilizan con la tarjeta BBC micro:bit.

Característica MakeCode JavaScript Python
Aplicación Web
Aplicación Escritorio
Gratuito
Material de Aprendizaje Disponible
Entorno Programación Visual
Lista Instrucciones IntegradasParcial
Simulador micro:bitNo
Funciones y SubrutinasParcial
Gestión de Eventos IntegradosNo
Compilador Integrado
Shell InteractivoNoNo

1.4 ¿Por qué BBC micro:bit?

La diferencia principal entre micro:bit y el resto de placas similares más populares que actualmente están enfocadas a proyectos de Robótica Educativa, es que micro:bit integra directamente en su placa

  • 25 LED programables individualmente
  • 2 botones programables
  • Pines de conexión física
  • Sensores de luz y temperatura
  • Sensores de movimiento: acelerómetro y brújula
  • Comunicación inalámbrica: vía Radio y Bluetooth

Esta ventaja se convierte en su punto fuerte frente al resto, sobre todo porque gracias a esta configuración se pueden realizar cientos de proyectos sin la necesidad de añadir ningún otro tipo de componente adicional.

En la siguiente Tabla se muestran las principales características de las tres placas más populares actualmente (Noviembre 2019), para la realización de Proyectos de Robótica Educativa.

BBC micro:bit Arduino UNO REV3 Raspberry Pi 4 Modelo B
Descripción GeneralPlaca micro-controladora diseñada principalmente con fines educativosPlaca micro-controladora diseñada principalmente con fines educativos, recreativos y aplicaciones de controlMiniordenador basado en una placa única, de bajo coste con Sistema Operativo GNU/Linux: Raspbian y otros.
CPU / MicroncontroladorARM Cortex-M0 de 32 bitsAtmel ATmega328P  ARM Cortex-A72 1.5GHz 64 bits quad-core
Memoria256 KB Flash para programas y 16 KB RAM para datos 32 KB Flash para programas y 2 KB RAM para datos 1, 2 o 4 GB RAM, Tarjeta microSD (depende del tamaño 8, 16, 32, 64, 128 GB, …)
Componentes IntegradosMatriz 25 Leds, 2 botones, sensor luz, sensor temperatura, acelerómetro, brújula, comunicación via radio y BluetoothNingunoPuerto RJ-45 10/100/1000Mbps vía hub USB 3.0, Wi-Fi 802.11ac de doble banda, Bluetooth 5.0 BLE, Conector RCA (PAL y NTSC), 2 puertos microHDMI rev. 2.0, Interfaz DSI para panel LCD, Jack de 3.5 mm
Entradas / Salidas19 de propósito general, pines 3.3v, algunos compartidos con otras funciones, incluyendo 6 entradas analógicas 20 de propósito general, pines 5v, algunos compartidos con otras funciones, incluyendo 6 entradas analógicas 26 de propósito general, pines 3.3v, algunos compartidos con otras funciones, no disponible entradas analógicas
Precio (Noviembre 2019)20 €22 €65 €

1.5 Un poco de Historia sobre BBC micro:bit

El proyecto micro:bit está ligado a la empresa BBC que fue donde se originó.

Las siglas BBC se corresponden con la empresa inglesa de comunicaciones British Broadcasting Corporation, es decir, Corporación de Radiodifusión Británica que es una empresa de servicio público de radio y televisión del Reino Unido.

A los que ya pintamos canas esta empresa nos sonará de los años 80 del siglo pasado, pues hay que recordar que en 1981 junto a la empresa Acorn creó el conocido ordenador de 8 bits Acorn BBC Micro, en los inicios de la informática doméstica, época que fue el origen del actual panorama tecnológico. Ver imagen a continuación.

Figura CMB1.9 Ordenador Acorn BBC Micro. Año 1981

En esa década otras muchas empresas se sumaron a la iniciativa y pusieron en el mercado de forma más o menos accesible, ordenadores para uso doméstico y familiar, haciendo viable la informática en los hogares del gran público y no solo en las Universidades y Organismos Gubernamentales, como era lo habitual hasta esa fecha.

Como vemos, el empresa BBC ya en aquellos años se propuso fomentar el interés por la informática de los estudiantes, como décadas después ha vuelto a hacer con la tarjeta BBC micro:bit.

Retomando la historia del proyecto micro:bit, éste se inició en el año 2012, formando parte del Programa BBC computer Literacy, es decir, Programa de Alfabetización Informática, cuyo objetivo era desarrollar una tarjeta programable orientada a la formación de jóvenes alumnos.

En Julio de 2015 se unieron al proyecto diferentes empresas. Exactamente fueron 29 socios que participaron en el diseño, fabricación y distribución de las tarjetas, entre los cuales estaban grandes compañías como Microsoft, Cisco, Farnell, …

La mayor parte de los gastos del proyecto fueron asumidos por los socios y su intención fue la de utilizar una licencia de código abierto para que estas tarjetas pudieran ser utilizadas con fines educativos. Con este fin se creó una compañía sin ánimo de lucro llamada Microbit Education Foundation.

Este proyecto ha sido el más ambicioso en la historia de la educación en Inglaterra de los últimos 30 años.

BBC micro:bit se diseñó inicialmente para ser distribuida de forma gratuita entre todos los alumnos de 11 y 12 años de Inglaterra en 2015 y en Octubre de ese mismo año ya se habían distribuido sin coste alguno casi un millón de placas.

Como continuación del éxito obtenido con la tarjeta micro:bit en Reino Unido, en 2016 de creó la organización sin ánimo de lucro «Micro Bit Educational Foundation» para dar continuidad al proyecto y fomentar la programación entre los más jóvenes.

En esta nueva etapa, también obtuvieron el apoyo de grandes compañías como Microsoft, ARM, Samsung, Bluetooth, Cisco, …

El éxito ha sido tal que la tarjeta BBC micro:bit ya está presente en casi todo el Mundo.

Liderando la Fundación está Zach Shelby (ver imagen siguiente) quien tiene el firme propósito de hacer llegar la tarjeta micro:bit, al menos, a 100 millones de personas.

Figura CMB1.10 Zach Shelby, Founder and CEO of the Micro:bit Foundation

Se han realizado diversos estudios a profesores y alumnos después de haber implantado la tarjeta micro:bit, orientados a analizar su repercusión en las aulas y recopilar información sobre cómo los profesores y alumnos perciben la tarjeta micro:bit y qué puede aprenderse a través de su uso.

Las conclusiones de los mismos han sido muy positivas, y todos ellos son coincidentes en los dos puntos siguientes

  • Los alumnos coinciden en señalar que micro:bit es una forma de motivación en el aula
  • Los profesores indican que los alumnos están más motivados y que es una forma muy amigable de introducir a los mismos en la programación de dispositivos y la robótica.

Actualmente, finalizando ya 2019, podemos afirmar que la tarjeta BBC micro:bit continua su imparable expansión en la comunidad educativa y es una de las mejores alternativas para enseñar robótica educativa a jóvenes a partir de los 11 años.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies