Saltar la navegación

4.4. La placa micro:bit y Python

Diccionario

Sensores

Imagen que muestra un sensor de distancia

Definición:

Plural de sensor. Es un dispositivo que tiene la capacidad de detectar movimientos, ruidos, presión, luces...

Ejemplo:

Cuando entramos en un baño el detector de presencia, que es un sensor de distancia, permite que se encienda la luz.

Retor dice Sé que estás deseando comenzar a programar.

Pero antes, Xeni quiere enseñarte lo siguiente:

    • Aprender más sobre la placa micro:bit.
    • Conocer el editor de código qué vamos a utilizar para programar.
    • Aspectos básicos relacionados con el lenguaje de programación Python.

Como siempre Xeni tiene razón, es fundamental aprender todo esto para alcanzar el éxito en nuestra tarea.

¡Ánimo, ya falta menos!

1. Nuestra placa Micro:Bit

Ha llegado el momento de conocer en profundidad la placa micro:bit.

Antes de acceder a la información, Xeni os quiere hacer unas recomendaciones:

  • Trabajar en grupo.
  • Anotar lo que consideréis importante para realizar vuestro trabajo final. Podéis utilizar vuestro cuaderno o utilizar un ordenador.

Aspectos básicos

Este vídeo os muestra aspectos básicos relacionados con:

  • La placa micro:bit.
  • ¿Qué vamos a necesitar?
  • Los programas.


Recuerda que puedes activar los subtítulos si lo necesitas haciendo clic en el botón subtítulos (c) Botón Subtítulos y cambiar al idioma que prefieras. Para cambiar el idioma haz clic en la rueda dentada / Subtítulos.

Imagen que representa una hoja con texto. También podéis visitar la página web y ver la información en formato texto.

Aquí puedéis acceder al contenido de la página Guía del usuario.

Conecta tu placa

Un paso importante que hay que conocer es cómo podemos enviar nuestros programas a la placa micro:bit.

El siguiente vídeo os enseña cómo hacerlo.

Imagen que representa una hoja con texto. También puedéis visitar la página web y ver la información en formato texto.

Aquí podéis acceder al contenido de la página Conectar y transferir.

LEDs

Una parte importante de nuestra placa son los  LEDs (Diodos que Emiten Luz). En el siguiente vídeo encontraréis toda la información.

Imagen que representa una hoja con texto. También puedéis visitar la página web y ver la información en formato texto.

Aquí podéis acceder al contenido de la página LEDs.

Botones A y B

Nuestra placa dispone de dos botones A y B. En el siguiente vídeo encontraréis toda la información.

Imagen que representa una hoja con texto. También puedéis visitar la página web y ver la información en formato texto.

Aquí podéis acceder al contenido de la página botones.

Acelerómetro

Nuestra placa micro:bit está llena de sensores. En el siguiente vídeo váis a conocer el acelerómetro.

Imagen que representa una hoja con texto. También puedéis visitar la página web y ver la información en formato texto.

Aquí podéis acceder al contenido de la página Sensores.

Sonidos

¿Queréis incluir sonidos en vuestros proyectos?

En el siguiente vídeo podéis aprender cómo se hace.

Imagen que representa una hoja con texto. También puedéis visitar la página web y ver la información en formato texto.

Aquí podéis acceder al contenido de la página Salida de sonido.

Imagen que muestra un sensor de distanciaDefinición:

Plural de sensor. Es un dispositivo que tiene la capacidad de detectar movimientos, ruidos, presión, luces...

Ejemplo:

Cuando entramos en un baño el detector de presencia, que es un sensor de distancia, permite que se encienda la luz.

Kardia dice ¿Queréis saber más?

Si queréis aprender más sobre la placa micro:bit y todo lo que la rodea, aquí tenéis la Guía del usuario.

Imagen de un cartel que pone: Visión general. Obtenga más información sobre las características de su BBC micro:bit. También, se ve una imagen de la placa.Haz clic aquí para accder a la Guía del usuario

2. Verdadero o falso, tú decides

Xeni te ha preparado unas afirmaciones sobre lo que has trabajado en el apartado anterior.

Debes responder si crees que son verdaderas o falsas.

Piénsalo bien antes de contestar.

Pregunta 1

1. Para utilizar la placa micro:bit vas a necesitar, entre otras cosas, un cable microUSB.

Sugerencia

Todas las preguntas están relacionadas con el apartado anterior Nuestra placa micro:bit.

Si tienes dudas puedes volver a consultar dicho apartado.

Pregunta 2

2. Nosotros vamos a programar nuestra placa utilizando el editor de MakeCode.

Sugerencia

