Objetivos
Material requerido.
Arduino Uno o compatible y con el firmware para S4A cargado.
Un PC con el entorno S4A correctamente instalado y configurado. |
|
Una Protoboard. | |
Un diodo LED. | |
Un potenciómetro de 10K?. | |
Una resistencia de 330 Ohmios. | |
Algunos cables de Protoboard. |
LOS POTENCIÓMETROS
Los potenciómetros son resistencias que tienen un mecanismo para variar su valor. En este caso nuestro potenciómetro puede tomar valores de 0 a 10k?.
Hay muchos tipos de potenciómetros, pero todos ellos tienen 3 pines en fila.
Para comprender el funcionamiento del potenciómetro vamos a montar un circuito compuesto por el potenciómetro, un LED y una resistencia de la siguiente forma:
Utilizando el Arduino simplemente para dar tensión, el montaje en la protoboard quedaría de la siguiente manera:
Si vamos ajustando el potenciómetro veremos cómo varía la intensidad del brillo del LED.
LAS ENTRADAS ANALÓGICAS
Vamos a realizar un montaje en el que leeremos el valor a la salida del potenciómetro con la entrada analógica A0.
Variando la resistencia del potenciómetro lo que buscamos es modificar la tensión a la salida del pin central. Así podremos modificar el valor de las señales que leeremos con las entradas analógicas de Arduino, que como ya sabemos, leen tensión.
Lo que hará nuestra placa Arduino será convertir el valor de la tensión que lee, entre 0 y 5V, a un valor entre 0 y 1023.
Aunque no construyamos ningún programa, si vamos ajustando el potenciómetro, veremos cómo va variando el valor de la entrada analógica a la que hemos conectado el potenciómetro.
CONTROLAR OBJETOS EN EL ESCENARIO
Vamos a aprovechar el montaje que tenemos para mover un objeto en el escenario utilizando el potenciómetro. Lo primero que haremos será crear un disfraz, dibujándolo, o importándolo.
Yo he importado una bruja volando en una escoba y le he puesto un fondo acorde, como hicimos en la sesión 5.
Hasta ahora, cuando hemos querido posicionar un objeto en el escenario lo hemos colocado manualmente arrastrándolo por él. Como ahora se va a mover, nos podría interesar que cuando el programa empiece a ejecutarse, el objeto comience en una posición determinada.
Vamos a utilizar bloques de “Movimientos” que no hemos usado hasta ahora, relacionados precisamente con la posición, la dirección y la velocidad de los objetos en el escenario. Son los que están al final de la lista de bloques de movimiento y vienen separados de los demás por una pequeña raya.
Para seleccionar las coordenadas para la posición de un objeto utilizaremos los bloques de “Movimientos” “fijar x a …” y “fijar y a …”.
Como en este caso la posición inicial en X del objeto viene dada por el ajuste inicial del potenciómetro, al iniciar el programa sólo fijaremos la posición en Y.
Lo que colocamos al darle las coordenadas es el centro del objeto. Podemos seleccionar o cambiar el centro de un objeto en el editor gráfico de sus disfraces y ponerlo en un lugar en el que nos facilite posicionarlo.
Una vez seleccionadas las condiciones iniciales, colocaremos el bloque “por siempre”, y dentro de él, fijaremos la posición en X al valor de la entrada analógica a la que está conectado el potenciómetro, en este caso la A0, utilizando los bloques de “Movimientos” ”fijar x a …” y “valor del sensor …”.
Si en este momento ejecutamos el programa y giramos el potenciómetro veremos cómo se mueve nuestro objeto, en mi caso como vuela la bruja. Pero todavía hay varios defectos que tendremos que corregir:
Para poder aprovechar todo el ancho del escenario, lo que vamos a hacer es restarle 240 al valor de la entrada analógica A0. De esta forma cuando la resistencia del potenciómetro este al máximo, la tensión medida será 0V, y al restarle 240, tendremos el valor -240, que coincide con el extremo izquierdo del escenario.
Para aprovechar todo el giro del potenciómetro para el movimiento lo que tenemos es que calcular la relación que hay entre los valores que pueden tomar la entrada analógica, 1024, y el eje X del escenario, 480.
Lo que quiere decir esto es que la entrada analógica puede tomar 2,13 veces más valores que el eje X. Por lo tanto, lo que tenemos que hacer es dividir la entrada analógica entre 2,13 y así quedará también con valores entre 0 y 480.
Para hacer estas operaciones dentro de nuestro programa utilizaremos los bloques de “Operadores” “ / “ y “… – …“.
Por lo tanto nuestro programa quedaría de esta forma:
Si lo ejecutamos de nuevo y giramos el potenciómetro veremos que ahora funciona de una forma más adecuada.
Podéis descargar el programa completo desde aquí: Potenciómetro.
ALGUNAS COSAS ÚTILES
Para seguir practicando, os recomiendo que hagáis lo mismo pero moviendo el objeto verticalmente. Si tenéis dos potenciómetros, podéis probar a moverlo en las dos direcciones en un sólo programa.
Os dejo los programas por si se os resiste y necesitáis una pequeña ayuda.
RESUMEN DE LA SESIÓN
En esta sesión hemos aprendido varias cosas importantes: