---
layout: activity
title: "¡El Desafío de Activación del Robot!"
image: src/16.4-robot-activation-challenge/16.4-desafio-activacion-del-robot.svg

video: src/videos/16.4_robot_activation_challenge.mp4
video_title: "¿Qué haremos?"
description: "Dale 'memoria' a tu robot. Aprende a usar variables para contar eventos y crea un divertido juego de toques para cargar de energía a tu personaje."
lang: es
permalink: /es/actividades/el-desafio-de-activacion-del-robot/
ref: activity_robot_activation_challenge

# ACTIVITY INFO
level: 1
computational_topics:
  - "Condicionales y Lógica"
  - "Variables y Datos"
  - "Temporización y Eventos"
  - "Bucles"
general_topics:
  - "Matemáticas y Lógica"
  - "Vida Cotidiana"

tags: [Variables, Contador, Eventos, Memoria de Programa, Entrada de Usuario, Juego, Condicionales, Si-Sino, Secuencia]

introduction: |
  Nuestro robot cosquilloso ya sabe reaccionar, ¡pero no recuerda nada! ¿Y si quisiéramos contar cuántas veces le hemos hecho cosquillas? Para eso, nuestro programa necesita una **memoria**. En esta misión, descubrirás uno de los conceptos más poderosos de la programación: las **variables**. Aprenderás a usarlas para crear un divertido desafío en el que tendrás que cargar a tu robot con "energía" tocando la pantalla. ¡Prepárate para que tus programas empiecen a recordar!

teacher: |
  ### **Cursos**
  * Grados 3-12

  ### **Materiales**
  * Dispositivo microbit/teléfono y computadora
  * Conexión a Internet

  ### **Descripción**
  Esta actividad introduce el concepto fundamental de las variables como "memoria" del programa. Los estudiantes construirán sobre la lección anterior de eventos. En lugar de que un evento solo dispare una animación, ahora aprenderán cómo un evento puede modificar un dato almacenado (una variable contadora), creando un programa que rastrea un estado a lo largo del tiempo.

  ### **Objetivos Educativos**
  * Comprender el concepto de una variable como un contenedor para almacenar datos.
  * Utilizar un evento para modificar el valor de una variable.
  * Crear un programa interactivo que lleve la cuenta de las acciones del usuario.
  * Entender la diferencia entre un programa sin estado y uno con "memoria".

  ### **Inicio (10 minutos) - La Memoria del Programa**
  1.  Da la bienvenida a los estudiantes y conecta con la actividad anterior: **"Nuestro robot cosquilloso es divertido, pero tiene un problema: no recuerda nada. Cada risa es igual que la anterior. ¿Cómo podríamos hacer que el robot sepa cuántas veces hemos aplaudido?"**
  2.  Introduce la solución: **"Para eso, los programas necesitan una memoria. En programación, esa memoria se llama 'variable'. Piensen en ella como un marcador en un partido de baloncesto. No es una animación, es un lugar donde guardamos un número que cambia con el tiempo."**
  3.  Presenta el desafío: **"Hoy, nuestro robot necesita energía. Crearemos una variable llamada 'energía' y competiremos para ver quién puede cargarla hasta 50 primero tocando la pantalla."**

  {{learn}}

  ### **Desarrollo (20-30 minutos) - Construyendo el Contador de Energía**
  1.  Ahora que los estudiantes entienden que una variable es como un marcador, es hora de construir el juego.
  2.  Guíalos a través de **las instrucciones para crear la variable y el evento que la modifica**, como se detalla a continuación. Este es su primer paso para crear programas que no solo reaccionan, sino que también evolucionan.

  ### **Cierre (5-10 minutos) - El Poder de Recordar**
  1.  Una vez que todos hayan "cargado" a su robot, es hora de reflexionar sobre el nuevo superpoder que han aprendido.
  2.  Pregunta a la clase: **"¿Qué es la 'memoria' en nuestro programa? ¿Qué acción hace que esa memoria cambie? Ahora que nuestro robot puede contar, ¿qué cosas más inteligentes podríamos hacer con él?"** Usa la sección de reflexión para consolidar el concepto y anticipar la próxima lección.

  {{reflect}}

# DYNAMIC SECTIONS AS ARRAY
content_sections:

  - id: "learn"
    title: "¿Por qué los Programas Necesitan Memoria?"
    type: "learn"
    icon: "book-reader"
    content: |
      El robot cosquilloso reaccionaba a un aplauso, pero siempre de la misma manera. No podía "recordar" cuántas veces había reído. Para crear programas más inteligentes que puedan cambiar su comportamiento, necesitamos una forma de almacenar información. Necesitamos darles **memoria**.
    media: "src/16.4-robot-activation-challenge/a-memory.svg"

  - title: "Las Variables: Las Cajas de Memoria del Código"
    type: "learn"
    content: |
      En programación, esa memoria se llama **variable**. Piensa en una variable como una **caja con una etiqueta**.
      * La **etiqueta** es el nombre de la variable (por ejemplo, `energia`).
      * El **contenido** es el dato que guardamos dentro (por ejemplo, el número `25`).
      La parte más poderosa es que el contenido de la caja puede cambiar en cualquier momento. Podemos abrirla, sumar 1 al número y guardar el nuevo resultado.
    media: "src/16.4-robot-activation-challenge/b-energy-variable.es.svg"

  - title: "Eventos que Modifican la Memoria"
    type: "learn"
    content: |
      Ahora podemos combinar nuestras dos últimas ideas. Usaremos un **evento** (tocar un botón) no solo para disparar una animación, sino para **modificar el contenido de nuestra variable**.
      Cada vez que tocas el botón designado, el evento se activa y le da una orden al programa: *"Abre la caja llamada `energia`, mira el número que hay dentro, súmale 1 y guarda el nuevo total en la misma caja"*. Así es como nuestro programa "recuerda" y lleva la cuenta.
    media: "src/16.4-robot-activation-challenge/c-events-that-modify-energy.es.svg"
    
  - id: "create"
    title: "Crear"
    type: "create"
    icon: "cogs"
    heading_text: "¡A cargar el robot de energía!"
    steps:
      - "Presiona <addbutton>Añadir dispositivo</addbutton> y selecciona <comp>BotónTáctil</comp>. Este será nuestro 'cargador' de energía."
      - "Presiona de nuevo <addbutton>Añadir dispositivo</addbutton> y selecciona <comp>DibujoLED</comp> para poder ver el nivel de energía en la pantalla."
      - "Por último, presiona <addbutton>Añadir dispositivo</addbutton> y selecciona <comp>ReproductorSonido</comp> para saber cuándo el robot ha sido activado."
      - "Recuerda escanear o abrir todos los componentes."
    ready_message: "¡Estamos listos para el desafío de activación!"

  - title: "Composición del Código"
    type: "code-composition"
    icon: "code"
    content: |
      Haz clic en el signo de interrogación para ver los comentarios. Primero, en `Al iniciar`, creamos nuestra variable `toques` y la establecemos en `0`. Este es el punto de partida. Luego, el bloque de evento `cuando es tocado` se activa con cada toque. Dentro, el bloque `añadir 1 a toques` actualiza nuestra "memoria". Dentro del bloque `si`, siempre que `toques` sea menor a 7, ayudándonos con el bloque `contar con i`, se pintará la pantalla según la cantidad de `toques` para que podamos ver el progreso del desafío. En caso contrario, sabremos que el robot ha sido activado y reproducirá un sonido.
    media: "https://app.protobject.com/generate?equivalent-juego-toques&es&dynamic&-1"

  - id: "reflect"
    title: "Reflexiona"
    type: "reflect"
    icon: "lightbulb"
    content:
      - |
        Acabas de darle "memoria" a un programa por primera vez. ¿Qué es una variable y para qué la usamos en este desafío?
      - |
        ¿Qué rol juega el evento en este código? ¿Dispara una animación o hace algo más?
      - |
        Si quisieras que cada toque sumara 5 puntos de energía en lugar de 1, ¿qué bloque cambiarías?

    right_content:
      - text: |
            **Desafío:** Mejora el cargador de energía. Modifica el programa para que el robot **no siempre gane la misma cantidad de energía**.
            **Pista:** puedes hacer que distintos botones, gestos o eventos sumen **valores diferentes** a la variable `toques`.
      - media: "src/16.4-robot-activation-challenge/d-energy-challenge.svg"

---