Guía 3 · Nivel 1

Programando en la granja

Hoy harás que tus programas puedan recordar información, crear copias de objetos y cambiar de comportamiento según lo que ocurre. Primero explorarás variables y clones en Scratch y después llevarás esas ideas a Octabio con sensores y eventos.

Guía: 3 · Nivel 1
Duración: 3 horas y 30 minutos
Ruta: Scratch + Octabio
?

Pregunta guía: ¿cómo logramos que un programa recuerde información, la modifique y la use para tomar decisiones? ¿en qué programas esto nos sería útil?

Briefing

Ahora tus programas podrán recordar

En las misiones anteriores construiste algoritmos, tomaste decisiones con condicionales, repetiste acciones con bucles y usaste sensores para reaccionar.

Hoy agregaremos algo nuevo: guardar información mientras el programa está funcionando.
1Recordar

Guardar un valor.

2Cambiar

Actualizarlo cuando ocurre algo.

3Usar

Tomar decisiones con ese valor.

Octabio en una granja tecnológica observando un tablero con los valores de las variables
Activación

Antes de avanzar, activa lo que ya sabes

Sensor

Sensor detectando algo del entorno

Detecta algo del entorno y lo convierte en información que el programa puede usar.

¿Qué entrega un sensor al programa?

Condicional

Bloque si… entonces de Scratch

Permite decidir qué instrucciones ejecutar según se cumpla o no una condición.

¿Qué hace el condicional si la condición es falsa?

Bucle

Bloque repetir de Scratch

Permite repetir un bloque de instrucciones un número fijo de veces o para siempre.

¿Qué hace el bloque "por siempre"?

Octabio

Octabio saludando con luces y pantalla

Es un robot programable que detecta su entorno con sensores y se comunica por medio de elementos visuales o de sonido.

¿Cómo puede Octabio mostrar información?

Detecta el problema

Tu juego reacciona… ¿pero puede contar?

El código de la imagen reacciona cada vez que tocas una manzana, pero no sabe…

  • ¿cuántas manzanas recogiste?
  • ¿cuántos puntos llevas?
  • ¿cuánto tiempo ha pasado?
?

Pregunta clave: ¿cómo podría el programa saber todos estos datos? ¿cómo podría guardarlos todos a la vez?

Un cursor tocando manzanas mientras el programa pregunta cuántas lleva
Nuevo concepto

La solución: una variable guarda información que puede cambiar

Una variable tiene un nombre y un valor. El nombre nos ayuda a reconocer qué información guarda; el valor es el dato actual.

Manzanas

Valor: 0

Gallinas

Valor: 3

Estado

Valor: Feliz

El nombre puede permanecer igual mientras el valor cambia durante la ejecución.
Una caja etiquetada Manzanas cuyo contenido cambia de 0 a 3
Demostración

Llena el cesto y mira cómo cambia la variable

Cada botón es un evento que cambia el valor de la variable Manzanas.

🌳 🍎 🍎 🍎
🧺
🍎 🍎
Manzanas0

La variable Manzanas nos permite llevar la cuenta de cuántas manzanas tenemos en el cesto.

¿Qué permanece?

La variable sigue llamándose Manzanas; lo que cambia es su valor.

🎯

Reto: deja exactamente 8 manzanas en el cesto.Faltan 8 manzanas.

En este ejemplo una variable te ayuda a contar manzanas, pero podrías contar vidas en un videojuego, sumar puntos, guardar nombres, entre otra información.

Scratch

Los bloques de una variable

En Scratch, cuando creas una variable, tienes 3 bloques principales para trabajar con ella.

Fijar variable

Pone el valor que indiques.

Cambiar variable

Suma el valor que le des; si pones un número con , lo resta (−1).

Bloque redondo con el nombre

Te permite obtener el valor de la variable.

!

Estas variables se pueden mostrar u ocultar en el escenario.

Cómo crear y manipular variables en Scratch
Ahora es tu turno

Tu primer ejercicio con variables

Ahora es tu turno: crea una variable, muéstrala en el escenario, usa bloques para modificar su valor y mira cómo cambia.

Cada vez que presiones el personaje, este te debe decir el valor de la variable, como se muestra en el gif.

🎯

Reto: haz que el objeto diga el valor de la variable cada vez que lo presiones.

Ejemplo de una variable que cambia y el personaje dice su valor
Nuevo concepto

Un clon permite que un mismo objeto aparezca varias veces

Un clon es una copia idéntica de un objeto original que se crea mientras el programa está funcionando. Así podemos hacer que un mismo personaje o elemento aparezca muchas veces sin crearlo manualmente uno por uno.

Objeto original

Es el objeto principal del que se crean las copias.

Clon

Es una copia idéntica del objeto original creada durante la ejecución.

Muchos clones

Podemos crear varias copias del mismo objeto automáticamente.

Acciones por separado

Los clones, una vez creados, pueden realizar acciones por separado.

