Saltar la navegación

Entrenamiento 2: Anochecer marciano

Noordwijk, Países Bajos. ESTEC (Centro Europeo de Investigación y Tecnología Espacial)

Centro ESTEC de la Agencia Espacial Europea

Después de haber terminado el primer entrenamiento, habéis encontrado un patrón extraño en los datos del sistema, un algoritmo camuflado que deberéis modificar para dotar a vuestro robot de un detector de luz. Recibís otra nota que os llevará al corazón de la Agencia Espacial Europea: el ESTEC, en los Países Bajos. Allí, os espera vuestra segunda misión: programar a vuestro robot para que sea capaz de encender una luz automáticamente si entra en una cueva o se hace de noche en Marte.

Anochecer marciano

Icono lista ¿Qué necesitáis?

En este segundo entrenamiento vais a programar la placa del robot que tenéis asignada utilizando un sensor de luminosidad, ya que tanto Cyberpi como micro:bit tienen un sensor incorporado. En robótica y automatización, los sensores son fundamentales para que los sistemas obtengan información del entorno.

Material necesario:

  • Ordenador
  • Cable USB para cargar el programa
  • Placa microcontroladora (Micro:bit o Cyberpi)

Ampliación:

  • Si usáis Ring:bit Car, podréis encender los leds RGB que vienen en el chasis con la extensión Neopixel.
  • Si usáis Nehza, podréis conectar un led a la placa y hacer que encienda cuando la luminosidad baje.
  • Si usáis mBot2, podréis encender los leds traseros cuando la luminosidad sea escasa.

Icono información Estructura de programación if ... then ... else

Estructura if ... then ... else

La estructura if-then-else (si-entonces-si no) es una estructura que se puede utilizar en programación para establecer condiciones y actuar en consecuencia. Es decir, es posible indicar a nuestra placa: "Si (if) pasa esto, entonces (then) haz esto; si no pasa (else), haz aquello". Es una estructura de programación fundamental porque permite tomar decisiones basadas en el cumplimiento de condiciones.

¿Se os ocurre cómo podríais usarla para detectar luz del entorno de tu robot?

Icono con interrogación ¿Sabíais que...?

Logotipo de la Agencia Espacial Europea (ESA)

El Centro Europeo de Investigación y Tecnología Espacial o ESTEC es el principal centro de investigación y desarrollo de la Agencia Espacial Europea (ESA) para naves y tecnología espacial en general.

En el ESTEC se trabaja en el diseño de misiones, naves, satélites y tecnología espacial, y cuenta con unas grandes instalaciones para poder realizar pruebas y verificaciones sobre la fiabilidad de los sistemas antes de ser enviados al espacio. Casi todos los equipos que la ESA pone en órbita son previamente testados y probados en el ESTEC.​

Lectura facilitada

Centro ESTEC de la Agencia Espacial Europea

Ya habéis terminado el primer entrenamiento.

Pero algo raro aparece en los datos del sistema.

Descubrís un mensaje oculto: un programa secreto.

Ese código servirá para que el robot detecte si hay luz o no.

Recibís una nueva nota con unas coordenadas y un destino:

La sede de la Agencia Espacial Europea (ESA), en los Países Bajos.

Viajáis hasta el ESTEC, su centro de investigación.

Allí empieza vuestra segunda misión:

Programar el robot para que encienda una luz si entra en una cueva o si se hace de noche en Marte.

Anochecer marciano

Icono lista ¿Qué necesitáis?

Ahora vais a usar un sensor de luz.

Las placas Cyberpi y micro:bit ya traen uno incorporado.

Estos sensores ayudan al robot a saber si hay mucha o poca luz.

Material necesario:

  • Ordenador
  • Cable USB
  • Placa controladora (micro:bit o Cyberpi)

Ampliación:

  • Si usáis Ring:bit Car, podréis encender los leds del chasis con Neopixel.
  • Si usáis Nehza, podréis conectar un led que se encienda cuando haya poca luz.
  • Si usáis mBot2, podréis encender los leds traseros cuando se haga de noche.

Icono información ¿Qué es "si... entonces... si no"?

Estructura if ... then ... else

En programación, usamos bloques como:

Si pasa algo → entonces hacer esto.

Si no pasa → hacer otra cosa.

Por ejemplo:

Si hay poca luz, entonces encender una luz.

Si no, dejarla apagada.

Esto se llama estructura “if - then - else”.

Sirve para que el robot tome decisiones.

¿Podríais usarla en vuestro programa?

Icono con interrogación ¿Sabíais que...?

Logotipo de la Agencia Espacial Europea (ESA)

El ESTEC es el gran centro de pruebas de la Agencia Espacial Europea.

Allí diseñan y prueban misiones espaciales.

Verifican que todo funcione antes de lanzarlo al espacio.

¡Casi todos los satélites de la ESA pasan por aquí!

Programando

Microbit

Objetivo:

Conseguir programar la micro:bit para que muestre un dibujo de un sol en la matriz de leds si hay poca luz alrededor, y apagarlos si hay luz suficiente.

Entorno de programación: MakeCode (Abre en ventana nueva).

Los bloques para trabajar con la matriz de leds los vais a encontrar en la categoría Básico (azul) y los de decisión en la categoría Lógica (azul turquesa)
Programa Sensor de luminosidad hecho en lenguaje de bloques makeCode

Recordad:

Para probar el programa en vuestra micro:bit, abrid el navegador de archivos y arrastrad el archivo a la unidad micro:bit.

Cuando finalice el proceso de carga, veréis que la placa dibuja un sol en su matriz de leds.

Analizad:

Si os fijáis, para hacer este programa se ha escrito un bucle infinito (bloque "para siempre"). De este modo, se recibe constantemente información sobre la cantidad de luz en el ambiente (a través de la matriz de LEDs) y se compara con el umbral necesario para encender la luz.

Ampliación: Ring:bit car

Una variación de esta práctica es usar un Ring:bit Car y programar el encendido de sus leds RGB cuando sea necesario, para ello, tenéis que añadir la extensión RingbitCar.

Pulsad en (+ Extensiones) y en el buscador, escribid ringbit y seleccionad la extensión "RingbitCar". Esto os permitirá controlar los servomotores del coche y añadirá la extensión NeoPixel que sirve para controlar las luces tipo NeoPixel que tiene el coche, son dos leds RGB que están en la parte inferior y se pueden poner de distintos colores.

Programa Sensor de luminosidad hecho en lenguaje de bloques makeCode para micro:bit en ringbit:Car con extensión Neopixel

Microbit + Nezha

Objetivo:

Conseguir programar la micro:bit para que, al encenderla, aparezca un mensaje inicial diciendo que ya está lista para medir la luz, dibuje un sol en su matriz de leds y encienda un led externo conectado a la salida uno de Nezha cuando no haya luz en el entorno.

Entorno de programación: MakeCode (Abre en ventana nueva).

Los bloques para trabajar con la matriz de leds los vais a encontrar en la categoría Básico (azul), los de decisión en la categoría Lógica (azul turquesa) y para conseguir que el led parpadee usaréis los que están en la categoría Pines (rojo oscuro) en el apartado Avanzado.

Programa Sensor de luminosidad hecho en lenguaje de bloques makeCode

Recordad:

Para probar el programa en vuestra micro:bit, abrid el navegador de archivos, y arrastrad el archivo a la unidad micro:bit.

Cuando finalice el proceso de carga, veréis que la placa muestra "preparado", dibuja un sol en su matriz de leds y enciende el led si no hay luz y los apaga si la hay.

Analizad:

Si os fijáis, para hacer este programa se ha escrito un bucle infinito (bloque "para siempre"). Así se recibe continuamente información sobre la cantidad de luz en el ambiente (a través de la matriz de leds) y se compara con un umbral para decidir si se debe encender la luz.




Cyberpi

Objetivo:

Conseguir programar la Cyberpi para que funcione como un detector de oscuridad. Debe encender su tira de leds cuando no haya luz en el entorno y apagarlas si hay luz ambiente.

