Unidad Didactica Microbit
Unidad Didactica Microbit
Unidad Didactica Microbit
Qué es micro:bit
BBC micro:bit es una pequeña tarjeta electrónica programable de 4x5 cm lanzada por la BBC
británica en el año 2015 con el objetivo de que más de un millón de niños/as y jóvenes ingleses
aprendieran a programar de una forma fácil y divertida. En el año 2016 la Fundación Educativa
Micro:Bit integrada por empresas como Amazon, Microsoft, Cisco o Samsung, asumen este
proyecto con el propósito de promocionar el aprendizaje de la programación y la robótica entre los
jóvenes a nivel mundial.
Código abierto. Es un desarrollo GNU Open Source o de código abierto tanto el hardware
como el software de programación.
MakeCode. Dispone de un entorno propio de programación gráfica MakeCode diseñado por
Microsoft. Se trata de un sencillo editor gráfico online con muchas posibilidades y gratuito
que permite la introducción a la programación usando una herramienta visual de bloques.
Programación visual alternativa. También se puede programar usando la
app micro:bit Android | micro:bit iOS desde dispositivos móviles. Otra posibilidad es
programar con makeBlock y con Scratch mediante la instalación previa de extensión o
complemento.
Programación textual. La placa BBC micro:bit se puede programar mediante programación
textual Javascript en la propia herramienta Makecode o bien con un entorno textual
alternativo como Python
Matriz de leds. La placa incorpora una matriz de 5x5 leds que proporcionan múltiples
posibilidades para mostrar datos: números, textos, animaciones, etc.
Botones programables. Dispone de un botón A y un botón B que permiten programar
acciones que se disparan mediante su pulsación.
Sensores. A pesar de su pequeño tamaño la tarjeta incorpora sensores de luz, temperatura,
acelerómetro y brújula.
Pines de entrada y salida. Dispone de 25 conectores diminutos en su borde inferior siendo
los pines 0,1,2, 3V y GND de mayor tamaño. Con estos últimos se pueden utilizar cables con
terminales en forma de pinza de cocodrilo que facilitan la conexión a la placa de todo tipo
de componentes electrónicos adicionales típicos de Arduino: leds, servomotores, sensores,
pulsadores ...Para utilizar el resto de patillas será necesario insertar la placa en
un shield o placa de expansión.
Comunicación inalámbrica. Ofrece conexión por radio para la comunicación de una placa
con otra facilitando desarrollos de interacción entre distintas tarjetas. También dispone de
conexión Bluetooth para facilitar la comunicación de la placa con dispositivos móviles, etc.
Conexión USB. Se conecta por cable USB-micro USB al ordenador para descargar el
programa en ella.
Conexión batería externa. Se puede adquirir aparte un pack de 2 pilas de batería AAA que
se conectan a la tarjeta para que funcione sin necesidad de estar conectada al ordenador
por USB.
Coste. La placa BBC micro:bit tiene un precio en torno a 21-22 euros aprox. e incorpora
leds, botones, distintos sensores y pines de entrada/salida por lo que apenas hace falta
mucho más para empezar a trabajar, salvo unos cables con pinzas de cocodrilos y un mini-
servomotor.
Edades. Se trata de una solución tecnológica muy interesante para la iniciación a la
programación visual de circuitos digitales a partir de 10 años. Podría ser un paso previo al
uso educativo de placas Arduino.
2. Anatomía de la placa
Leds
Led significa "diodo emisor de luz y es un componente que se ilumina. La tarjeta micro:bit dispone
de una matriz de 5x5 leds que se pueden programar para que se enciendan o apagen de forma
individual. Esto permite mostrar textos, números, imágenes, animaciones ...
Fuente de imagen: Microbit.org
Botones
Se ofrecen 2 botones en la cara frontal con la etiqueta A y B. Se puede detectar cuándo se pulsa
uno u el otro o bien los dos a la vez. Y por tanto se puede programar el comportamiento de la
tarjeta en cada caso.
Sensor de luz
Los leds de la placa micro:bit pueden actuar como
entrada detectando la intensidad de la luz ambiental.
Sensor de temperatura
El sensor de temperatura integrado en la placa
detecta la temperatura ambiente en grados
centígrados.
Acelerómetro
El acelerómetro mide la aceleración de tu tarjeta micro:bit en los 3 ejes del
espacio: X-Y-Z. Sirve para detectar cuando se mueve la tarjeta
micro:bit. También registra cuándo se agita, se inclina o
experimenta una caída libre.
Fuente de imagen: Microbit.org
Brújula
La brújula registra el campo magnético terrestre
permitiendo detectar la dirección en que se orienta la
tarjeta. Es necesario calibrar la brújula antes de
utilizarla para garantizar un funcionamiento preciso.
Radio
Esta conexión inalámbrica se emplea para comunicarse
entre placas micro:bit. Se puede utilizar la radio para enviar
mensajes a otras tarjetas, diseñar juegos multiusuario, etc.
Bluetooth
Permite que la tarjeta micro:bit pueda comunicarse con
smartphones y tablets mediante Bluetooth. Este tipo de
comunicación inalámbrica funciona en ambos sentidos por lo
que también puede utilizarse para enviar código desde la app
del dispositivo móvil a la tarjeta micro:bit. Antes de utilizar esta
característica es necesario emparejar la tarjeta micro:bit con ese
dispositivo.
Recuerda
Las señales digitales son aquellas que sólo pueden tomar dos valores: 0 y 1 que se
corresponde con los voltajes 0V y 5 V.
Las señales analógicas son aquellas que pueden tomar múltiples valores, p.e., entre 0 y
255 en un rango proporcional de voltajes entre 0V y 5V.
3. Accesorios de micro:bit
Normalmente cuando se compra una tarjeta micro:bit en la distribución más básica, tras el
desempaquetado, solemos comprobar que NO viene acompañada de ningún accesorio. La placa
incorpora muchos de los componentes con los cuales ya es posible empezar a programar: leds,
sensores, botones ...
Sin embargo para un mejor aprovechamiento de sus prestaciones se recomienda adquirir aparte
alguno de estos complementos:
Cable USB
Es un cable USB tipo A a microUSB tipo B macho-macho. Es
imprescindible para conectar la tarjeta al ordenador como
alimentación y para cargar los programas diseñados en ella. Por
suerte suele ser un cable muy habitual en la alimentación de
teléfonos móviles (no quizás los más recientes).
Carcasa de metacrilato
Protege los componentes de la tarjeta dejando al descubierto los
botones para su manejo y los pines para su conexión.
Batería de alimentación
Permite aportar suministro eléctrico a la tarjeta sin necesidad de estar conectada por USB al
ordenador. De esta forma la tarjeta podrá ejecutar el programa cargado de forma ininterrumpida.
Puede ser una caja portapilas para 3 pilas de batería del tipo AAA o bien una batería de litio de 3,7
V
Fuente de
imagen: AliExpress
Servomotor
Es un tipo de motor reductor que sólo puede girar 180 grados. Es controlado por señales eléctricas
en formato de pulsos que son enviadas desde la tarjeta. Cada pulso enviado le indica al motor a
qué posición debe moverse.
Componentes electrónicos
Aunque no son estrictamente necesarios para comenzar, muchos de los componentes electrónicos
de los kits de Arduino se pueden conectar y programar con micro:bit: leds, sensores,
zumbadores, etc. Para ello se suele utilizar una protoboard y cables dupont de prototipado con
terminal de pinza de cocodrilo.
En ellas se inserta la placa micro:bit y facilitan la conexión con cables de prototipado a los 25 pines
de que consta.
KeyStudio Sensor Shield V2 for BBC Micro:bit
Grove Shield for BBC Micro:bit
GPIO Shield for BBC Micro:bit
KeyStudio 37 for micro:bit. Contiene 37 tipos de sensores distintos que amplían las
posibilidades de programación y aplicación.
Osoyoo Starter Kit for micro:bit. Dispone de 20 tipos de sensores distintos.
KeyStudio Mini Smart Robot Car v2.0. Es un kit para construir un vehículo programable.
Move Mini Buggy Kit for BBC Micro: bit. Es otro pack que permite la construcción de un
coche programable.
Smart Home Kit for BBC Micro:bit. Ofrece distintos sensores orientados al diseño de una
casa inteligente.
KeyStudio Starter Kit Honeycomb Smart Weareable for BBC Micro. Proporciona
distintos módulos electrónicos con terminales fáciles de conectar usando cables de pinza
de cocodrilo.
4. Software de programación
En este taller de iniciación se propone programar la tarjeta micro:bit usando MakeCode diseñado
por Microsoft.
Programación
1. Para crear un nuevo proyecto pulsa en New Project / Nuevo Proyecto. Cada programa se
guardará en un proyecto. Otra posibilidad es pulsar en el botón Importar y subir un archivo
HEX almacenado en tu equipo.
2. Se accede a la página del Editor de MakeCode.
2. Se mostrará una ventana con información de los dos pasos necesarios para descargar el
programa a la tarjeta.
3. Si no se ha mostrado el cuadro de diálogo de descarga del navegador web pulsa en el
botón verde microbit-miPrimerPrograma.hex.
4. Esta acción produce la descarga en tu equipo PC del programa *.HEX. Por defecto se
suele descargar en la carpeta Downloads o Descargas.
Windows: Desde el explorador de archivos haz clic derecho sobre el archivo descargado y
elige Enviar a > MICROBIT X:
La tarjeta micro:bit solamente puede cargar archivos *.HEX y cuando se carga uno en la
tarjeta se elimina el anterior.
Conviene guardar los programas creados en formato *.HEX en el disco duro del ordenador
PC para conservarlos y archivarlos.
Es importante recordar ...
o MakeCode es una herramienta en línea a la que se accede sin introducir usuario ni
contraseña.
o En la página Mis proyectos se conservan los proyectos creados desde ese equipo
y navegador siempre y cuando no se elimine el historial.
o Para conservar los proyectos es MUY recomendable guardarlos en formato *.HEX
en tu equipo PC.
o En posteriores acceso desde la página Mis proyectos es posible pulsar en el
botón Importar y subir el archivo HEX a la herramienta en línea para seguir con la
edición del programa.
Flasheo vía WebUSB
Si el navegador utilizado soporta tecnología WebUSB (p.e. Google Chrome v65+) entonces es
posible flashear directamente el archivo *.HEX desde el navegador a la tarjeta micro:bit sin
necesidad de guardarlo previamente en el equipo y luego copiarlo.
1. Clic en el botón Opciones con el icono "rueda dentada" situado en la esquina superior
derecha de la interfaz de la herramienta MakeCode.
2. Selecciona la opción Pair device / Emparejamiento de dispositivo.
3. Se mostrará la ventana con el dispositivo USB conectado con el cual se hará la
vinculación, selecciónalo y pulsa en la ventana Conectar.
4. Si está activado el modo flasheo vía WebUSB entonces para enviar el programa HEX a la
placa basta con pulsar en el botón DOWNLOAD / DESCARGAR. El programa se situará
automáticamente en la unidad correspondiente a la tarjeta y comenzará a ejecutarse.
5. Para guardar el programa en el disco del ordenador PC es necesario clickear en el
botón Guardar que muestra el icono de un disquete al lado del nombre del proyecto.
1. Botones y sonrisas
2. Display de nombres
3. Contador de pulsaciones
4. Detección de pulsación
5. Cara o cruz
6. Número al azar
7. Piedra, papel o tijera
8. Lanzar un dado
9. Medidor de temperatura
10. Brújula
11. Cronómetro
12. Reloj
13. Gráfico de aceleración
14. Envios por radio
15. Baile de luciérnagas
16. Cazadores de balizas
17. La máquina de votar
18. Tu media naranja
19. Reproductor musical
20. Contador de pasos
21. Medidor de intensidad de luz
22. Display parpadeante
23. Led externo
24. El semáforo
25. Medidor de humedad
26. Control del servomotor
27. Cronometraje digital
28. Capturar el punto
29. Juego de obstáculos
30. Juego de reacción
Diseña un programa para que se mu estre una imagen "smile" cuando se pulsa el botón A.
Otra imagen "triste" cuando se pulsa B.
Una animación cuando se pulsan a la vez el botón A y B.
Programación
Explicación
Programación
Explicación
Se incrementa en una unidad el valor de una variable cada vez que se pulsa el botón A.
Se decrementa en una unidad el valor de esa variable cuando se pulsa el botón B.
Cuando se pulsan ambos botones a la vez A+B entonces el contador se resetea a cero.
Programación
Explicación
Programación
Explicación
Crear un programa que simule el lanzamiento de una moneda al aire al pulsar el botón A.
Para el resultado "cara" y para el resultado "cruz" utilizaremos imágenes alusivas.
Para simular el tiempo de espera por el resultado se aplicará una pequeña animación de
imágenes.
Cuando se pulsa el botón B se apagan todos los leds de la pantalla
Programación
Explicación
Programación
http://canaltic.com/talleres/microbit/index.html
Explicación
Modifica el programa anterior para que se muestre el número cuando se agita la tarjeta en
lugar de cuando se pulsa en el botón A.
Para ello utiliza el bloque Si ... agitado (If ... snake)
Diseña un programa que al agitar la tarjeta muestre una cuenta atrás 3,2,1 ...
Al final muestre una imagen aleatoria: piedra, papel o tijera.
Programación
Explicación
Modifica el programa anterior para que la secuencia previa sean las 3 imágenes: papel,
piedra y tijeras.
A continuación se iniciará una segunda secuencia y se detendrá en aquella elegida al azar
mostrando la imagen final.
Programación
Explicación
Al presionar el botón A ... hace que todo se inicie cuando se pulsa este botón en la placa.
En la variable hand se guarda un valor aleatorio entre 1 y 6.
Si hand es igual a 1 ... se muestra la imagen creada.
Y así sucesivamente.
Desafío: Lanzar un dado II
Modifica el programa anterior para que la cara del dado se genere cuando se agita la
tarjeta.
Al pulsar el botón B se borra la pantalla.
Programación
Explicación
Para convertir los grados centígrados ºC en grados fahrenheit ºF es necesario hacer esta
operación: F = 1,8 x C + 32
Modifica el programa anterior para mostrar la temperatura registrada en grados ºF.
10. Brújula
Programa
Observa que las flechas oeste y este están permutadas para asegurar que apunten al
norte.
Importante: configura la pulsación de los botones A+B para calibrar inicialmente la
brújula.
Programación
Explicación
Nota:
11. Cronómetro
Programa
Programación
Explicación
Se crea una variable start_time que almacena el instante inicial del cronometro y que
permite en el instante final calcular el tiempo transcurrido entre ambos puntos.
El bloque tiempo de ejecución (ms) devuelve el tiempo transcurrido en milisegundos
desde que se inició el programa.
Al iniciar se establece el valor de esta variable a cero.
Al presionar el botón A puede ocurrir ...
o Si la variable start_time tiene valor cero ... Es el instante inicial del
cronometraje. Se almacena en la variable start_time el valor que devuelve el
cronómetro expresado en milisegundos. Y también se muestra la imagen para dar
al usuario información de que se está cronometrando.
o Si la variable start_time NO tiene valor cero ... Es el instante final del
cronometraje. Se calcula la diferencia entre el tiempo que devuelve el cronómetro y
el almacenado inicialmente en la variable start_time. Este valor se divide entre
1000 para pasar de milisegundos a segundos y luego el resultado se redondea a
unidades. Se muestra ese valor en el display y se almacena cero en la variable
start_time.
Desafío: Cuenta atrás
12. Reloj
Programa
Programación
Explicación
Se crean las variables hora y minuto (para almacenar la hora y minuto) y la cadena de
texto time (para almacenar la cadena de texto hh:mm).
Al iniciar el programa se reinician hora y minuto a cero y time al texto vacío "".
Explicación
Explicación
Mejora la programación anterior para que se muestren también los segundos transcurridos,
es decir, la hora se exhiba con este formato: hh:mm:ss
Para ello define una variable adicional segundos
En el bucle Para siempre define una micropausa de 1000 ms y luego incrementa los
segundos en 1 s. y en cascada los minutos y las horas.
Programación
Explicación
En este caso se propone que la variable "a" almacene el valor del sensor de temperatura
usando como valor máximo 40 grados.
Se utiliza la señal de comunicación por radio entre tarjetas micro:bit para enviar un icono
de una a otra pulsando un botón u otro de la tarjeta.
microbit-14_enviarMensajeRadio.hex (hex - 632.18 KB).
Programación
Explicación
El programa descrito se carga en todas las tarjetas micro:bit que desean comunicarse entre sí.
Al iniciar el bloque radio establecer grupo 0 define el número de canal de radio que
utilizarán todas las tarjetas para comunicarse. Puede ser un valor entre 0 y 255.
Al presionar el botón A ... se enviará por señal de radio el número 0 y se mostrará en la
tarjeta emisora el icono relacionado con ese número enviado. En este caso es un corazón.
Al presionar el botón B ... se enviará por señal de radio el número 1 y se mostrará en la
tarjeta emisora el icono relacionado con ese número enviado. En este caso es una casita.
Al recibir por radio un número ... (en la tarjeta receptora)
o Si el número recibido es 0 entonces se mostrará el icono de corazón.
o Si el número recibido es 1 entonces se mostrará el icono de casita.
Desafío: Envíos por radio II
Mejora el programa anterior añadiendo más eventos que puedan enviar números. Por
ejemplo cuando se pulse A+B o bien cuando se agite la tarjeta.
Recuerda que en el bloque Al recibir radio receivedNumber ... tienes que decodificar el
número para que en la tarjeta receptora se muestre o se haga lo que está asociado al
número recibido.
Cada tarjeta simulará ser una luciérnaga que emite un destello de luz.
El flashazo se produce cada vez que su variable interna clock alcanza un valor, por
ejemplo, 8. Lo acompaña la emisión de una señal de radio enviada al resto de tarjetas.
Tras la emisión de luz el contador se reinicia a 0 y comienza de nuevo a incrementarse en
un bucle continuo.
Si la luciérnaga se encuentra en solitario emitirá destellos con una cadencia fija, predecible
y amplia.
Si la luciérnaga está cerca de otras, recibirá por señal de radio un mensaje y como
respuesta a esa recepción se incrementará su contador interno mucho más rápido.
El efecto conseguido es que emitirá destellos con una cadencia mucho menor debido a la
recepción de mensajes de radio de sus compañeros/as.
Esto se consigue mediante un programa que utiliza los mensajes de radio de acuerdo con
la especificación indicada.
Programación
Explicación
El programa descrito se carga en todas las tarjetas micro:bit que desean comunicarse entre sí.
Se crea una variable clock que es un contador interno que cuando alcanza el valor 8 hace
que se emita un flash, se envíe el número 0 por radio ...
Al iniciar el bloque radio establecer grupo 0 define el número de canal de radio que
utilizarán todas las tarjetas para comunicarse. Puede ser un valor entre 0 y 255.
Al recibir por radio un número ... (en la tarjeta receptora) se incrementa el
contador clock en una unidad más.
Si el valor de clock es igual o superior a 8 ...
o El bloque agregar puntos a la puntuación actual 1 genera un destello concreto
en el display.
o El bloque radio enviar numero 0 envía una señal de radio al resto de tarjetas.
o El bloque pausa 200 ms genera una micropausa en el programa de 2 décimas de
segundo.
o Se establece el valor de clock como cero para reiniciar la cuenta para el próximo
destello.
Si el valor de clock es inferior a 8 ...
o Se define una micropausa de 200 ms.
o Se incrementa en una unidad la variable clock
Desafío: Jugando con Luciérnagas
Modifica el programa para conseguir distintas cadencias o bien distintos efectos de destello
del display.
Se trata de un juego donde hay una tarjeta micro:bit escondida en la sala y emitiendo una
señal de radio a intervalos regulares. Es la baliza.
El resto de tarjetas micro:bit reciben esa señal y tratan de aproximarse y descubrir la
baliza. Son las tarjetas cazadoras.
Se pueden organizar varios grupos de: una baliza por grupo y varios cazadores.
Cada grupo emite en un número de radio concreto y distinto jugando por separado.
Baliza
microbit-16_baliza_CazadorBalizas.hex (hex - 627.83 KB).
Cazadores
microbit-16_cazador_CazadorBalizas.hex (hex - 630.55 KB).
Programación
Baliza
Explicación
Al iniciar ...
o El bloque radio establecer grupo 0 define el número de canal de radio que
utilizarán todas las tarjetas de ese grupo para comunicarse.
o El bloque radio establecer número de serie de transmisión verdadero produce
que la radio transmita el número de serie en cada mensaje.
o El bloque radio establecer potencia de transmisión define la potencia de
transmisión que moderamos para poder jugar en una habitación grande.
Para siempre ...Es un bucle que se ejecuta de forma continuada.
o El bloque radio enviar número 0 envía el número 0 como señal de radio.
o Los bloquesmostrar icono generan una animación de 2 imágenes.
o El bloque pausa (ms) 200 produce una micropausa de 2 décimas de segundo.
Cazadores
Explicación
El programa descrito se carga en todas las tarjetas cazadoras. Se crea la variable signal.
Al iniciar ... el bloque radio establecer grupo 0 define el número de canal de radio que
utilizarán todas las tarjetas de ese grupo para comunicarse.
Al recibir radio receivedNumber se dispara cuando se recibe un número por señal de
radio ...
o El bloque received packet intensidad señal ... devuelve la intensidad de la señal
de radio recibida.
o Este valor se guarda en la variable signal.
o Si signal es menor de -60 entonces se muestra el icono "pequeño diamante" para
indicar LEJOS.
o Si signal es menor de -50 entonces se muestra el icono "rombo" para indicar
MEDIO.
o En caso contrario, es decir, si signal es igual o mayor de -50 entonces se muestra
el icono "cuadrado" para indicar CERCA.
Desafío: Cazadores de balizas
Realiza las modificaciones oportunas en las tarjetas cazador para que se muestre la
intensidad de la señal en lugar del icono alusivo.
La variación de la señal será la ayuda para aproximarse y localizar la tarjeta baliza.
Emisores de voto
microbit-17_emisorVoto.hex (hex - 627.78 KB).
Programación
Receptor de votos
Esta programación se cargará en la tarjeta receptora de la votación.
Explicación
Al iniciar ...
o El bloque radio establecer grupo 0 define el número de canal de radio que
utilizarán todas las tarjetas de ese grupo para comunicarse.
o Los bloques Establecer yes | no para 0 reiniciar respectivamente los contadores
de Síes y Noes.
Explicación
Al recibir radio receivedNumber se dispara cuando se recibe un número por señal de radio ...
Explicación
Al iniciar ...
o El bloque radio establecer grupo 0 define el número de canal de radio que
utilizarán todas las tarjetas de ese grupo para comunicarse.
o El bloque radio establecer número de serie de transmisión verdadero produce
que la radio transmita el número de serie en cada mensaje.
o Se muestra un icono de un fantasma.
Explicación
Realiza las modificaciones oportunas en el código de las tarjetas emisoras de voto para
que sólo puedan votar una única vez.
Hasta que no se pulsen los dos botones A y B en la tarjeta emisora no se podrá volver a
votar.
Pista: utiliza la variable voted para controlar si se ha votado o no desde ese terminal.
Ver solución
Explicación
Al iniciar ...
o El bloque radio establecer grupo 128 define el número de canal de radio que
utilizara cada pareja de jugadores para encontrarse.
o El bloque radio potencia de transmisión 1 define que la señal sea débil para
obligar a acercarse.
o Mostrar LEDs con la figura de medio corazón.
Al presionar el botón A | B se enviará mediante la transmisión por radio los números 1 y
2 respectivamente.
Explicación
La tarjeta micro:bit permite programar melodías nota a nota usando el bloque Reproducir
tono <Nota> por <Xpulso>.
Para escuchar la tarjeta es necesario conectarla a unos auriculares o altavoces mediante
dos cables de cocodrilo: uno desde el terminal 0 a un borne del conector del dispositivo de
sonido y otro desde el terminal GND al otro borne del conector de sonido.
En este programa se componen los primeros compases de una melodía popular. Sonará
cuando se pulse en el botón A.
Programación
Explicación
Programación
Explicación
Mejora el programa anterior para que el contador se reinicie cuando se pulsan ambos
botones A+B.
En esta página se propone crear un programa que lea de forma continua el valor del
sensor de luminosidad de la tarjeta micro:bit.
Ese valor se guarda en una variable y se muestra el gráfico de barras.
Cuando se pulsa en el botón A se visualiza este valor en el display.
Programación
Explicación
Diseña un nuevo programa en el cual cuando la intensidad de luz disminuye por debajo de
un valor entonces se dispara una señal acústica de alarma.
Pista: utiliza un bucle para siempre que está escuchando en todo momento. Si la
intensidad de luz se encuentra por debajo entonces se reproduce el audio.
Ver solución
En este programa se propone controlar de una forma más eficaz todos y cada uno de los
leds del display integrado en la placa micro:bit.
Para ello se utilizan los bloques graficar XY y ocultar XY para encender y apagar el led
cuyas coordenadas XY se introducen como dato.
También se utiliza el bloque pause ms para detener el flujo del programa durante unos
instantes.
Con estos bloques es posible mostrar animaciones personalizadas en el display de la
tarjeta.
Programación
Explicación
Añade al bucle Para siempre otro bucle doble Para i/j de 0 a 4 ... que vaya apagando
paulatinamente de izquierda a derecha y de arriba hacia abajo los leds del display.
En este ejemplo se expone cómo es posible controlar con una tarjeta micro:bit
componentes electrónicos externos.
Se conecta un led a la salida digital 0 de la tarjeta, cerrándose el circuito sobre el
terminal GND
Se elabora un programa usando el bucle Para siempre que emita por esa salida digital 0 el
valor 1 y el valor 0 de forma intermitente.
microbit-23_ledExterno.hex (hex - 615.52 KB).
Programación
Explicación
24. El semáforo
Programa
Se construye un circuito con 3 leds: rojo, amarillo y verde. Cada uno conectado a un pin de
la tarjeta micro:bit: 0, 1 y 2.
El terminal se comparte junto con una resistencia conectada al terminal GND de la placa.
Programación
Explicación
Programación
Explicación
Un servomotor es un tipo especial de motor que no gira de forma continua. Admite el giro
controlado en un sentido y en otro solamente dentro de un rango de amplitudes entre 0 y 180
grados. Se suele utilizar para implementar brazos robóticos, sistemas de control de la dirección de
vehículos teledirigidos, etc. El control que se puede ejercer sobre este tipo de motores no se basa
en regular la dirección y velocidad de giro. Más bien lo que se controla es la posición que adopta
en cada instante expresada en grados entre 0 y 180. El servomotor tiene tres terminales: 5V (rojo),
GND (marrón o negro) y Control (amarillo o naranja). La patilla de control se conectará a una salida
analógica P0 de nuestra placa micro:bit cuyo valor oscilará entre 0 y 180.
Las conexiones del servomotor con la tarjeta micro:bit será similar a la siguiente imagen:
Nota importante:
La mayoría de micro servo motores están diseñados para funcionar con un voltaje de 5
voltios. Recuerda que la salida de la placa micro:bit es de 3 voltios por lo que la conexión
recogida en la imagen NO funcionará bien. Para solucionar esta limitación se debe
alimentar el servomotor con un cable que proporcione 5V y otro conectado a GND o polo
negativo procedente de una batería auxiliar. El cable de control naranja deberá
conectarse a la tarjeta micro:bit.
Se define una variable angulo que almacena en todo momento el ángulo aplicado al
servomotor.
El valor del ángulo se muestra en el display permanentemente.
Al inicio del programa se establece un valor del ángulo igual a 90.
Al pulsar el botón A el valor del ángulo disminuye en 5 unidades con un mínimo de 0.
Al pulsar el botón B el valor del ángulo aumenta en 5 unidades con un máximo de 180.
Programación
Explicación
Para siempre ... (se ejecuta de forma permanente) se muestra en el display el valor
almacenado en la variable angulo que es el valor aplicado a través del pin P0
Al iniciar ... se establece la variable angulo igual a 90 para empezar y se escribe ese
valor en el servo pin P0
Al presionarse el botón A ...
o establecer angulo entre el máximo de 0 y el resultado de restar 5 unidades al
ángulo.
o escribir servo pin P0 ... aplicando ese nuevo valor en la salida P0.
o detener animación para borrar la pantalla al cambiar el valor del ángulo.
Al presionarse el botón B ...
o establecer angulo entre el mínimo de 180 y el resultado de sumar 5 unidades al
ángulo.
o escribir servo pin P0 ... aplicando ese nuevo valor en la salida P0.
o detener animación para borrar la pantalla al cambiar el valor del ángulo.
Desafío: Control servomotor 2
Este programa permite cronometrar el tiempo invertido por un móvil en recorrer una distancia.
Circuito
Se montan sendas puertas, cada una con dos pletinas de cinta de cobre o papel de
aluminio.
La primera pletina de la puerta inicial se conecta al pin P0 y la primera pletina de la puerta
final se conecta al pin P1.
La segunda pletina de ambias puertas se conecta al mismo pin GND.
En la parte inferior del coche se sitúa una pletina que al pasar consigue conectar por
debajo con las pletinas.
El coche al pasar por encima de una puerta contacta ambas pletinas con lo que se envía
una señal al pin correspondiente: P0 y P1.
Programa
El programa registra el instante temporal en que pasa por la primera puerta P0 (t0) y luego
registra el instante en que pasa por la segunda puerta P1 (t1).
El tiempo invertido es la diferencia entre ambos valores: d = t1 - t0.
Ese tiempo se transforma en milisegundos y se muestra en el display de la tarjeta micro:bit
Programación
Explicación
Al iniciar ... se mostrará un led iluminado en el centro del display para indicar que el
sistema está listo para comenzar la medición.
Se crean 3 variables. t0 y t1 que almacenan el registro temporal de instante en el que el
vehículo pasa por cada puerta. La variable d almacena la diferencia de ambos valores: d =
t1 - t0.
Explicación
Al presionarse el pin P0 ... Este bloque se activa cuando se registra una entrada de señal
en el pin P0. Es el conectado a la puerta inicial.
o Guarda en la variable t0 el valor del bloque marca temporal del evento. Este
bloque devuelve en formato timestamp el instante en que se detectó entrada de
señal en el pin P0. El formato timestamp expresa en microsegundos el tiempo
transcurrido desde el 1 de enero de 1970 hasta ese instante.
o En la matriz de leds se muestra una primera línea para indicar que se ha registrado
el paso por la puerta inicial.
Explicación
Al presionarse el pin P1 ... Este bloque se activa cuando se registra una entrada de señal en el
pin P1. Es el conectado a la puerta final.
Guarda en la variable t1 el valor del bloque marca temporal del evento. Este
bloque devuelve en formato timestamp el instante en que se detectó entrada de señal en
el pin P1. El formato timestamp expresa en microsegundos el tiempo transcurrido desde el
1 de enero de 1970 hasta ese instante.
En la matriz de leds se muestran dos líneas para indicar que se ha registrado el paso por la
puerta final.
Se calcula la diferencia d = t1 - t0, se divide entre 1000 para pasarlo a milisegundos y se
redondea para evitar decimales.
Se muestra el valor de la diferencia en el display.
Por último se ilumina el led central para indicar que se está en disposición de volver a
realizar otra medida.
Desafío: Cálculo de la velocidad
Programación
Explicación
Crear una variable con el nombre sprite que guarda la referencia en todo momento al
sprite (objeto animado)
El bloque establecer sprite para create sprite at x: 2 y:2 crea un sprite referenciado
desde la variable sprite y lo sitúa en el punto central del display, es decir, en el punto de
coordenadas X=2 e Y=2. Recuerda que los leds del display de la tarjeta tienen
coordenadas del 0 al 4 tanto para el eje X como para el eje Y. Este bloque se encuentra en
la categoría Juego de la paleta de bloques.
El bloque establecer puntuación a cero define esta puntuación del juego como cero.
sprite desplazar 1. Este bloque define un desplazamiento hacia la derecha del sprite de 1
punto.
pausa ms (500 ms). Esta pausa en medio del bucle produce una ralentización del mismo
haciendo más fácil el juego. Para incrementar la dificultad del juego sitúa como pausa 100
ms y para disminuirla sitúa 1000 ó 2000 ms.
El bloque sprite si en el borde, rebotar hace que el sprite rebote en dirección contraria al
llegar a un borde.
Si ejecutas el programa con sólo estas dos secuencias observarás la animación del sprite o punto
rebotando de un lado para otro sobre la Y=2.
Explicación
Para volver a jugar será necesario pulsar en el botón trasero RESET de la tarjeta micro:bit.
Programación
Explicación
Al iniciar ... se ejecuta al iniciarse el programa. Se crea un sprite con el nombre player y
se sitúa en el punto X=2 Y=4, es decir, en la parte inferior central de la matriz de leds.
Explicación
Al presionarse el botón A ... se resta a la coordenada X del sprite player una unidad.
Esto produce que se desplace a la izquierda.
Al presionarse el botón B ... se suma a la coordenada X del sprite player una unidad.
Esto produce que se desplace a la derecha.
Para siempre ... ejecuta de forma continua la rutina que se programa a continuación.
pausa ms escoger al azar entre 1000 y 2000 ms. Esto produce una pausa aleatoria entre
1 y 2 segundos.
establecer obstaculo ... Crea un sprite con el nombre obstáculo y lo sitúa en un punto de
X entre 0 y 4 y de Y=0. De esta forma el punto sprite creado aparecerá en la línea superior
de leds en una columna aleatoria entre 0 y 4.
repetir 4 veces ejecutar ... se ejecuta este bucle 4 veces.
o pausa 200 ms. Define una pausa en el programa. Cuanto más pequeño sea la
pausa más rápido desciende el obstáculo. Cuanto más grande sea la pausa más
lento baja el obstáculo.
o obstáculo cambiar y por 1. La coordenada Y de este sprite se incrementa en 1
con lo cual desciende un peldaño.
Si "is player touching obstaculo" entonces ... Si el sprite player toca el sprite obstáculo
entonces ....
o fin del juego. Este bloque detiene el juego, muestra GAME OVER en el listado y
luego el marcador de puntos conseguidos SCORE X
pausa 200 ms. Define una pausa de 200 ms.
Agregar puntos a la puntuación total. Este bloque añade un punto a la puntuación del
jugador. Esto se producirá cuando el obstáculo haya bajado hasta la línea más inferior de
leds.
delete obstaculo. Elimina este sprite para reiniciar el bucle Para siempre con la creación
de un nuevo sprite.
Desafío: Juego de captura
Modifica el programa anterior para que el jugador puntúe solamente cuando el sprite móvil
intercepte el obstáculo que desciende.
Con esta acción conseguirá un punto.
Si el obstáculo llega abajo sin ser interceptado entonces el juego finalizará.
Pista: invertir la secuencia de código del bloque Si "is player touching obstaculo"
entonces ...
Programación
Explicación
ocultar X=2 Y=2. Este bloque oculta el led central del display en el inicio del programa
Se crean 3 variables:
o gameover que tendrá valor 0 mientras dura el juego y tendrá valor 1 cuando se
detiene el juego.
o player score 1 almacena la puntuación del jugador 1 que interactúa con el botón
A.
o player score 2 guarda la puntuación del jugador 2 que interactúa con el botón B.
Se inician los valores de las variables a cero.
Explicación
Si gameover=0 entonces ... Esta condición chequea que el juego no se haya terminado.
o pausa ms escoger al azar de 2000 a 10000. Esto genera una micro pausa de
duración aleatoria entre 2 y 10 segundos.
o graficar X=2 Y=2 ilumina el led central del display.
Explicación
si punto x=2 y=2 entonces ... si está iluminado el led central ...
o cambiar player score 1 por 1. Se incrementa el contador de puntos del jugador 1
en una unidad.
o ocultar x=2 y=2. Se apaga el led central.
Explicación
Si gameover=0 entonces ... Esta condición chequea que el juego no se haya terminado.
o graficar x=0 y=player1 score -1. Este bloque produce que se ilumine en la
columna más a la izquierda de leds (x=0), el led de posición 0, 1, 2 ... según los
valores que va tomando el contador de puntos del jugador 1 player1 score.
o graficar x=5 y=player2 score -1. Este bloque produce que se ilumine en la
columna más a la derecha de leds (x=5), el led de posición 0, 1, 2 ... según los
valores que va tomando el contador de puntos del jugador 2 player2 score.
Esta rutina crea un marcador de barra vertical en la posición x=0 hacia abajo para el jugador 1 y en
la posición x=4 para el jugador 2.
Explicación
6. Más información
Para hacer y aprender
Proyectos
Ejemplos
Cursos
Lecciones
Referencia de micro:bit
micro:bit APIs
micro:bit device
Referencia de lenguaje y datos
Lenguaje de Bloques
Lenguaje Javascript