Saltar la navegación

3.2. Ex machina: nuestra placa

1. Buscando en el baúl de los recuerdos...Python

Ya que en este recurso continuarás programando en Python, es conveniente que recordéis las características de este lenguaje, que necesitaremos utilizar en la resolución del nuevo reto planteado. Trabajad en grupo, ya que varias mentes pueden aportar más detalles que una, y completad los siguientes apartados con las reglas de este lenguaje para conseguir las operaciones que indican:

Imagen de la pantalla del editor de código Python.

  • ¿Cómo se realiza un comentario en el código Python?
  • Recordad el comando para importar librerías y por qué es necesario hacerlo.
  • En Pytho, como en toos los lengajes, se utilizan las variables. Explicad cómo se definen.
  • ¿Cómo se crean las funciones?
  • Poned un ejemplo de definición y funcionamiento del bucle while True:
  • Explicad el funcionamiento del operado módulo y su posible uso.
  • ¿Cómo funciona la estructura de control if...else:

Material para recordar

A continuación disponéis de 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 unused, 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 para determinar la posición inicial de un punto. Estos números deben ser números naturales. Por comodidad elegiremos los números: 0, 1, 2, 3 y 4, ya que la matriz de luces de la placa tiene 5 filas y 5 columnas.

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 de un código final desarrollado.A continuación tenéis a la derecha un programa totalmente funcional.

Ahora se 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.

Recordad 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í os dejo información muy interesante sobre Python:

2. ¿Es una placa, es una controladora? ¡Es Micro:Bit!

Para realizar nuestro proyecto vamos a utilizar la placa controladora micro:bit. Seguramente hayas utilizado en algún momento esta placa, pero aún así seguro que te resulta de utilidad esta revisión. Así, tienes alguna duda o quieres aprender algún aspecto nuevo sobre la placa, consulta los siguientes vídeos:

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 si lo necesitas puedes activar los subtítulos del video y elegir el idioma que prefieras.

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í podé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.


Recuerda que si lo necesitas puedes activar los subtítulos del video y elegir el idioma que prefieras.

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í 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.


Recuerda que si lo necesitas puedes activar los subtítulos del video y elegir el idioma que prefieras.

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í 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.


Recuerda que si lo necesitas puedes activar los subtítulos del video y elegir el idioma que prefieras.

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í podéis acceder al contenido de la página botones.

Sonidos

¿Queréis incluir sonidos en vuestros proyectos?

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


Recuerda que si lo necesitas puedes activar los subtítulos del video y elegir el idioma que prefieras.

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í podéis acceder al contenido de la página Salida de sonido.

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

Es un componente físico programable, que permite controlar el funcionamiento de una máquina.

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 acceder a la Guía del usuario

3. Adapta tus conocimientos, valor y ¡a la placa!

En esta actividad vas a encontrar la información necesaria para realizar con éxito el reto. Seguramente ya conozcas, por recursos anteriores u otras materias, la estructura de un programa en Python, e incluso las reglas de la POO que también habrás aplicado en Python. Sin embargo, ahora necesitarás adaptar dicha estructura de programa y de clases en POO que has trabajado previamente, a la utilizada por la placa micro:bit y su editor de Python. Conócela aqui:

1. 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 ha 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 descripción 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.

2. 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. Ensayo general: primer programa micro:bit

En este ejercicio debes rellenar los huecos del 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

5. Sigue probando...segundo programa micro:bit

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

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

6. La importacia de un comentario oportuno

Para que nuestro código sea elegante, limpio y fácil de mantener, se debe acompañar de comentarios explicativos del por qué de las operaciones que se van realizando en el mismo. Esto hará que otras personas que retomen dicha programación, podrán realizar cambios necesarios u optimizaciones en los lugares adecuados del código.

Por eso, a continuación, en esta actividad debes demostrar que comprendes el código. Se trata de añadir los comentarios que expliquen cada línea de los dos programas que aparecen a continuación:

01 # Añade los comentarios explicando lo que hace cada linea del programa 1.

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 # Añade los comentarios explicando lo que hace cada linea del programa 2.
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

¡Recuerda! Elije palabras precisas para que sean concisos y claros.

Kardia dice Una ayuda muy inteligente

El año 2022 será recordado por el año en el que hubo una explosión desbordante de Inteligencias Artificiales revolucionaras, al alcance del usuario medio, y con distintas funcionalidades como, IAs para la generación de imágenes a partir de texto como StableDifussion o como DALLE-2; transcriptores de audio a texto tan alucinantes como whisper ; o generadores de texto como PaLM o la nueva IA de openai,  chatGPT, que, al igual que AlphaCODE, permiten generar código computacional a partir de lenguaje natural. 

Te invito que pruebes una de estas para generar el código del ejercicio anterior y sus correspondientes comentarios. Para hacerlo:

  1. Entra en la web de chatGPT.
  2. Regístrate.
  3. Inicia un nuevo chat.
  4. Introduce las entradas de texto que consideres para que chatGPT te genere el código para micro:bit en Python que, realice las mismas funciones de los dos ejemplos anteriores.
  5. Prueba el código generado en el editor de código micro:bit.
  6. Comparte los resultados.