Entorno de programación: mBlock (Abre en ventana nueva).

Debéis cargar la extensión Cyberpi para poder acceder a los bloques para trabajar con ella.

Programa Sensor de luminosidad hecho en lenguaje de bloques Mblock5

Recordad:

En el entorno de programación mBlock5 podéis subir el programa a la memoria de la tarjeta o probarlo en comunicación "en vivo".

Cuando finalice el proceso de carga, la tarjeta debe encender su tira de leds cuando no haya luz en el entorno y apagarla si hay luz ambiente.

Analizad:

Si os fijáis, para hacer este programa se ha escrito una condición: “si la intensidad de luz es menor que 1, entonces enciende la tira LED; si no, apágala”.

¿Qué creéis que pasaría si se usara una comparación con “mayor que”?



Cyberpi + Mbot2

Objetivo:

Conseguir programar la Cyberpi para que funcione como un detector de oscuridad. Debe encender su tira de leds cuando no haya luz en el entorno y apagarlas si hay luz ambiente.

Entorno de programación: mBlock (Abre en ventana nueva).

Debéis cargar la extensión mBot2 para poder acceder a los bloques para trabajar con él.

Programa Sensor de luminosidad hecho en lenguaje de bloques Mblock5

Recordad:

En el entorno de programación mBlock5 podéis subir el programa a la memoria de la tarjeta o probarlo en comunicación "en vivo".

Cuando finalice el proceso de carga, la tarjeta debe encender su tira de leds, las luces del sensor de ultrasonidos y los leds del seguidor de línea cuando no haya luz en el entorno y apagarla si hay luz ambiente.

Analizad:

Si os fijáis, para hacer este programa se ha escrito una condición: “si la intensidad de luz es menor que 1, entonces enciende la tira LED; si no, apágala”.

¿Qué creéis que pasaría si se utilizase una comparación con “mayor que”?



Lectura facilitada

Microbit

Objetivo:

Conseguir programar la micro:bit para:

Muestre un dibujo de un sol en los leds si hay poca luz.

Apagar los leds si hay luz suficiente.

Entorno de programación: MakeCode (Abre en ventana nueva).

Los bloques para trabajar con leds están en la categoría Básico (azul)

Los bloques de decicisión en la categoría Lógica (azul turquesa)

Recordad:

Para probar el programa en vuestra micro:bit:

  • Abrid el navegador de archivos.
  • Arrastrad el archivo a la unidad micro:bit.
  • Al terminar, veréis que la placa dibuja un sol en los leds.

Analizad:

  • Para hacer este programa se ha escrito un bucle infinito (bloque "para siempre").
  • Se recibe constantemente información sobre la cantidad de luz en el ambiente.
  • Se compara con el umbral necesario para encender la luz.

Ampliación: Ring:bit car

Una variación de esta práctica es usar un Ring:bit Car.

Para programar el encendido de sus leds RGB hay que añadir la extensión RingbitCar.

  • Pulsad en (+ Extensiones).
  • En el buscador, escribid ringbit.
  • Seleccionad la extensión "RingbitCar".

Esto os permitirá controlar los servomotores del coche.

Añadirá la extensión NeoPixel

Que sirve para controlar las luces tipo NeoPixel que tiene el coche.

Son dos leds RGB que están en la parte inferior.

Se pueden poner de distintos colores.

Microbit + Nehza

Objetivo:

Conseguir programar la micro:bit.

  • Cuando se encienda , debe aparecer un mensaje diciendo que está lista para medir la luz.
  • Después, debe dibujar un sol en la pantalla de luces (LEDs).
  • Cuando no haya luz en el sitio, debe encender un LED externo conectado a la salida P1.

Entorno de programación: MakeCode (Abre en ventana nueva).

  • Los bloques para dibujar en la pantalla de la micro:bit están en la categoría "Básico" (color azul).
  • Los bloques para tomar decisiones como "si no hay luz, hacer algo", están en la categoría "Lógica" (color azul turquesa).
  • Los bloques para usar cables o luces externas están en la categoría "Pines" (color rojo oscuro), dentro de "Avanzado".

