Micro:bit una placa para pequeños y mayores

Empezamos nueva serie de post y en esta ocasión hablaremos de Micro:bit. Esta placa fue desarrollada bajo el ámparo de la BBC con el objetivo de ser regalada a los niños británicos cómo punto de partida para su aprendizaje tecnológico y desde que salió han sido muchos los no-tan-niños que han buscado hacerse con una de ellas, y no es para menos. En tan solo 4 x 5cm podemos encontrar:

  • 25 LED programables individualmente
  • 2 botones programables
  • Pernos de conexión física
  • Sensores de luz
  • Sensor de temperatura
  • acelerómetro
  • Brújula
  • Comunicación inalámbrica: vía Radio y Bluetooth
  • Interfaz de USB
  • 25 Pines de entrada o salidaMicro:bit robot

Un hardware más que decente y que nos permitirá realizar muchos proyectos mientras aprendemos. Se puede programar mediante bloques o usando Python, lo cual hace que el recorrido que nos da para seguir aprendiendo crezca exponencialmente.

Sólo con el Hardware que integra la propia placa tenemos para horas y horas de diversión y un sin fin de proyectos que podemos realizar, pero además existen placas de expansión, kits para montar robots e incluso accesorios para que puedas realizar aun más cosas con esta placa.

En esta web puedes encontrar muchísimos ejemplos para empezar, además de una explicación pormenorizada de la placa.

Con todo este potencial no hemos podido resistirnos y quisimos compartir tres proyectitos sencillos que puedes repetir sacando partido de los sensores ya integrados en la Micro:bit.

Primer proyecto: Un dado digital con Micro:bit

Puede que en alguna ocasión os haya pasado, quereis jugar a vuestro juego de mesa, de rol o simplemente sacar un número a al azar. Un dado parece la mejor opción pero.. no aparece por ninguna parte. Revuelves la casa, lo pones todo patas arriba pero no hay manera, no lo encuentras por ninguna parte. ¡No pasa nada! Podemos crear un dado digital con Micro:bit. Gracias a su acelerómetro detectaremos cuando lo estamos agitando y mostraremos un valor aleatorio.

Programando Micro:bit con bloques

Vamos a ver en detalle cómo lo hemos hecho:

Codigo del dado con Micro:bit

Le indicamos a Micro:bit que, cuando sea agitado, genere un número aleatorio entre el 1 y el 6. Este número lo guardamos en una variable a la que hemos llamado «valor». A continuación mostramos lo que contiene la variables valor en nuestro array de leds.

Lo mejor de este dado es que si queremos un dado, por ejemplo, de 12 caras solo tenemos que pedirle a Micro:bit que nos genere un número aleatorio entre el 1 y el 12. Es decir, cambiando el 6 que hemos puesto podríamos tener un dado de tantas caras cómo queramos.

Segundo proyecto: Termómetro digital

El tiempo está loco, hay días que hace muchísimo frio, otros mucho calor… pero ¿cómo podemos saber cuanto calor hace? podríamos comprar un termómetro cualquiera… ¡o aprovechar el termómetro que tiene Micro:bit para crear el nuestro propio!. Es tan sencillo cómo esto:

Codigo de termometro con Micro:bit

Lo que hacemos es guardar el la temperatura que nos indica el termómetro en una variable a la que hemos llamado «temperatura». Después añadimos la letra «C» para indicar que son grados centígrados y lo mostramos por el array de leds.

Este segundo proyecto tiene muchas posibilidades. Podríamos mostrar distintos iconos en función de la temperatura que vemos, avisos (cómo «ponte el abrigo» o «hoy hace calor») o, incluso, podríamos usar los pines de la Micro:bit para activar o desactivar distintos elementos, un ventilador o activar una tela calefactada que nos de calor en estas frías mañanas.

¿demasiado fácil? ¡Hagamos un videojuego!

Si estos dos ejemplos no te han impresionado y necesitas algo más complejo te proponemos crear un pequeño juego utilizando los elementos incluidos en la propia Micro:bit. Podríamos haber hecho un pong, o un space battle, pero hemos decidido inventarnos algo distinto:

Durante el juego iran apareciendo en la parte superior de la matriz de leds un puntito (será una nave para nosotros) que irá cayendo hacia el suelo. Esta nave aparecerá de forma aleatoria (sino ¿que gracia tendría?) utilizando los botones podrás mover una linea situada en la parte inferior del array de leds. Tu misión consiste en evitar que las naves toquen el suelo. Si lo logras sumaras puntos, si fallas perderás una vida. Cuando empiezas tienes 3 vidas (tu podrás programar tu juego con tantas cómo quieras, por supuesto).

