Informática
Scratch

Tu Instituto Online
   


 
Nivel Básico Scratch: Control y sensores
Duración aproximada: 3 sesiones
   
Objetivos Objetivos
  • Conocer el funcionamiento de los bloques de control
  • Configurar los principales eventos
  • Conocer los sensores más importantes
   
Fuentes de información Fuentes de información
   
Contenidos
Contenidos
   
 

1. Introducción

Uno de los bloques que hemos usado hasta ahora pertenece a una de las familias más importantes: Eventos. Los eventos son acciones que, al ocurrir, derivan en otras acciones que habremos programado, lo cual tiene gran relevancia en el mundo de la programación ya que, sin ellos, las aplicaciones no podrían comenzar. También veremos algunos de los elementos de la familia Control, los cuales nos van a permitir modificar el flujo lineal del código, introduciendo, por ejemplo, bucles.., así como los sensores, elemento fundamental para algunos de los bloques anteriores.

2. Eventos

Tal y como hemos dicho, esta familia permite comenzar el programa dependiendo de una determinada acción (llamada evento). La familia de eventos contiene varios bloques de los cuales sólo veremos cuatro mediante un ejemplo que lo ilustrará.

Lo primero será insertar el bloque de inicio, pero en este caso vamos a cambiar al segundo (el primero lo hemos utilizado ampliamente a lo largo de las anteriores unidades), para ello arrastraremos el bloque al presionar la tecla espacio. Ese bloque da la posibilidad de comenzar un programa pulsando una tecla cualquiera (diferente a la bandera verde), de hecho, si pulsamos sobre el desplegable que se contiene la palabra espacio, podremos cambiar su valor:

 

Para el ejemplo vamos a seleccionar la tecla flecha derecha y, a continuación, iremos a la familia Movimiento, donde seleccionaremos el primero, el de mover 10 pasos, pero cambiando el número de pasos a 30. También insertaremos otro bloque, bajo y separado de los anteriores con el bloque al presionar la tecla espacio, cambiando la tecla espacio por flecha izquierda. Justo debajo de ésta añadiremos otro bloque de mover 10 pasos, pero en este caso los 10 los cambiaremos por -30.

Ahora prueba a pulsar las teclas de las flechas derecha e izquierda, el gato debería moverse a derecha e izquierda. Vamos a modificarlo y a añadir algunas cosas, concretamente seleccionaremos la familia Apariencia y arrastraremos el segundo bloque a la primera parte del programa, cambiando el Hello! por Voy a la derecha, y haremos lo mismo con el segundo, el cual tendrá como texto Voy hacia la izquierda. Además añadiremos un bloque de cambiar disfraz a disfraz2 (de la misma familia), de modo que el primero será disfraz2 y en el segundo disfraz1. Para terminar agregaremos, de la familia Sonidos, el bloque tocar sonido miau en ambas partes:

Ejecutando el programa con las teclas derecha e izquierda observaremos que se desplaza, cambia de disfraz, habla y emite un sonido. ¿No se parece mucho a un juego? Pues sí, con ésto se pueden realizar juegos donde poder controlar al personaje (objeto) y realizar diferentes acciones. Continuemos manejando al gato mediante el uso de la familia Eventos. Inserta otro bloque de al presionar tecla espacio en otra parte del programa, cambiando espacio por flecha abajo y, justo debajo de éste, añade un giro de 90 grados. Agrega, también, otro bloque de al presionar tecla espacio, cambiando la tecla espacio por flecha arriba y, justo debajo de éste, añade un giro de -90 grados. A continuación insertaremos dos bloques de decir Hello! (uno en cada parte del programa) donde cambiaremos el texto por Voy hacia abajo y Voy hacia arriba, respectivamente. Para terminar agregaremos, de la familia Sonidos, el bloque tocar sonido miau en ambas partes:

El resultado será similar al que se muestra, pulsando las teclas, derecha, abajo, arriba, izquierda:

Otro de los bloques interesantes es el de al clickear este objeto, lo que hará que se desencadene la acción, una vez el usuario pulsa el objeto (el gato). Añadiremos otra opción a nuestro programa donde insertaremos el bloque y haremos que diga Me has pulsado. Para ello insertaremos el bloque decir Hello! cambiando el texto:

Al pulsar sobre el gato, éste dirá lo que le hemos indicado:

  
Ejercicios
Ejercicio
 