Todas las preguntas están relacionadas con el apartado anterior Nuestra placa micro:bit.

Si tienes dudas puedes volver a consultar dicho apartado.

Pregunta 3

3. Los ficheros que enviamos a la placa son del tipo .hex.

Sugerencia

Todas las preguntas están relacionadas con el apartado anterior Nuestra placa micro:bit.

Si tienes dudas puedes volver a consultar dicho apartado.

Pregunta 4

4. Una vez enviado el programa a la placa sabremos que el proceso ha finalizado cuando la luz empiece a parpadear.

Sugerencia

Todas las preguntas están relacionadas con el apartado anterior Nuestra placa micro:bit.

Si tienes dudas puedes volver a consultar dicho apartado.

Pregunta 5

5. Nuestra placa cuenta con 25 LEDs. Por cierto, LED significa Diodo que Emite Luz.

Sugerencia

Todas las preguntas están relacionadas con el apartado anterior Nuestra placa micro:bit.

Si tienes dudas puedes volver a consultar dicho apartado.

Pregunta 6

6. Los LEDs de la placa pueden programarse por separado. Podemos representar: números, letras e incluso imágenes.

Sugerencia

Todas las preguntas están relacionadas con el apartado anterior Nuestra placa micro:bit.

Si tienes dudas puedes volver a consultar dicho apartado.

Pregunta 7

7. Los pulsadores A y B de nuestra placa, son elementos de salida.

Sugerencia

Todas las preguntas están relacionadas con el apartado anterior Nuestra placa micro:bit.

Si tienes dudas puedes volver a consultar dicho apartado.

Pregunta 8

8. Un acelerómetro es un programa que permite medir el movimiento de las cosas.

Sugerencia

Todas las preguntas están relacionadas con el apartado anterior Nuestra placa micro:bit.

Si tienes dudas puedes volver a consultar dicho apartado.

Pregunta 9

9. La placa dispone de un altavoz para emitir sonidos.

Sugerencia

Todas las preguntas están relacionadas con el apartado anterior Nuestra placa micro:bit.

Si tienes dudas puedes volver a consultar dicho apartado.

Pregunta 10

10. No podemos hacer programas que necesiten de un micrófono.

Sugerencia

Todas las preguntas están relacionadas con el apartado anterior Nuestra placa micro:bit.

Si tienes dudas puedes volver a consultar dicho apartado.

3. Nuestro código

En esta actividad váis a encontrar la información necesaria para realizar con éxito vuetro reto.

Por lo tanto, como siempre, es necesario:

  • Prestar mucha atención.
  • Anotar todo lo que consideréis importante.
  • Volver a ver el contenido si fuese necesario.

1. Características del editor de código

Nuestro editor de código posee unas características muy interesantes que nos van a ayudar a escribir nuestros programas.

En la siguiente imagen se indican con unas flechas rojas.

Imagen del editor de código Python V3, donde se resaltan las características de indentación, resaltado de palabras, aviso de errores y autocompletado con su ventana de ayuda. Ahora Xeni nos va a explicar un poco sobre estas características:

    • Aviso de errores, el editor nos avisa cuando escribimos un error en nuestro programa.
    • Resaltado de palabras, cuando el editor reconoce una palabra, dependiendo de la función que desempeñe, le cambia el color de letra.
    • Autocompletado, esta característica es muy importante. Cuando escribimos una palabra que el editor reconoce, éste nos ofrece una palabra recomendada y al pulsar enter se escribirá de forma automática. Además, nos ofrece una ayuda en línea de la función que desempeña dicha palabra. En la imagen superior intentamos escribir disp y el editor nos ofrece la palabra display.
    • Indentación, es el desplazamiento de un bloque de texto a la derecha. En la figura puede verse cómo debajo de while True: el texto está desplazado a la derecha. Esto significa que dicha línea de código pertenece al bloque while True:

2. Estructura de un programa

En la siguiente imagen se explican las diferentes partes de un programa escrito en Python.

Imagen de un programa hecho con el editor de Python V3. En la imagen se marcan diferentes zonas del programa. Como por ejemplo: la cabecera, la zona de comentarios, la declaración de variables, la importación de librerías y el bloque de código.

Hacer clic para agrandar la imagen

En la imagen se han marcado cada zona con un número. Aquí tenéis la información correspondiente:

    1. Aquí debes poner el nombre a tu proyecto.
    2. Estos comentarios los utilizamos para indicar la información inicial, nombre del programador, una breve descripcion y lo que se te ocurra.
    3. Importamos las librerías que vayamos a necesitar.
    4. Declaramos las variables que luego utilizaremos en nuestro programa.
    5. Bloque del código principal de nuestro programa.
    6. Comentarios que ayudan a entender lo que hace cada línea del programa.

