Saltar la navegación

Entrenamiento 5: Guía de orientación

Cabo Cañaveral, Florida. Estados Unidos. Centro Espacial Kennedy

Lanzamiento de un cohete en Cabo Cañaveral

Ya habéis terminado los entrenamientos de los sensores básicos que van a permitir a tu robot sobrevivir en Marte. Ahora, os toca ayudar al cohete a mantener el rumbo hacia el planeta rojo. Recibís un email de la NASA que solicita vuestra ayuda para poder detectar la inclinación del cohete durante todo el trayecto. Os toca cruzar el Atlántico hasta el Centro Espacial Kennedy, en Cabo Cañaveral, la base de lanzamientos de cohetes espaciales de la NASA.

En este entrenamiento, vais a tener que programar muy bien el acelerómetro de vuestra placa

Guía de orientación

Lista  ¿Qué necesitáis?

En este quinto entrenamiento vais a programar la placa del robot que tenéis asignada utilizando el acelerómetro, como pudisteis ver en el anterior, el acelerómetro puede distinguir entre una sacudida o una inclinación.

Material necesario:

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

Ampliación:

  • Si usais Nehza, podréis conectar dos leds a la placa y hacer que se enciendan dependiendo de la inclinación de la placa, cuando el cohete tenga riesgo de perder el rumbo. 
  • Si usais mBot2, podrás emitir sonidos de alarma cuando el robot se encuentre en peligro.

Información  Operadores lógicos y de comparación

En programación, muchas veces necesitaréis comprobar si una afirmación es verdadera o falsa. Para eso podréis usar dos tipos de herramientas muy importantes: los operadores de comparación y los operadores lógicos.

Los operadores de comparación nos sirven para comparar dos valores. Devuelven como resultado "verdadero" o "falso".

Bloques típicos comparación= igual que 

≠ distinto de 

< menor que

<= menor o igual que 

>= mayor que 

>= menor o igual que 

Los operadores lógicos permiten combinar comparaciones o condiciones. También devuelven "verdadero" o "falso":

Bloques booleanos típicosAND (y): solo es verdadero si ambas condiciones lo son.

OR (o): es verdadero si al menos una condición lo es.

NOT (no): invierte el resultado.

Logo sabías que  ¿Sabíais que...?

KSC

El Centro Espacial Kennedy (KSC) se encuentra en Cabo Cañaveral, en la costa del estado de Florida. Es ampliamente conocido por ser el principal centro de las actividades espaciales de los Estados Unidos, desde donde se hacen los principales lanzamientos de cohetes.

Fue elegido para los lanzamientos de cohetes con el fin de aprovechar la rotación de la Tierra, es un punto muy al sur de Estados Unidos y su ubicación permite aprovechar la velocidad de la Tierra lanzando los cohetes hacia el este con la seguridad de que si algo falla, caerán al mar. 

Lectura facilitada

Cambiar nombre y descripción

Ya habéis terminado los entrenamientos de los sensores básicos.

Ahora os toca ayudar al cohete a mantener el rumbo hacia el planeta rojo.

Recibís un email de la NASA pidiendo vuestra ayuda.

Necesitan saber si el cohete se inclina durante el vuelo.

Vais a cruzar el Atlántico hasta el Centro Espacial Kennedy, en Cabo Cañaveral, Estados Unidos.

Es el lugar donde la NASA lanza sus cohetes.

En este entrenamiento, tendréis que programar bien el acelerómetro del cohete.

Guía de orientación

  ¿Qué necesitáis?

En este quinto entrenamiento vais a programar la placa del robot que tenéis asignada utilizando el acelerómetro.

Material necesario:

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

Ampliación:

  • Si usais Nehza, podréis conectar dos leds a la placa y hacer que se enciendan dependiendo de la inclinación de la placa. 
  • Si usais mBot2, podrás emitir sonidos de alarma cuando el robot se encuentre en peligro.

  Operadores lógicos y de comparación

En programación, muchas veces necesitamos saber si algo es verdadero o falso.

Para hacer esto, usamos dos herramientas muy importantes:

  • Operadores de comparación
  • Operadores lógicos

Los operadores de comparación nos sirven para comparar dos valores.

Devuelven como resultado "verdadero" o "falso".

Bloques típicos comparación= igual que 

≠ distinto de 

< menor que

<= menor o igual que 

>= mayor que 

>= menor o igual que 