Ahora te toca a ti. Basándote en el ejercicio visto en la teoría, realiza los cambios pertinentes para que (guarda el proyecto con el nombre Control y el archivo con el mismo nombre):

  • Al presionar la tecla A el gato deberá repetir 10 veces: que se mueva 10 pasos hacia atrás, piense con el texto No sé qué hacer y toque el tambor 11 durante 0.5 pulsos
  • Al presionar la tecla D el gato deberá repetir 10 veces: que se mueve 10 pasos hacia adelante, toque la nota 53 durante 0.5 pulsos y deberá dibujar una línea de color azul
  • Al presionar la tecla W el gato deberá repetir 5 veces: que gire 90 grados hacia la derecha, que diga Voy hacia abajo y diga Viva
  • Al presionar la tecla S el gato deberá repetir 5 veces: que gire -90 grados hacia la derecha, que diga Voy hacia arriba y diga Viva
  • Sube el archivo Control.sb2.
  
Contenidos
Contenidos
   
 

3. Repeticiones o bucles

Dentro de la familia control encontramos diferentes bloques que permiten modificar el flujo habitual (secuencial) del programa. Si los agrupamos por categorías, los primeros serían los referidos a repeticiones, también llamados bucles. Éstos nos evitan tener que escribir varias veces el mismo código de modo que se ejecutará repetidamente tal y como le indiquemos.

Uno de los bloques de este tipo ya lo hemos utilizado: repetir 10, el cual permite ejecutar el bucle 10 veces (o las que le indiquemos). El siguiente bloque que vamos a explicar es el de una repetición infinita, y qué mejor manera de hacerlo que con un ejemplo en el que el gato se moverá infinitamente.

Comenzaremos insertando el bloque inicial de presión de la bandera verde. A continuación insertaremos el bloque por siempre y, dentro de éste, insertaremos varios bloques de la familia Movimiento: uno de ellos mover 40 pasos, girar 90º, esperar 1 segundos (bloque primero de la familia Control), mover otros 40 pasos, girar otros 90º, esperar 1 segundos, mover otros 40 pasos, girar 90º, esperar 1 segundos, mover 40 pasos, girar 90º y esperar 1 segundos. Tiene que quedar de la siguiente manera:

La espera de un segundo la hemos puesto para que se pueda visualizar detenidamente el avance del gato, el cual se moverá haciendo un cuadrado. Pero ¿cómo se podría hacer para que dibujara a la vez que va dando vueltas? Muy sencillo, deberíamos de insertar un bloque de fijar el color de lápiz a (eligiendo el color rojo)y, a continuación, bajar lápiz, todo ello antes del bucle, de modo que se pintaría siempre:

Y el resultado sería:

Con esta técnica se abren muchas posibilidades ya que, por ejemplo, podríamos obtener dibujos con el lápiz. Prueba a realizar los siguientes cambios: añade un bloque de borrar (familia Lápiz debajo del bajar lápiz), otro de mover 10 pasos después del primer esperar 1 segundos y otro igual después del último bloque de esperar 1 segundos:

Ahora el dibujo será distinto (al ser un bucle infinito se ha parado en un momento determinado):

Ejercicios
Ejercicio
 

Continuando con el ejercicio anterior, modifica los siguientes elementos para que:

  • Si lo paras y lo vuelves a ejecutar, el gato comience en la posición X:0, Y:0 y en la dirección 90º
  • La intensidad del lápiz sea 40
  • Comience al pulsar la tecla 1
  • Se pare al pulsar sobre el gato (Pista: puedes utilizar el bloque detener todos de la familia Control)
  • Que vaya hacia atrás

Debrá quedar de la siguiente manera:

Una vez hecho guárdalo en el ordenador con el nombre Figura.

  • Sube el archivo Figura.sb2.
Contenidos
Contenidos
   
 

4. Comparaciones y sensores

El segundo bloque más importante dentro de la familia Control, es el de las comparaciones. Este tipo de bloques permite cambiar el orden de ejecución de un programa dependiendo del resultado de una determinada condición. La cuestión está en que las condiciones se pueden controlar mediante unos elementos llamados sensores (de la familia Sensores) que vigilan cosas como si estamos tocando el borde, si tenemos una tecla pulsada, la posición en el escenario... Es conveniente, pues, que estudiemos previamente los sensores y luego los apliquemos a los diferentes bloques de las comparaciones.