Lo primero que haremos será crear nuestro control en el juego, estará compuesto por dos puntos a los que llamaremos pala1_1 y pala1_2, estarán en el mismo nivel de Y pero en distinta x para que se vean uno junto al otro. También inicializaremos nuestro contador de vidas a 3. Cambiando este número podrás cambiar cuantas vidas tendrás durante el juego.

start del juego en Micro:bit

Ahora que tenemos el control creado visualmente vamos a programar su comportamiento, es decir, crearemos la parte del programa que dice que cuando pulse el botón derecho nuestro control debería moverse a la derecha y que cuando pulsemos el izquierdo hará lo propio a ese lado.

Controles del juego en Micro:bit

Ya tenemos la parte que controlamos nosotros lista para funcionar. De hecho, si cargamos el código hasta aquí veremos cómo se mueve nuestra barra por la parte inferior. Es el momento de programar cómo aparecerá nuestro rival:

Función para crear naves en el juego de Micro:bit

Hemos creado una función para esta parte, cada vez que la llamemos creará un punto arriba del todo (por eso la Y la fijamos a 0) pero saldrá más a la izquierda o más a la derecha de forma aleatoria (gracias a pick random, dónde definimos que nos de un número aleatorio entre 0 y 4). También hemos puesto la variable «hay_nave» a true. Hemos creado esta variable para controlar si ya hay creada una nave y evitar que salga otra.

Ahora viene el plato fuerte, hemos creado nuestro personaje en el juego (la pala) y el de la consola (la nave) ahora tenemos que programar cómo estos dos personajes se relacionan entre ellos, esto será lo que se conoce cómo «la lógica del programa», la parte que define cómo los distintos elementos se comportan e interaccionan entre si. ¡Vamos allá!

Logica del juego de Micro:bit

forever es un bucle, es decir, las acciones que hay dentro de él se repiten de forma continua, por lo que en su interior vamos a poner las cosas que tenemos que comprobar continuamente durante todo el juego. Lo primero de todo es comprobar si la variable hay_nave es verdadera o falsa, es decir, si alguna nave está bajando por el juego. Si no la hay llamamos a la función que la crea (esta función la hemos visto anteriormente). Por el contrario, si existe una nave lo que haremos será hacer que baje por la pantalla, para ello iremos aumentando su valor en Y (la coordenada que nos dice cómo de alto o bajo está algo en nuestra matriz de leds). También hemos puesto una pequeña pausa para que la nave no baje demasiado deprisa. Cambiando el valor de la pausa haremos que nuestro juego sea más rápido o más lento y por lo tanto más complejo o más sencillo.

Tenemos la nave en funcionamiento, ahora tenemos que comprobar donde cae. Primero comprobamos si está tocando alguno de los puntos que forman nuestra pala, si es así significa que la hemos capturado y por lo tanto tiene que desaparecer (delete nave), tenemos que poner nuestra variable hay_nave a false porque ya no hay ninguna nave y queremos que se genere otra y subimos un punto en nuestro marcador con change score by 1.

Si nuestra nave no está tocando la pala puede que se nos escapase y este en el suelo. Para comprobar si es así revisaremos si su posición en Y es 4, esto significaría que efectivamente ha aterrizado, por lo tanto perdemos una vida y de todos modos borramos la nave, ya que no queremos ver las naves que han llegado a caer. También indicaremos que no hay nave cambiando la variable hay_nave, ya que de otro modo el juego se quedaría bloqueado ahí al no crearse una nueva nave.

¡Listo! nuestro juego está terminado, puedes probarlo, modificarlo, mejorarlo… y sobre todo disfrutar de lo que acabas de programar.

Esto es solo el principio

Cómo ves solo hemos usado algunos de los sensores que trae la propia placa de Micro:bit y ya estamos pudiendo hacer multitud de proyectos. ¡Imagina lo que se puede conseguir profundizando un poco más!

En las próximas semanas os traeremos algunos proyectos más, un poco más avanzados, para que veáis que no importa el nivel de conocimientos ni la edad que tengamos. ¡Micro:bit tiene horas de diversión y aprendizaje para todos!

 

Enlace al juego que hemos creado para micro:bit - https://makecode.microbit.org/_TH33dk5gmRhD