Los operadores lógicos permiten combinar comparaciones o condiciones.

También devuelven "verdadero" o "falso":

Bloques booleanos típicosAND (y): solo es verdadero si ambas condiciones lo son.

OR (o): es verdadero si al menos una condición lo es.

NOT (no): invierte el resultado.

  ¿Sabíais que...?

KSC

El Centro Espacial Kennedy (KSC) está en Cabo Cañaveral en la costa del estado de Florida, en Estados Unidos.

Es el lugar más importante de Estados Unidos para los lanzamientos de cohetes.

Desde allí despegan muchas misiones espaciales.

Este lugar fue elegido por una razón especial:

La Tierra gira (rota) muy rápido.

Si se lanza un cohete hacia el este, puede aprovechar la velocidad de la Tierra.

Así, necesita menos energía para salir al espacio.

Además, Cabo Cañaveral está cerca del mar.

Si un cohete falla, cae al agua y no a una ciudad.

Eso lo hace un lugar más seguro.

Programando

Microbit

Objetivo:
Conseguir programar la micro:bit para que muestre en su matriz de leds flechas que apunten hacia una esquina y que indiquen hacia donde está inclinada. En caso de no estar inclinada deberá mostrar una cruz o elemento similar que lo indique.

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

En este caso podéis ver varios bucles para siempre, cada uno compara la aceleración en los ejes x e y, de tal forma que el programa con estructuras "si, entonces" determina el cuadrante al que se debe dirigir la flecha. En caso de que la inclinación sea poca, entre 20 y -20 tanto en el eje x como en el eje y, la matriz de leds mostrará una cruz.

Los bloques para trabajar con la matriz de leds los vais a encontrar en la categoría Básico (azul), los de decisión y los operadores en Lógica (azul turquesa) y el valor de la aceleración en Entrada (fucsia).

Programa sensor de nivel hecho en lenguaje de bloques MakeCode

Recordad:
Para probar el programa en la microbit, abrid el navegador de archivos, y arrastrad el archivo a la unidad microbit.

Cuando finalice el proceso de carga, vereis que la placa espera por un evento de agitación.

 Analizad:

Fijaos que, en el ejemplo, hay varios bucles para siempre. ¿El programa funcionaría igual si pusieseis todas las comparaciones en un solo bucle?

Ampliación: una forma de ir más allá

El programa anterior tiene una variación que lo reduce mucho, sin embargo, hay que entender que la matriz de leds de la microbit se puede usar como pantalla para representar el valor de la aceleración que mide su acelerómetro.

El acelerómetro de la microbit devuelve un valor de inclinación entre -1023 y +1023, para representarlo en una matriz que va a representar desde -2 a 2, debemos dividir el valor del acelerómetro entre 512, tanto para el eje x como para el eje y para después representar el punto que nos da (graficar).

Programa 2 sensor de nivel hecho en lenguaje de bloques MakeCode

Microbit + Nezha

Objetivo:
Conseguir programar la micro:bit en Nezha para que muestre en su matriz de leds flechas que apunten hacia una esquina y que indiquen hacia donde está inclinada. En caso de no estar inclinada deberá mostrar una cruz o elemento similar que lo indique.

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

En este caso podéis ver varios bucles para siempre, cada uno compara la aceleración en los ejes x e y, de tal forma que el programa con estructuras "si, entonces" determina el cuadrante al que se debe dirigir la flecha. En caso de que la inclinación sea poca, entre 20 y -20 tanto en el eje x como en el eje y, la matriz de leds mostrará una cruz.

Los bloques para trabajar con la matriz de leds los vais a encontrar en la categoría Básico (azul), los de decisión y los operadores en Lógica (azul turquesa) y el valor de la aceleración en Entrada (fucsia).

Programa

Recordad:
Para probar el programa en la microbit, abrid el navegador de archivos, y arrastrad el archivo a la unidad microbit.

Cuando finalice el proceso de carga, vereis que la placa espera por un evento de agitación.

 Analizad:

Fijaos que, en el ejemplo, hay varios bucles para siempre. ¿El programa funcionaría igual si pusieseis todas las comparaciones en un solo bucle?

Ampliación: una forma de ir más allá

El programa anterior tiene una variación que lo reduce mucho, sin embargo, hay que entender que la matriz de leds de la microbit se puede usar como pantalla para representar el valor de la aceleración que mide su acelerómetro.

El acelerómetro de la microbit devuelve un valor de inclinación entre -1023 y +1023, para representarlo en una matriz que va a representar desde -2 a 2, debemos dividir el valor del acelerómetro entre 512, tanto para el eje x como para el eje y para después representar el punto que nos da (graficar).

Programa 2 sensor de nivel hecho en lenguaje de bloques MakeCode

Cyberpi

  • Objetivo:

Conseguir programar la Cyberpi que encienda sus leds para que apunten hacia el lado que se inclina (derecha o izquierda), además en su pantalla debe mostrar flechas que indique si está inclinado hacia delante o atrás.

Debéis cargar la extensión Cyberpi para poder acceder a los bloques para trabajar con ella. 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".

En este caso podéis ver que hay dos bucles "por siempre" que comienzan con el mismo evento (la cyberpi se inicia), uno controla los leds traseros y el otro las flechas de la pantalla.

Programa sensor de nivel 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, veréis que la placa espera por un evento de agitación.

Analizad:

Fijaos que, en el ejemplo, hay programados la detección del mismo evento. ¿Podrías hacerlo todo en el mismo bucle?



Cyberpi + Mbot2

  • Objetivo:

Conseguir programar la Cyberpi que encienda sus leds para que apunten hacia el lado que se inclina (derecha o izquierda), además en su pantalla debe mostrar flechas que indique si está inclinado hacia delante o atrás.

Debéis cargar la extensión Cyberpi para poder acceder a los bloques para trabajar con ella. 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".

En este caso podéis ver que hay dos bucles "por siempre" que comienzan con el mismo evento (la cyberpi se inicia), uno controla los leds traseros y el otro las flechas de la pantalla.

Programa sensor de nivel 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, veréis que la placa espera por un evento de agitación.

Analizad:

Fijaos que, en el ejemplo, hay programados la detección del mismo evento. ¿Podrías hacerlo todo en el mismo bucle?


Lectura facilitada

Microbit

Objetivo:
Conseguir programar la micro:bit para:

Muestre en su matriz de leds flechas que apunten hacia una esquina.

Y que indiquen hacia donde está inclinada.

En caso de no estar inclinada deberá mostrar una cruz.

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

En este caso, vais a usar varios bucles “para siempre”.

Cada bucle va a comprobar cómo se mueve el dispositivo.

El programa mide la aceleración en los ejes x e y.

Esto nos dice hacia dónde se inclina el dispositivo.

Con eso, el programa puede decidir en qué dirección debe ir la flecha.

Por ejemplo:

  • Si se inclina hacia la derecha, la flecha irá a la derecha.
  • Si se inclina hacia arriba, la flecha irá hacia arriba.

Si la inclinación es pequeña (entre -20 y 20 en los dos ejes),

la matriz de LEDs mostrará una cruz (+).

Eso significa que el dispositivo está en el centro, sin inclinarse.

¿Dónde están los bloques?

Para crear este programa en MakeCode, ten en cuenta:

  • Los bloques para mostrar la matriz de LEDs están en la categoría Básico (color azul).
  • Los bloques para tomar decisiones (como “si… entonces…”) y operadores (>, <, ==, etc.) están en la categoría Lógica (color azul turquesa).
  • Los bloques para leer el valor de aceleración están en la categoría Entrada (color fucsia).

Programa en MakeCode Micro:bit

Recordad:

Para probar el programa en vuestra micro:bit:

  • Abrid el navegador de archivos.
  • Arrastrad el archivo a la unidad micro:bit.
  • Al terminar la placa espera por un evento de agitación.

 Analizad:

Fijaos que, en el ejemplo, hay varios bucles para siempre.

¿El programa funcionaría igual si pusieseis todas las comparaciones en un solo bucle?

    Ampliación: una forma de ir más allá

El programa anterior tiene una variación que lo reduce mucho.

Pero, hay que entender que la matriz de leds de la microbit se puede usar como pantalla.

Se usa para representar el valor de la aceleración que mide su acelerómetro.

El acelerómetro de la microbit devuelve un valor de inclinación entre -1023 y +1023,

Para representarlo en una matriz que va a representar desde -2 a 2.

Debes dividir el valor del acelerómetro entre 512:

  • Tanto para el eje x
  • Como para el eje y
  • Para después representar el punto que nos da.

Programa

Microbit + Nezha

Objetivo:
Conseguir programar la micro:bit en Nezha para:

Muestre en su matriz de leds flechas que apunten hacia una esquina.

Que indiquen hacia donde está inclinada.

En caso de no estar inclinada deberá mostrar una cruz.

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

En este caso, vais a usar varios bucles “para siempre”.

Cada bucle va a comprobar cómo se mueve el dispositivo.

El programa mide la aceleración en los ejes x e y.

Esto nos dice hacia dónde se inclina el dispositivo.

Con eso, el programa puede decidir en qué dirección debe ir la flecha.

Por ejemplo:

  • Si se inclina hacia la derecha, la flecha irá a la derecha.
  • Si se inclina hacia arriba, la flecha irá hacia arriba.

Si la inclinación es pequeña (entre -20 y 20 en los dos ejes),

La matriz de LEDs mostrará una cruz (+).

Eso significa que el dispositivo está en el centro, sin inclinarse.

¿Dónde están los bloques?

Para crear este programa en MakeCode, ten en cuenta:

  • Los bloques para mostrar la matriz de LEDs están en la categoría Básico (color azul).
  • Los bloques para tomar decisiones (como “si… entonces…”) y operadores (>, <, ==, etc.) están en la categoría Lógica (color azul turquesa).
  • Los bloques para leer el valor de aceleración están en la categoría Entrada (color fucsia).

Programa

Recordad:

Para probar el programa en vuestra micro:bit:

  • Abrid el navegador de archivos.
  • Arrastrad el archivo a la unidad micro:bit.
  • Al terminar la placa espera por un evento de agitación.

 Analizad:

Fijaos que, hay varios bucles para siempre.

¿El programa funcionaría igual si pusieseis todas las comparaciones en un solo bucle?

    Ampliación: una forma de ir más allá

El programa anterior tiene una variación que lo reduce mucho.

Pero, hay que entender que la matriz de leds de la microbit se puede usar como pantalla.

Se usa para representar el valor de la aceleración que mide su acelerómetro.

El acelerómetro de la microbit devuelve un valor de inclinación entre -1023 y +1023,

Para representarlo en una matriz que va a representar desde -2 a 2.

Debes dividir el valor del acelerómetro entre 512:

  • Tanto para el eje x
  • Como para el eje y
  • Para después representar el punto que nos da.
     

Programa

Cyberpi

Objetivo:

Conseguir programar la Cyberpi.

Para encender sus leds.

Y que apunten hacia el lado que se inclina (derecha o izquierda).

Además en su pantalla debe mostrar flechas.

Las flechas indican si está inclinado hacia delante o atrás.

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

Debéis cargar la extensión Cyberpi.

Hay dos bucles "por siempre".

Que comienzan con el mismo evento (la cyberpi se inicia)

  • Uno controla los leds traseros.
  • El otro las flechas de la pantalla.

Prohgrama

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 placa espera por un evento de agitación.

Analizad:

Fijaos que, en el ejemplo, hay programados la detección del mismo evento.

 ¿Podrías hacerlo todo en el mismo bucle?



Cyberpi + Mbot2

Objetivo:

Conseguir programar la Cyberpi.

Para encender sus leds.

Y que apunten hacia el lado que se inclina (derecha o izquierda).

Además en su pantalla debe mostrar flechas.

Las flechas indican si está inclinado hacia delante o atrás.

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

Debéis cargar la extensión Cyberpi.

Hay dos bucles "por siempre".

Que comienzan con el mismo evento (la cyberpi se inicia)

  • Uno controla los leds traseros.
  • El otro las flechas de la pantalla.

Programa

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 placa espera por un evento de agitación.

Analizad:

Fijaos que, en el ejemplo, hay programados la detección del mismo evento. 

¿Podrías hacerlo todo en el mismo bucle?



Un paso más en programación

Si la placa se desestabiliza más de 5 veces, el cohete caerá. Os proponemos un paso más en programación, debéis hacer saltar una alarma en un receptor si la placa se desestabiliza 4 veces.¡Debeis tener nervios de acero para que el cohete se ponga en órbita!

Lectura facilitada

Si la placa se desestabiliza más de 5 veces, el cohete caerá.

Os proponemos un paso más en programación.

Debéis hacer saltar una alarma en un receptor si la placa se desestabiliza 4 veces.

¡Debeis tener nervios de acero para que el cohete se ponga en órbita!

Creado con eXeLearning (Ventana nueva)