Si respetáis esta estructura os convertiréis en unos buenos programadores y programadoras.

3. Crear un programa paso a paso

En el siguiente vídeo podéis ver todo el proceso completo, desde la creación de un programa hasta su comprobación en la placa micro:bit.


Recuerda que si lo necesitas puedes activar los subtítulos del video en el botón cc.










4. Aprendemos código Python

Xeni os ha preparado un material muy útil para que vuestro grupo pueda realizar el trabajo final sin dificultad.

1. Los comentarios

Es importante que os acostumbréis a escribir comentarios. ¿Por qué?:

    • Permiten a la persona que programa poder entender mejor el trabajo que realiza.
    • Ayudan a otras personas que puedan ver nuestro programa a entenderlo mejor.
    • Permiten encontrar errores en el código de programación. Si tenemos dudas con una línea de código, podemos convertirla en comentario y ver el resultado.

En la siguiente imagen podéis ver un ejemplo:

Imagen donde aparece una línea de código de Python destacando el signo de almohadilla para indicar que lo que viene a continuación es un comentario.

Seguro que ahora lo tienes claro. Pero recordad, en Python los comentarios deben empezar con el signo #.

2. Importar librerías

Las librerías en programación ayudan a escribir nuestros programas. Dentro de cada librería hay código que podemos utilizar.

Fijaos en la siguiente imagen:

Imagen de dos líneas de código, en la primera importamos todo de la librería de micro:bit. En la segunda línea, la librería random. En este caso se van a importar tres librerías:

  • En la línea 4, usaremos la librería microbit. Gracias a esta librería podemos usar todas las funciones de nuestra placa micro:bit.
  • En la línea 5, usaremos la librería random. Nos permite utilizar las funciones relacionadas con la búqueda aleatoria.
  • En la línea 6, importamos la librería math. Permite utilizar funciones matemáticas. En estas líneas podéis ver dos cosas:
    • Un cuadrado a la izquierda del número 6, si acercáis el ratón, aparece el mensaje "math" is unusde, significa que no se ha usado la librería en nuestro programa.
    • La palabra math aparece en color gris, es un aviso de que no hemos usado aún la librería.

Podéis observar que en la línea 4 hemos utilizado from microbit, mientras que en la línea 5 se ha utilizado import random. ¿Cuál es la diferencia?, creo que Xeni os puede ayudar con un ejemplo:

Imaginaros que queréis mostrar en la pantalla de nuestra microbit el siguiene mensaje: Hola mundo.

  • En el primer caso, from microbit import * la programación sería: display.scroll('hola mundo')
  • En el segundo caso, import microbit el código debe ser: microbit.display.scroll('hola mundo')

3. Las variables

Las variables se utizan para guardar datos, como números y palabras.

En Python no es necesario indicar qué tipo de datos vamos a guardar en las variables.

En la imagen de la izquierda podéis ver diferentes ejemplos de variables.

Imagen de código Python donde se crean tres variables: Puntuación, Contador, Resto y Reto. A las tres variables se le asigna un valor inicial de 0, 0, 0 y Par o impar, respectivamente.

Para guardar texto en una variable, éste debe ir entre comillas. Por ejemplo: 'Par o impar'.

4. Funciones

Las funciones son trozos de código que podemos llamar desde cualquier parte del programa.

Una función se define de la siguiente forma, def nombre_función(): y en las siguientes líneas, con indentación, el trozo de código de la función.

En la imagen inferior podéis ver un ejemplo de función. Ahora os voy a explicar toda la secuencia, donde cada punto corresponde a un círculo con número de la imagen:

    1. En este punto, con el código inicio(), llamos a la función inicio.
    2. El programa localiza la función definida como def inicio():
    3. Se ejecuta el código que hay dentro de la función inicio.
    4. Cuando se ejecuta todo el código de la función, el programa continúa en este punto.

Imagen donde se ve un ejemplo de la función inicio, que se escribe def inicio(). En la imagen aparecen unos números del uno al cuatro con indicaciones del comportamiento de la función.

En la siguiente imagen de la se muestra un ejemplo de código para encender los LEDs de la placa micro:bit.

Imagen del código para encender los LEDs de la placa micro:bit. Se han señalado las filas y las columnas.

Para que sea más fácil se han numerado las filas y las colunas de LEDs.  Ahora vamos a explicar los números que aparecen en el código:

    • 0 indica led apagado y 9 encendido a máxima luminosidad.
    • La posición son las filas y columnas, los leds 1c, 2b, 2c y 2d están con valor 9.