Recordad:

Para probar el programa en vuestra micro:bit:

  • Abre el navegador de archivos de tu ordenador.

(Es donde ves tus carpetas y documentos).

  • Busca el archivo del programa que has creado.
  • Arrastra ese archivo a la unidad llamada micro:bit.
    (La micro:bit aparece como si fuera un USB).
  • Espera unos segundos.
    Cuando termine de cargar, la micro:bit mostrará el mensaje:
    "Preparado"

¿Qué hace el programa?

Dibuja un sol en la pantalla de luces (matriz de LEDs).

  • Si hay poca luz (está oscuro):
    Se enciende el LED externo.
  • Si hay luz:
    El LED externo se apaga.

Analizad:

En este programa usamos un bloque llamado "para siempre".

Esto significa que el programa nunca se detiene.

Está repitiendo lo mismo todo el tiempo.



Cyberpi

Objetivo:

Conseguir programar la Cyberpi.

Para que funcione como un detector de oscuridad.

  • Debe encender su tira de leds cuando no haya luz.
  • Debe apagar los leds hay luz ambiente.

Entorno de programación: mBlock (Abre en ventana nueva).

Debéis cargar la extensión Cyberpi.

Recordad:

En el programa mBlock5, puedes hacer dos cosas:

  • Subir el programa a la memoria de la tarjeta.
  • Probarlo en vivo, mientras la tarjeta está conectada.

Cuando termina de cargar el programa:

  • La tira de LEDs se enciende si no hay luz en el ambiente.
  • La tira se apaga si sí hay luz.

Analizad:

En este programa se usa una condición.

Eso significa que el programa elige qué hacer según una regla.

La condición es:

"Si la luz es menor que 1, enciende la tira LED. Si no, apágala."

¿Qué creéis que pasaría si se usara una comparación con “mayor que”?



Cyberpi + Mbot2

Objetivo:

Conseguir programar la Cyberpi.

Para que funcione como un detector de oscuridad.

  • Debe encender su tira de leds cuando no haya luz.
  • Debe apagar los leds hay luz ambiente.

Entorno de programación: mBlock (Abre en ventana nueva).

Debéis cargar la extensión mBot2.

Recordad:

En el programa mBlock5, puedes hacer dos cosas:

  • Subir el programa a la memoria de la tarjeta.
  • Probarlo en vivo, mientras la tarjeta está conectada.

Cuando termina de cargar el programa:

  • La tira de LEDs se enciende si no hay luz en el ambiente.
  • La tira se apaga si sí hay luz.

Analizad:

En este programa se usa una condición.

Eso significa que el programa elige qué hacer según una regla.

La condición es:

"Si la luz es menor que 1, enciende la tira LED. Si no, apágala."

¿Qué creéis que pasaría si se utilizase una comparación con “mayor que”?



Un paso más en programación

Después de haber hecho este segundo entrenamiento, ¿os atrevéis a dar un paso más.? Debéis hacer que vuestra placa responda a diferentes niveles de luz con diferentes mensajes, por ejemplo,

  • Microbit: si hay muy poca luz, debe mostrar un sol; si hay luz intermedia, debe mostrar una carita sonriente y si hay mucha luz, no debe mostrar nada.
  • Cyberpi: si hay muy poca luz, debe encender todos los leds; si hay luz intermedia, debe encender tres leds y si hay mucha luz, no debe encender ninguno.

Lectura facilitada

¿Os atrevéis a dar un paso más.?

Debéis hacer que vuestra placa responda a diferentes niveles de luz con diferentes mensajes:

Microbit:

  • Si hay muy poca luz mostrar un sol.
  • Si hay luz intermedia mostrar una carita sonriente.
  • Si hay mucha luz, no debe mostrar nada.

Cyberpi:

  • Si hay muy poca luz encender todos los leds
  • Si hay luz intermedia encender tres leds
  • Si hay mucha luz, no encender  ninguno.

Creado con eXeLearning (Ventana nueva)