Los que vamos a utilizar son los siguientes:

  • ¿ratón presionado?: informa de si está presionado o no el ratón
  • ¿tecla espacio presionada?: informa de si la tecla espacio está presionada o no
  • ¿tocando el color?: indica si el objeto está tocando un determinado color
  • ¿tocando a?: indica si el objeto está tocando el puntero del ratón o un borde

Para que se vea de manera más clara haremos un ejemplo donde se utiilizarán todos. Comenzaremos insertando un control de la familia Eventos, concretamente al presionar la tecla Espacio, a continuación insertaremos un bloque de la familia Control llamado si...entonces, y entre el si y el entonces, introduciremos el bloque ¿ratón presionado?, el cual hará que si está pulsado se ejecute lo que hay dentro del bloque. Para terminar insertaremos, dentro del bloque insertaremos otro para que diga Ratón pulsado:

Ahora, al ejecutarlo, el gato no dirá nada, pero si antes de pulsar la tecla espacio presionas el botón derecho del ratón, el gato avisará de la pulsación:

El problema, es que si lo volvemos a ejecutar sin pulsar el ratón, el gato sigue con el bocadillo de ratón presionado. ¿No sería más lógico que, en caso de que no esté pulsado también lo diga? Pues para ello utilizaremos el bloque si..entonces..sino de la Dentro de la familia Control. De modo que si cambiamos el bloque si..entonces por éste y añadimos debajo del sino un bloque en el que diga Ratón no pulsado:

El resultado, en caso de que no se haya pulsado será:

También podemos, haciendo clic en algunos sensores (aquellos que tienen un cuadro para ser seleccionados), mostrarlos en el escenario para tener controlados sus valores. Por ejemplo, si en el anterior seleccionamos el de intensidad del sonido:

Veremos como, en el escenario, en la parte superior izquierda se muestra el valor:

Para concluir, vamos a modificar un poco el programa para que el gato ande solo hasta encontrarse con el borde, lo cual hará que se vaya en retroceso. Para ello comenzaremos quitando el bloque al presionar la tecla espacio, para cambiarlo por al presionar la bandera verde, también cambiaremos el bloque ¿ratón presionado? por ¿tecla espacio presionada? y el bloque si..entonces..sino por si..entonces. Además añadiremos un bloque repetir hasta que y, dentro de éste, un sensor ¿tocando ?, seleccionando la opción borde. A continuación insertaremos movimiento de 10 pasos y lo duplicaremos (estará repetido). Entre medio de ambos un movimiento de 10 pasos negativo:

Ahora, el gato chocará con el borde y se irá hacia atrás.

Ejercicios
Ejercicio
 

Basándote en el ejercicio anterior modifica el programa para que:

  • Pinte una línea azul
  • Diga Hasta aquí durante un segundo al llegar a cada borde
  • Se repita indefinidamente hasta pulsar la tecla a

Os dejamos el inicio del programa:

 

Una vez hecho guárdalo en el ordenador con el nombre Sensores.

  • Sube el archivo Sensores.sb2.
   
Creditos Créditos
Licencia de Creative Commons

Este documento es de dominio público bajo licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 3.0 España.
TuInstitutoOnline.com M.Donoso, G.García, P.Gargallo, A.Martínez. v. 2.0.2.1.0

No se permite un uso comercial de la obra original ni de las posibles obras derivadas, la distribución de las cuales se debe hacer con una licencia igual a la que regula la obra original.

Los reconocimientos se realizan en el apartado Fuentes de información.

Los iconos empleados están protegidos por la licencia LGPL y se han obtenido de:
https://commons.wikimedia.org/wiki/Crystal_Clear
https://www.openclipart.org


Licencia de Creative Commons

Todas las capturas de pantalla tienen copyright y pertenecen a TuInsitutoOnline.com.

TuInstitutoOnline.com permite su uso siempre y cuando se muestren desde el dominio www.tuinstituoonline.com y NO PERMITE enlazar a ellas desde otros lugares.

Además, la estructura diseñada para mostrar el contenido de las unidades es propiedad de TuInstitutoOnline.com.

TuInstitutoOnline.com M.Donoso, G.García, P.Gargallo, A.Martínez. Versión 2021.