El resultado lo podemos ver en la siguiente imagen:

Imagen de los veinticinco LEDs de la placa micro:bit.

Seguro que alguien está pensando, ¿se puede controlar el brillo de los LEDs? La respuesta es . 0 corresponde al valor mínimo y 9 al valor máximo.

5. Bucle while True:

Este bucle se puede traducir como mientras sea cierto o por siempre,

Debes saber:

    • No olvidar poner al final los :
    • El código que esté dentro del bucle tiene que estar desplazado a la derecha. En la imagen de la izquierda se representa la indentación con un recuadro discontinuo gris.
    • El código indentado se repetirá siempre.

En la siguiente imagen puedes ver un ejemplo:

Imagen del código de un programa que utilizar el bucle while True o por siempre. Este programa muestra dos corazones una grande y otro pequeño con medio segundo entre ellos.

6. Números aleatorios

En nuestro proyecto es necesario que nuestro programa sea capaz de encontrar números aleatorios y mostrarlos en pantalla. Estos números deben ser números naturales. Por comodidad elegiremos los números: 0, 1, 2, 3, 4, 5, 6, 7, 8 y 9.

En la siguiente imagen tenéis un ejemplo de código.

Imagen donde se ve el código de un programa que muestra números aleatorios del 0 al 9.

En el programa se incluyen los comentarios que ayudan a entender la función que realiza cada línea.

7. Operador módulo

El operador módulo en Python se representa con %. Recordar que este operador devuelve el resto de una división.

Para saber si un número es par, basta con dividir por dos y comprobar el resto de la división. Si el resto es cero, el número será par.

Usaremos la variable resto para almacenar el resultado del operador módulo.

En la siguiente imagen puedes ver un ejemplo de código:

Imagen con el código del programa donde se utiliza el operador módulo. El resultado se guarda en la variable resto. Esta variable la hemos creado junto a la variable número.Debéis tener en cuenta lo siguiente:

    • Si os cuesta trabajo ver los detalles, podéis ver la imagen más grande si hacéis clic sobre ella.
    • Se han subrayado las líneas de código relacionadas con este operador.

8. Condicional if else

Es muy importante que aprendáis a usar correctamente este condicional. Gracias a él, nuestro programa podrá tomar decisiones. En la siguiente imagen se explica cómo funcionan estos condicionales. Tener en cuenta que if lo podemos leer como si.

Imagen donde se ve un diagrama de flujo que explica el funcionamiento del condicional if else.

Todo esto lo podéis ver mucho mejor en la siguiente imagen:

En la imagen se muestra un código de programación que incluye diferentes condicionales if_else.En la imagen anterior podéis ver un código en Python de un programa real. En el programa aparecen unos círculos rojos numerados.

Es importante que os fijéis en el desplazamiento del código o indentación.

A continuación vamos a ver la función que realizan:

    1. Ejecuta unas líneas de código si agitamos la placa. Este if no tiene else.
    2. Si presionamos el botón A, el programa leerá las líneas de código que hay debajo. Este if no utiliza else.
    3. Si presionamos el botón B, el programa leerá las líneas de código que hay debajo. Este if no utiliza else.
    4. Si el resto es igual a cero, mostramos en la panalla de la micro:bit la imagen YES. Si no es igual a cero mostramos la imagen NO.
    5. Si el resto es igual a cero, mostramos en la panalla de la micro:bit la imagen YES. Si no es igual a cero mostramos la imagen NO.

Es interesante que todo esto lo habléis en vuestro grupo y saquéis conclusiones.

9. Ingeniería inversa

Imagen del código final desarrollado por XeniMientras vuestro grupo ha estado trabajando en todos estos contenidos, Xeni también ha estado ocupada.

Nuestra robot ha conseguido desarrollar, con toda la información, un programa totalmente funcional.

Ahora Xeni os pide que apliquéis la ingeniería inversa, que consiste en obtener las respuestas partiendo de un producto terminado.

Lo que tenéis que hacer es ver el código de la imagen de la izquierda e intentar comprender cómo funciona.

Cuando lo consigáis, seréis capaces de realizar el vuestro.

Xeni os recuerda que si hacéis clic sobre la imagen aparecerá todo el código.

¡En vuestras manos está la solución!

Kardia dice ¿Quieres saber más sobre Python?

Cuando trabajamos con un lenguaje de programación, es interesante tener a mano una guía donde se expliquen todas las funciones y nos muestre ejemplos de su uso.

Aquí podéis encontrar la Biblioteca Estándar de Python.

5. Jugamos con el código

Xeni está muy orgullosa de vuestro trabajo. Por eso, os ha preparado el siguiente crucicódigo.

Se trata de un crucigrama sobre palabras relacionadas con el lenguaje de programación Python.

Todas las respuestas están en el apartado anterior.

Esta actividad la podéis hacer por parejas.

6. Escribimos nuestro primer programa

En este ejercicio vuestro grupo deberá rellenar los huecos de este programa para que sea correcto.

1  4. Escribimos nuestro primer programa

2  microbit *

3  . ('Hola Mundo', =1000)

4  True:
5        .show( .HEART, delay=250, clear= )

6 # ---------FIN---------------

Habilitar JavaScript

7. Ahora es tu turno

Hasta ahora habéis trabajado en grupo y en parejas. Xeni quiere verte trabajar de forma individual.

Xeni te ha preparado una serie de ejercicios ordenados en diferentes opciones.

Elige la opción que mejor se adapte a tí, pero si quieres puedes hacerlas todas.

Opción A: Completa el código y ganarás

Debes elegir las palabras que correspondan para que tu programa esté correcto.

Seguro que lo haces bien.

01 Programa realizado con el editor de Python V3
02 microbit import *
03 random
04 =0
05 .show(Image.YES, delay=1000, clear=True)
06 True:
07       numero= .randint(0,9)
08       button_a.get_presses():
09             display.show( , delay=500, clear=True)
10       :
11              display.show( .NO)

Habilitar JavaScript

Opción B: Añadimos comentarios

En esta actividad debes demostrar que comprendes el código. Se trata de añadir los comentarios que expliquen cada línea del programa.

Xeni te recomienda copiar el código en tu cuaderno y añadir los comentarios que se indican.

01 # Debes añadir los comentarios explicando lo que hace cada linea de programa.

02 from microbit import *                                                           # Comentario 1

03 display .scroll('Hola Mundo', delay =1500)                              # Comentario 2

04 while True:                                                                              # Comentario 3
05       display.show(Image. HEART , delay=250, clear= True )    # Comentario 4

01 # Programa realizado con el editor de Python V3
02 from microbit import *                                                            # Comentario 1
03 import random                                                                        # Comentario 2
04 numero =0                                                                              # Comentario 3
05 display .show(Image.YES, delay=1000, clear=True)                 # Comentario 4
06 while True:                                                                               # Comentario 5
07       numero= random .randint(0,9)                                           # Comentario 6
08       if button_a.get_presses():                                                   # Comentario 7
09             display.show( numero , delay=500, clear=True)          # Comentario 8
10       else:                                                                                    # Comentario 9
11              display.show( Image .NO)
                                            # Comentario 10

Opción C: Lo compruebo

¿Te atreves a comprobar el funcionamiento del siguiente programa en el editor de código?

Para hacer esta actividad necesitarás una placa micro:bit y un cable microUSB.

Código:

01 # Debes añadir los comentarios explicando lo que hace cada linea de programa.

02 from microbit import *                                                           # Comentario 1

03 display .scroll('Hola Mundo', delay =1500)                              # Comentario 2

04 while True:                                                                              # Comentario 3
05       display.show(Image. HEART , delay=250, clear= True )    # Comentario 4

01 # Programa realizado con el editor de Python V3
02 from microbit import *                                                            # Comentario 1
03 import random                                                                        # Comentario 2
04 numero =0                                                                              # Comentario 3
05 display .show(Image.YES, delay=1000, clear=True)                 # Comentario 4
06 while True:                                                                               # Comentario 5
07       numero= random .randint(0,9)                                           # Comentario 6
08       if button_a.get_presses():                                                   # Comentario 7
09             display.show( numero , delay=500, clear=True)          # Comentario 8
10       else:                                                                                   # Comentario 9
11              display.show( Image .NO)
                                           # Comentario 10

Puedes acceder al editor de código V3 desde aquí.

Opción D: Soy capaz de mejorarlo

Si has llegado hasta aquí, seguro que eres capaz de mejorar el programa anterior.

¿Te atreves a añadir un funcionalidad al botón B?

Cuando pulsemos el botón B, la placa deberá hacer algo.

¡Tú decides!

8. Reviso lo aprendido

Reflexiona un momento sobre todo lo que has aprendido hasta llegar aquí y completa el PASO 3 (Reviso lo aprendido) de tu Diario de aprendizaje.

Recuerda:

  1. Pregunta a tu profesor o profesora si lo vas a rellenar en papel o en el ordenador.
  2. Si lo rellenas en el ordenador, no te olvides de guardarlo en una carpeta que más tarde puedas loca

¡Ánimo, que lo harás genial!