Objetivos
Material requerido.
Arduino Uno o compatible y con el firmware para S4A cargado. |
|
Unos cables. | |
Una Protoboard | |
Un sensor de sonido KY-038 o similar. |
LOS BLOQUES LÁPIZ
Esta categoría de bloques se utiliza cuando queremos pintar algo en el escenario a partir el movimiento de un objeto. Podemos utilizarlo, por ejemplo, para marcar el recorrido que ha seguido un objeto, o para hacer gráficos y diagramas a partir de los valores que nos envíe un sensor.
Para aclarar un poco como funciona, vamos a hacer un ejercicio muy sencillo en el que colocaremos un objeto en el centro del escenario varias veces y lo moveremos de forma aleatoria, de manera que vaya dejando un rastro y haga una marca en el punto en el que termine cada movimiento.
Lo primero que vamos a hacer será crear un disfraz para el objeto y borrar el que viene por defecto. Yo he importado una pelota de fútbol.
Nada más empezar borramos lo que haya dibujado previamente en el escenario utilizando el bloque de “Lápiz” “borrar” y fijamos el grosor del trazo con el bloque “fijar tamaño del lápiz a …”.
Utilizamos el bloque “repetir …” porque queremos que el objeto haga un número determinado de movimientos antes de parar el programa. Posicionamos el objeto en el centro del escenario, utilizamos el bloque “bajar lápiz” para que empiece a dibujar y fijamos el color del lápiz a un número aleatorio entre 0 y 200 con el bloque “fijar color del lápiz a …”.
- El bloque “bajar lápiz” es el equivalente a presionar un lápiz en un papel. Hasta que no lo levantemos, todo movimiento del objeto dejará un rastro en el escenario de la forma en que lo indiquemos.
- Fijamos el color a un número aleatorio para que cada repetición línea pinte la línea de un color diferente.
- Los colores del lápiz en S4A van desde 0 a 200, por eso hemos cogido esos límites para el número aleatorio.
A continuación hacemos que el objeto se mueva a una posición nueva utilizando el bloque de “Movimiento” “deslizar en … segundos a x: … y: …”, levantamos el lápiz con el bloque “subir lápiz” y utilizamos el bloque “sellar” para que deje una marca con la forma del objeto.
- Recordad que las medias del escenario son 480×360, siendo el centro (0,0), de ahí los límites de los valores aleatorios.
- Subimos el lápiz para que al volver a poner el objeto en el centro del escenario no pinte nada más.
- El bloque “sellar” deja una impresión del objeto en el punto del escenario en el que se encuentre.
Al terminar de ejecutarse el programa tendremos algo parecido a esto en el escenario.
Podéis descargar el programa aquí: Dibujo balón.
DIBUJANDO EL VOLUMEN DE UN SONIDO
Vamos a utilizar lo que hemos aprendido en esta sesión y en la sesión 17 para dibujar un gráfico con el volumen de un sonido. Mediremos la señal que envía el sensor KY-038 por el pin A0 y la dibujaremos en el escenario.
- El pin A0 nos devolverá un valor entre 0 y 1023 en función del volumen del sonido.
El esquema electrónico y el montaje en la protoboard son muy sencillos.
Empezaremos dibujando un objeto para dibujar a partir de él. Como no queremos que se note, podemos, por ejemplo, hacer un punto lo más pequeño posible y del color del que dibujaremos el gráfico.
Fijamos las condiciones iniciales:
- Borramos el escenario con el bloque “borrar”.
- Fijamos el color del lápiz al que queramos. Antes hemos utilizado un número, pero hay otro bloque donde podemos seleccionar el color a partir de una paleta.
- Levantamos el lápiz por si está el objeto en otra posición de la ejecución anterior.
- Posicionamos el objeto en la parte izquierda del escenario y en el centro del eje Y.
- Bajamos el lápiz para que comience a dibujar.
Ahora ya podemos colocar el bloque “por siempre” para que repita las demás acciones en bucle. Empezamos sumándole 1 a la posición en x para que en cada ejecución pinte el volumen un poco más a la derecha en el escenario, de forma que no se vayan solapando.
Si en este momento ejecutamos el programa veremos cómo se pinta una línea de izquierda a derecha.
Para saber a qué nivel de sensibilidad tenemos ajustado el sensor, podemos guardar en una variable el valor recogido en la entrada analógica A0 y visualizarlo en el escenario como hemos aprendido.
- A mayor sensibilidad mayor será el cambio en la señal que envía el sensor por A0 en función del sonido.
- Yo lo he ajustado en el mismo punto que en la sesión anterior, en el punto en el que justo se apaga el LED que nos muestra si está activado el pin D0.
Para dibujar el volumen en cada iteración, tenemos que fijar la posición en y del objeto a la posición anterior (que fijamos a 0 en cada repetición para que pinte siempre a respecto al punto medio del eje Y) sumándole el valor de A0 que hemos guardado en la variable “volumen”. A ese valor le tenemos que restar un valor cercano al que hemos ajustado la sensibilidad, para que no nos pinte una raya muy gruesa cuando no hay sonido.
Sólo nos queda hacer que cada vez que llegue al final del escenario, vuelva a empezar a dibujar desde la izquierda. Para ello levamos el lápiz hasta la posición inicial y borramos el escenario para que empiece a dibujar de nuevo con el escenario en blanco.
- Recordad que hay que subir el lápiz para llevarlo a la posición de inicio sin que pinte y volver a bajarlo para que empiece a pintar de nuevo.
Si ahora ejecutamos el programa veremos cómo al hablar, silbar, soplar o hacer cualquier sonido en el micrófono, en el escenario se pinta la variación en el volumen.
Yo le he acercado un altavoz pequeño con una canción y el resultado ha sido este:
Podéis descargar el programa completo aquí: Dibujar Sonido.
Si queréis practicar un poco más podéis coger la sesión 16 del sensor de temperatura y, por ejemplo, registrar la temperatura cada cierto tiempo utilizando lo que hemos aprendido y variando un poquito el programa.
RESUMEN DE LA SESIÓN
En esta sesión hemos aprendido varias cosas importantes: