A.5 – Determinación de los elementos para la interacción con el usuario CYR1ESO
Computación y Robótica – 1º ESO
Antes de empezar: ¿te acuerdas?
En A.4 tu lince aprendió a repetir (bucles) y a decidir (condicionales), y las juntaste para que patrullara solo, sin que nadie tocara nada: bandera verde, por siempre, y dentro un si que reaccionaba si tocaba el borde o a su presa.
Eso está muy bien para un programa autónomo. Pero la mayoría de programas que usas cada día no funcionan solos: alguien los maneja. Un videojuego, una app, un cajero automático… todos esperan que tú hagas algo y responden a lo que haces. Hoy vamos a poner nombre a esa relación y a construirla con tu lince.
1. ¿Qué es interactuar con un programa?
Interactuar es que el programa y el usuario se van turnando: el usuario hace algo (una entrada) y el programa responde (una salida). Sin entrada no hay respuesta, y sin salida el usuario no sabría que el programa le ha hecho caso.
| Situación | ¿Hay interacción? | ¿Por qué? |
|---|---|---|
| Un salvapantallas que se mueve solo | No | No reacciona a nada que hagas tú |
| Pulsar el botón de un ascensor | Sí | Tu pulsación (entrada) hace que se encienda una luz y llegue la cabina (salida) |
| Un semáforo con temporizador fijo | No | Cambia solo, da igual lo que hagas |
| Un semáforo con botón para peatones | Sí | Tu pulsación adelanta el cambio a verde peatonal |
| Tu lince patrullando en A.4 | No (esa parte) | Reaccionaba al borde y a la presa, no a ti |
Idea clave: un programa es interactivo cuando lo que hace depende de lo que haga el usuario, no solo de lo que pase en el escenario.
2. Elementos de entrada: cómo el usuario “habla” con el programa
Antes de programar nada, hay que determinar qué vas a usar para que el usuario mande órdenes. En Scratch, los más habituales son:
| Entrada | Bloque | Categoría |
|---|---|---|
| Una tecla concreta | al presionar tecla [espacio] (evento) / ¿tecla [espacio] presionada? (sensor) | Eventos / Sensores |
| El ratón | ¿ratón presionado?, ratón x, ratón y | Sensores |
| Clic sobre el personaje | al hacer clic sobre este personaje | Eventos |
| Escribir una respuesta | preguntar [¿cómo te llamas?] y esperar | Sensores |
Fíjate en que hay dos formas distintas de leer una entrada, y no son lo mismo:
- Bloque de evento (
al presionar tecla...): dispara el script una sola vez, en el instante en que ocurre. - Bloque de sensor (
¿tecla... presionada?): es una pregunta de sí/no que hay que ir preguntando, normalmente dentro de unpor siempre, como hiciste en A.4.
Conecta con A.4: si quieres que tu lince se mueva mientras mantienes pulsada una tecla, necesitas la segunda forma (sensor + bucle). Si te vale con que reaccione una vez al pulsar, te sirve la primera (evento).
3. Elementos de salida: cómo responde el programa
La salida es lo que el usuario percibe después de su entrada. No sirve de nada detectar una tecla si no pasa nada visible:
| Tipo de salida | Bloques típicos |
|---|---|
| Movimiento | mover pasos, cambiar x por, cambiar y por, ir a x: y: |
| Visual | decir, pensar, cambiar disfraz, cambiar color de efecto |
| Sonido | tocar sonido, tocar sonido hasta que termine |
Idea clave: una interfaz completa siempre tiene las dos partes: una entrada que se detecta y una salida que se nota. Si el usuario pulsa y no ve ni oye nada, para él es como si el programa no hubiera hecho nada.
4. Determinar los elementos: diseñar antes de construir
“Determinar los elementos de interacción” significa decidir, antes de tocar Scratch, esta tabla:
| Entrada | Salida esperada |
|---|---|
| Flecha ↑ | El lince sube |
| Flecha ↓ | El lince baja |
| Flecha ← | El lince se mueve a la izquierda |
| Flecha → | El lince se mueve a la derecha |
Una vez decidida la tabla, construir los bloques es casi mecánico. El error de mucha gente es abrir Scratch directamente y empezar a arrastrar bloques sin haber decidido antes qué tecla hace qué.
al presionar tecla [flecha arriba]
cambiar y por (10)
al presionar tecla [flecha abajo]
cambiar y por (-10)
Error típico: poner varias teclas dentro del mismo script con varios
si, todas seguidas, en vez de un script por tecla (o unpor siemprecon unsipor tecla, si quieres que el movimiento sea continuo). Si mezclas mal las piezas, unas teclas “pisan” a otras y el lince se comporta de forma rara.
5. ¿Dónde se usa esto?
- Un mando de videoconsola: cada botón (entrada) tiene una acción asignada (salida): saltar, disparar, agacharse.
- Un robot Maqueen controlado por una app: los botones de la pantalla son la entrada, los motores del robot son la salida.
- Un formulario web: escribir en una casilla es la entrada, el mensaje de “campo obligatorio” es la salida.
- Una estación terrena de un CanSat: un botón de “iniciar descarga” (entrada) hace que aparezcan los datos de telemetría en pantalla (salida).
Idea clave: en cualquier lenguaje —Scratch, Python, MakeCode para micro:bit— el primer paso de diseñar algo interactivo es siempre el mismo: decidir la tabla de entradas y salidas antes de escribir una sola línea o encajar una sola pieza.
6. Vocabulario para memorizar
| Palabra | Significado |
|---|---|
| Interacción | Diálogo entre el usuario y el programa: entrada → salida |
| Entrada (input) | Acción del usuario que el programa detecta (tecla, clic, texto…) |
| Salida (output) | Respuesta del programa que el usuario percibe (movimiento, sonido, texto…) |
| Interfaz | Conjunto de entradas y salidas que permiten a alguien manejar un programa |
| Evento | Bloque que dispara un script una vez, al ocurrir algo |
| Sensor | Bloque que pregunta continuamente por un estado (tecla pulsada, tocando algo…) |
7. Para repasar (respóndelas de memoria antes del examen)
- Explica con tus palabras qué es interactuar con un programa, usando las palabras “entrada” y “salida”.
- Pon un ejemplo de tu vida diaria (que no sea Scratch) donde haya interacción, señalando cuál es la entrada y cuál la salida.
- ¿Qué diferencia hay entre
al presionar teclay¿tecla presionada?? ¿Cuándo usarías cada uno? - Da dos ejemplos de salida visual y uno de salida sonora que existan en Scratch.
- ¿Por qué hay que decidir la tabla de entradas y salidas antes de construir los bloques?
Próxima sesión: parte práctica de A.5.
Ficha de actividad — A.5 El lince responde a tus órdenes
Computación y Robótica — 1º ESO
Antes de nada
Abre tu proyecto de la sesión anterior y guárdalo con un nombre nuevo (nombre_apellido_A5.sb3). Guarda al menos dos veces durante la actividad.
Qué vamos a hacer
Hoy tu lince deja de moverse solo: tú lo vas a manejar. Antes de tocar Scratch, vas a decidir qué tecla hace qué (los elementos de la interfaz), y después lo vas a construir.
Fase 1 — Detective (sin ejecutar nada)
Lee estos tres scripts y rellena la tabla en tu cuaderno:
Script 1
al presionar tecla [flecha derecha]
cambiar x por (10)
Script 2
al hacer clic sobre este personaje
decir [¡Me has encontrado!] por (2) segundos
Script 3
al presionar bandera verde
por siempre
si <¿tecla [espacio] presionada?> entonces
tocar sonido [Miau]
| ¿Cuál es la entrada? | ¿Cuál es la salida? | ¿Evento o sensor? | |
|---|---|---|---|
| Script 1 | |||
| Script 2 | |||
| Script 3 |
Pista para el Script 3: fíjate si la pregunta está dentro de un
por siempreo suelta. Eso te dice si es una entrada que se comprueba una vez o todo el rato.
Fase 2 — Diseña tu interfaz (en papel, antes de Scratch)
Rellena esta tabla en tu cuaderno antes de abrir el ordenador. Tienes que decidir 4 entradas (teclas) y sus 4 salidas (qué hace el lince):
| Entrada (tecla) | Salida (qué hace el lince) |
|---|---|
Puedes usar las flechas del teclado, o cualquier otra combinación que prefieras (por ejemplo, W-A-S-D). Lo importante es que tú decidas la tabla antes de construir nada.
Fase 3 — Construye la interfaz
- Crea un script por cada tecla de tu tabla, con
al presionar tecla [...]y el bloque de movimiento correspondiente (cambiar x por,cambiar y por, omover pasossi prefieres que el lince gire primero). - Prueba las cuatro teclas por separado. ¿El lince hace exactamente lo que decidiste en tu tabla?
- Añade una quinta entrada que no sea de movimiento: por ejemplo,
al presionar tecla [espacio]para que el lince diga algo o haga un sonido. - Añade salida sonora: busca en Sonido un efecto que encaje (o graba el tuyo) y añádelo a alguna de tus teclas.
Checklist — marca cuando lo consigas
- He guardado mi proyecto con el nombre nuevo
- He rellenado la tabla de la Fase 1 antes de ejecutar nada
- He rellenado mi tabla de entradas/salidas de la Fase 2 antes de abrir Scratch
- Mi lince responde a 4 teclas de movimiento tal y como decidí en mi tabla
- He añadido una quinta entrada que no sea de movimiento
- Tengo al menos una salida sonora
- He guardado el proyecto (dos veces)
Antes de cerrar: relaciona la práctica con la teoría
Respóndelas por escrito donde te indique el profesor.
- Señala una entrada y una salida de tu proyecto de hoy, usando el vocabulario de los apuntes.
- ¿Usaste bloques de evento, de sensor, o los dos? Explica por qué elegiste cada uno.
- En la Fase 2 diseñaste tu tabla antes de construir nada. ¿Cambiaste algo al construirlo? ¿Por qué?
- Compara tu interfaz de hoy con el script del lince patrullando de A.4. ¿Cuál tiene interacción con el usuario y cuál no? Justifícalo.
Si terminas antes que tus compañeros
- Reto 1: convierte tus cuatro scripts sueltos en uno solo, con
por siemprey cuatrosidentro (como en A.4), para que el lince se mueva de forma continua mientras mantienes la tecla pulsada, en vez de dar un salto cada vez que pulsas. - Reto 2: añade una entrada de ratón: que el lince mire hacia el puntero del ratón o se mueva hacia él al hacer clic.
- Reto 3: usa
preguntar [¿cómo te llamas?] y esperaral principio, y que el lince salude por su nombre a quien lo está manejando.
Notas para ti
- El Reto 1 conecta directamente con A.4: es la misma estructura
por siempre + si, aplicada ahora a una entrada de usuario en vez de a un sensor del entorno. Si algún alumno no llega al reto, no pasa nada; la Fase 3 ya cumple el saber básico. - La Fase 2 (diseñar la tabla en papel antes de tocar el ordenador) es la parte que de verdad evalúa “determinación de los elementos”. Si vas justo de tiempo, no la recortes: es fácil que se salten directamente a Scratch y la actividad pierda su sentido.
- Calculo unos 50 minutos con las tres fases. La Fase 2 en papel no debería llevar más de 5-8 minutos.
- Los nombres de bloques son los que recuerdo de Scratch en español, sin haber abierto tu versión. Compruébalos, especialmente si usas
mover pasos+giraren vez decambiar x/y por. - Esta sesión deja el terreno preparado para controlar un micro:bit o un robot con botones físicos más adelante: la lógica de “entrada determinada → salida determinada” es la misma.
¿Quieres que te lo deje en un archivo listo para pegar en WordPress?
