Vamos a comenzar con el trabajo en IA para dispositivos móviles con los bloques de percepción y actuación. Estamos hablando de los dos bloques más conocidos por los estudiantes debido al trabajo llevado a cabo en las materias de Digitalización (1º ESO), Tecnología y Digitalización (2º y 3º ESO) y Tecnología de 4º ESO. Como ya sabemos el bloque de percepción nos permite introducir información al sistema IA mediante la codificación de las magnitudes obtenidas de los sensores, mientras que el bloque de actuación es el responsable del control y movimiento de nuestro sistema IA.
A través de esta unidad analizaremos algunos de los sensores y actuadores que pueden ser utilizados por un sistema de IA para dispositivos móviles. Concretamente, los estudiantes deberán hacer uso de micrófonos, cámaras o pantallas táctiles como dispositivos de percepción. Pero también de altavoces o pantallas LCD como actuadores.
Para ello vamos a construir una app llamada Guía Escolar. Esta aplicación guiará a los usuarios (profesores, estudiantes o personal externo) a través de las diferentes localizaciones del centro. Localizaciones que están marcadas con códigos QR. Cada vez que el usuario alcance una localización, a través del código QR la app mostrará los posibles destinos, determinando el óptimo de acuerdo a las instrucciones recibidas.
Para ello, en esta unidad 2 de percepción y actuación trabajaremos con los dispositivos anteriormente descritos, cuya información es:
NECESIDADES:
Necesitamos que en los dispositivos móviles tengamos instalados estas dos aplicaciones:
RECURSOS:
Carpeta Drive con Imágenes y Proyecto
ENLACES:
Para el diseño de la App en lo que a componentes se refiere os dejo por aquí un vídeo con una introducción a aquellos que he añadido en esta primera fase. Os recomiendo importar el proyecto que he dejado en la carpeta Drive anterior y de ese modo podáis ver con detenimiento cómo quedan las propiedades de cada componente.
Igualmente, insisto en que es más que recomendable empezar desde cero el proyecto pues de ese modo nos enfrentamos a los problemas que tendrás nuestros estudiantes.
Comencemos con la programación y concretamente con la Screen 1. Para empezar vamos a la parte superior de bloques Integrados y definimos una variable llamada Var_NombreLocalizaciones tal y como se ve en la imagen. Pero antes conviene dejar clara el concepto de variables informática. En mi caso suelo decir que es un espacio en la memoria del programa asociado un nombre. De modo que a través del nombre podemos almacenar datos en la memoria.
Seguidamente, introducidos los procedimientos de los dos botones incluidos así como del escáner de códigos QR.
Como podemos ver, una vez hemos pulsado el botón de Escanear, se ejecuta el componente correspondiente, cuyo resultado es un bloque dentro del cual hemos puesto un condicional que comprueba si el Resultado está dentro de la lista que hemos declarado anteriormente. De ser así mandamos abrir la Screen2 enviando como parámetro el Resultado del escaner. De no coincidir el escaneado con ninguna de las localizaciones incluidas en la lista, llamamos al notificador y al sintentizador de voz a través de texto para hacerle llegar esta circunstancia al usuario.
Decir que en la carpeta Drive he incluido los 4 códigos QR que usamos en la aplicación.
Por último el botón Salir permite cerrar la aplicación. Decir en este punto que si estamos comprobando el funcionamiento de la App a través de la App Companion no podremos ver este último comportamiento. Sólo una vez instalada la aplicación en nuestro móvil, podremos comprobar el funcionamiento del cierre de la aplicación.
Pasemos a continuación a la programación de la Screen2. Veamos primero la definición de variables:
La variable Azimuth almacenará la orientación y la variable Origen coge el valor que le pasa la Screen1 con el Resultado del escaner. Y aquí van los bloques de programación de todas las componentes que hemos incluido en el diseño de la Screen2.
Como vemos, el primer bloque de código se utiliza para poner en la etiqueta Lbl_Origen el contenido de la variable Var_Origen que como ya dijimos almacena el parámetro que le pasa la Screen1. El segundo bloque se ejecuta cuando pulsamos sobre el botón Back mandando de nuevo al usuario al Screen1.
La programación del sensor de orientación se centra en el cambio de orientación, bloque que nos permite orientar nuestra brújula hacía la orientación siempre y cuando exista un cambio significativo de 5 grados. Además mostramos la orientación en la etiqueta Lbl_Azimuth.
Por último nuestro programa se completa con el evento que lanza una vez pulsemos sobre el botón Altavoz. En este caso, llamamos al sintetizador de voz con el mensaje que veis a continuación.
Y una vez hemos acabado de informar al usuario reconocemos su respuesta, lanzando el reconocedor de voz, el cual en caso de que la respuesta haya sido si, volveremos a la Screen1 para un nuevo escaner.
Con todo, a través de esta práctica hemos intentado trabajar con los bloques de Percepción y Actuación provistos en la App Inventor del MIT. Espero que hayáis podido hacer ver a los estudiantes el significado de estos bloques y su utilidad como forma de obtención de información y actuación.
En estos vídeos podéis ver algunas recomendaciones para con el uso de la aplicación online del MIT App Inventor.