domingo, 7 de enero de 2018

Controlando con el móvil el tiempo de encendido de las luces

Buenos días.

Feliz 2018 a tod@s. Espero que este sea un gran año lleno de buenos momentos tanto dentro como fuera del instituto.

Por lo que a Tecnología Industrial respecta empezamos el año como terminamos el 2017, avanzando en el aprendizaje de la programación de aplicaciones móviles mediante appinventor y de robótica con arduino.

Seguimos trabajando con nuestro semáforo, ahora controlando sus funciones desde el móvil. La siguiente función de control que vamos a implementar es la del tiempo de duración de los encendidos. Existen muchas manera de hacerlo y una de las más sencillas es la que os propongo en esta entrada: Utilizando un dos botones para cada luz, uno para aumentar el tiempo de encendido y otro para disminuirlo.

Empecemos con la aplicación móvil en App inventor, Vamos a añadir 3 layouts, uno para cada luz, con dos botones y una etiqueta en cada uno. Podéis ver el resultado en la siguiente imagen.


La programación de los elementos es sencilla pero incluye algunos elementos que no hemos visto hasta ahora: Creación de variables en app inventor (initialize global), realización de operaciones matemáticas con las variables y modificación del contenido de cuadros de texto usando la función "join".
Como podéis ver hemos añadido un condicional en cada botón para que el tiempo nunca sea menor que 1 segundo ni mayor de 30.


Una vez hecho para una de las luces copiamos y pegamos los bloques para las otras dos, cambiando la letra de envío por bluetooth y las variables:


Como os habréis dado cuenta no enviamos por bluetooth al arduino el valor del tiempo de las variables de app inventor, seguimos enviando solamente una letra diferente para cada operación que después en el código arduino nos indicará lo que tenemos que hacer con las variables de arduino, que será una réplica de lo que hemos hecho en app inventor. Por supuesto que existe la posibilidad de mandar variables por bluetooth con los datos del tiempo pero esto complicaría un poco más la programación ya que la señal de bluetooth además de la nueva cifra debería indicar para cual de las luces se ha realizado el cambio. Esto se realiza creando cadenas en el mensaje de bluetooth con diferentes partes que después en arduino fragmentamos y obtenemos la información correspondiente. Lo veremos más adelante en otras entradas, pero de momento en esta probaremos a programarlo de esta sencilla manera, cambio el valor de la variable en app inventor e indicando una simple letra como señal a arduino.

Pasamos a la programación en arduino que es más sencilla todavía:

Por un lado tenemos que crear 3 nuevas variables que comienzan con un valor de 5000ms (5 segundos):


En función  de la letra que recibamos por bluetooth iremos añadiendo o quitando 1000ms a cada una de las variables. Como veis aquí también controlamos que la variable no baje de 1000ms ni suba de 30000ms. Existen formas mucho más eficientes de programar esto, pero de momento para ir aprendiendo, programarlo en cada apartado, creo que es una buena manera de iniciarse en las operaciones matemáticas con variables y los condicionales.



Y por último no debemos olvidar sustituir en nuestro programa los tiempos de espera que teníamos por las variables que hemos creado.


De esta sencilla manera podemos ir controlando muchos otros parámetros como por ejemplo el tiempo de encendido y apagado de emergencia o cualquier otra que necesitemos. Un buen ejercicio ahora sería intentar controlar algún parámetro programando todo por vuestra cuenta.

Un saludo,
Raúl.

No hay comentarios:

Publicar un comentario