Un objeto original de manzana y varios clones de manzanas
Scratch

Los bloques de un clon

En Scratch, para trabajar con clones usas 3 bloques principales.

Crear clon de mí mismo

Crea una copia del objeto actual.

Al comenzar como clon

Cada vez que se crea un clon del objeto, este bloque ejecuta las acciones que programes para el comportamiento del clon.

Eliminar este clon

Borra el clon cuando ya no se necesita.

Los tres bloques de control de clones de Scratch
!

Los clones nacen y mueren mientras el programa se ejecuta; el objeto original siempre permanece.

Miniproyecto

Atrapa la cosecha

¡La cosecha está lista, pero hay un problema! Las manzanas no permanecerán frescas para siempre.

Tu misión

Es rescatar la mayor cantidad posible de manzanas antes de que sea demasiado tarde. Cada manzana que salves aumentará tu contador de Manzanas recolectadas.

Primera parte: preparamos el escenario y los personajes del juego.
Segunda parte: programamos el juego y trataremos de recolectar todas las manzanas posibles.
Grabación de la cosecha de manzanas con el contador subiendo Esto es lo que lograrás al final de la programación.
Primera parte

Preparamos el escenario y los personajes

Sigue estos pasos para dejar listo tu proyecto.

1

Prepara el escenario

Agrega el fondo Blue Sky.

Fondo Blue sky
2

Agrega los objetos

Agrega el objeto Tree1, cambia el tamaño a 150 y ponlo en x = −21, y = −31.

Agrega el objeto Apple y cambia el tamaño a 50.

Sprite Tree1Sprite Apple
3

Cambiar el color de un objeto

Para cambiar el color de un objeto, primero duplica su disfraz para conservar el original. Luego selecciona la parte a modificar, usa la herramienta de relleno y elige el nuevo color.

Gif: cómo cambiar el color de relleno de un objeto
Miniproyecto

¡Programa la recolección de las manzanas!

Para hacer la programación, primero ve al objeto llamado apple y crea la variable Manzanas recolectadas para llevar la cuenta. Luego, comienza la programación creando los clones de las manzanas aparecerán en posiciones aleatorias dentro del árbol; si alguno aparece fuera, se eliminará. Cada vez que recojas una manzana con el puntero del mouse, el contador aumentará en 1.

Copia la programación y ejecútala para descubrir cómo crear clones de las manzanas y recolectarlas usando el puntero del mouse.

Programación de la recolección de manzanas
Reto extra

¡Atrapa las manzanas antes de que se acabe el tiempo!

En este reto crearás una nueva programación usando el cambio de disfraz que preparaste anteriormente. Tendrás que recoger las manzanas lo más rápido posible antes de que pase el tiempo y cambien a su disfraz de manzana podrida. Si no las atrapas a tiempo, ya no podrás recolectarlas.

Copia la programación y ejecútala.

Programación del reto extra de las manzanas
Del mundo virtual al físico

Las variables también pueden recordar lo que ocurre fuera de la pantalla

En Scratch

Tocar una manzana puede aumentar un contador.

En Octabio

Presionar un botón, aplaudir o mover el dispositivo también puede modificar una variable.

Cambia el tipo de evento, pero la idea de programación sigue siendo la misma.
Transición de Scratch a Octabio: una variable que cambia de 2 a 3
Sensores y eventos

Los eventos de Octabio

Los eventos usan los sensores internos de Octabio para detectar cuándo se cumple la condición del evento y ejecutar el algoritmo programado para cada evento.

  • Al iniciar: es el evento principal; se ejecuta cuando enciendes Octabio.
  • Al sacudir: cuando sacudas a Octabio, realiza todas las instrucciones que encajes debajo.
  • Al presionar el botón auxiliar: cuando presiones el botón lateral, realiza todas las instrucciones que encajes debajo.
  • Al aplaudir: cuando aplaudas, realiza todas las instrucciones que encajes debajo. Puedes seleccionar cuántos aplausos quieres y el nivel de precisión.
  • Al girar a la derecha: cuando inclines a Octabio a la derecha, realiza todas las instrucciones que encajes debajo. También hay un evento para cuando giras a Octabio a la izquierda.
Bloques de eventos de Octabio
Octabio · Miniproyecto 1

Convierte el botón lateral en un contador

Cada vez que presiones el botón lateral, Octabio debe aumentar una variable y mostrar el resultado en pantalla. Cuando Octabio se sacude, la cuenta vuelve a 0.

Código del contador de pulsaciones
!

La pantalla debe limpiarse antes de escribir de nuevo para que la información no se superponga.

Silueta de Octabio 0
Octabio · Miniproyecto 2

Cronómetro con Octabio

Vas a empezar creando un cronómetro que te permita medir cuánto tiempo mantienes presionado el botón. Para esto usarás una variable que cambiará de la siguiente forma:

  • Si el botón está presionado, irá incrementando una unidad por cada segundo.
  • Si el botón no está presionado, dejará de contar.
Código del cronómetro con la variable tiempo

Reto extra: usa animaciones de luces que se ponen verdes mientras tienes presionado el botón y rojas cuando lo sueltas.

Silueta de Octabio 0
Nuevo uso de las variables

Una variable también puede guardar cómo está un sistema

Cuando quiero realizar una acción dependiendo de cómo estaba antes un sistema, necesito almacenar el estado anterior en una variable. Así podría invertir el estado anterior para, por ejemplo, encender y apagar unas luces.

OFF

Luces apagadas

ON

Luces encendidas

Imagina una lámpara con interruptor: para saber si debo prenderla o apagarla, primero recuerdo si estaba ON u OFF. Ese recuerdo es una variable de estado.

Con el mismo aplauso: si la luz está ON, la apago; si está OFF, la enciendo. La variable guarda el estado anterior para poder invertirlo.

La variable recuerda el estado anterior para decidir la acción siguiente.
Los estados de un sistema: OFF y ON
Octabio · Miniproyecto 3

Casa inteligente

Vamos a controlar el encendido y apagado de las luces de una casa con ayuda de Octabio, para ayudar a una persona con discapacidad que no puede moverse hasta el interruptor.

Octabio usará el aplauso como interruptor: con cada aplauso invertirá el estado de las luces. El programa guarda en una variable el estado anterior (ON u OFF): si está ON, las apaga; si está OFF, las enciende. Así, con el mismo código, un aplauso enciende y el siguiente apaga.

Código de la casa inteligente

Reto: en la pantalla, Octabio debe mostrar "APAGADO" cuando el estado es OFF y "ENCENDIDO" cuando es ON.

Silueta de Octabio APAGADO
👏
Misión final con Octabio

Octagochi: una mascota robot

En este miniproyecto vas a ir un paso más allá: vas a programar una mascota robot que tiene estados emocionales, reacciona a lo que pasa a su alrededor y combina animación, sonidos y sensores, para crear un robot con personalidad y emociones.

Tu mascota reaccionará al entorno usando los sensores internos y la activación de eventos. Primero vamos a definir cómo se va a comportar:

Sereno

Siempre tranquilo hasta que interactúas con él.

Enojado

Los ruidos fuertes (aplausos o golpes) lo enojan.

Mareado

Se marea cuando lo sacudes.

Dormido

Al girarlo a la derecha se queda dormido.

Feliz

Se pone feliz al presionar el botón.

Animación de la mascota Octagochi con sus emociones
Bloques nuevos

Los bloques de animación de tu mascota

Con tres bloques de animación controlas cómo se ve y cómo se expresa tu mascota.

Bloque iniciar animación

Iniciar animación

Configura la pantalla para mostrar animaciones.

Bloque establecer estado

Establecer estado

Elige el estado o la emoción a expresar. Puedes configurar qué tan intensa es la emoción y qué tan rápido cambia la animación.

Bloque establecer parpadeo

Establecer parpadeo

Hace parpadear la animación; puedes configurar la velocidad con la que parpadea.

Construye el algoritmo

Cómo crear el algoritmo de la mascota

Cada reacción de la mascota inicia con un bloque de evento. Ahora te explicamos paso a paso qué hace cada evento para que entiendas mejor el programa.

Al iniciar

Configura el estado de la animación como sereno, inicia la animación y finalmente parpadea cada 2 segundos para siempre. Esto hace que la mascota se vea mucho más real.

Al presionar el botón

Cambia el estado a feliz, reproduce un sonido de emoción y espera dos segundos. Luego vuelve a poner el estado de animación sereno.

Al sacudir

Cambia el estado a mareado, reproduce un sonido y espera dos segundos. Luego vuelve a poner el estado de animación sereno.

Al aplaudir

Cambia el estado a enojado, reproduce un sonido de enojo y espera dos segundos. Luego vuelve a poner el estado de animación sereno.

Al girar a la derecha

Cambia el estado a dormir, reproduce un sonido de reposo y se queda dormido. Solo cambia de estado cuando activas otro evento.

!

El evento al girar a la derecha es muy sensible y puede activarse fácilmente. Baja la sensibilidad y diferencia bien los movimientos de sacudir y girar a la derecha para que el robot no se confunda.

MiniTest

Comprueba lo que aprendiste

No buscamos memoria: buscamos que puedas explicar la lógica.

Cierre

Hoy tus programas aprendieron a recordar

Creaste variables para contar y medir tiempo, usaste clones para llenar el escenario de manzanas y llevaste esas ideas a Octabio: contadores, cronómetros, luces que recuerdan su estado (ON/OFF) y hasta una mascota con emociones.

La idea que conecta toda la guía

Ocurre algo → guardamos o cambiamos información → el programa usa esa información → ocurre una respuesta.

VariableContadorClonEventoEstado ON/OFFSensores

Bitácora de salida

Escribe una respuesta corta: