Download práctica 3 acelerómetro - Nuevos Paradigmas de Interacción
Document related concepts
no text concepts found
Transcript
PRÁCTICA 3 ACELERÓMETRO AUTORES José Francisco Bravo Sánchez Pedro Fernández Bosch 06/01/2015 1 Práctica 3 Datos de la práctica Sensor: Acelerómetro Título de la aplicación: Pandacelerómetro Licencia: Licencia Pública General de GNU (GPL) versión 3 Android Play Store: https://play.google.com/store/apps/details?id=com.pambudev.acceler ometer Autores: José Francisco Bravo Sánchez GitHub: https://github.com/YusBravo Pedro Fernández Bosch GitHub: https://github.com/pebosch Fecha de la última modificación: 06/01/2015 2 Práctica 3 Descripción del problema que se aborda Un acelerómetro es un sensor que mide la aceleración relativa a la caída libre como marco de referencia [REF 1]. Normalmente interactuamos con infinidad de aplicaciones que utilizan este sensor, sobretodo en juegos donde según movamos el dispositivo, obtendremos una reacción diferente. A lo largo del documento vamos a mostrar cómo podemos captar los valores de posición de los ejes X, Y y Z y calcular la aceleración de un determinado movimiento en el dispositivo. Además, esta práctica requiere la detección de tres patrones de movimiento distintos (un movimiento para cada eje, ya sea positivo o negativo). 3 Práctica 3 Descripción de la solución que se aporta Se ha elaborado el presente tutorial donde se especifican las principales características, funciones y ficheros de una aplicación Android desarrollada a modo de ejemplo de utilización del sensor acelerómetro. Esta aplicación Android permite contabilizar y mostrar en pantalla un número de movimientos recogidos por el acelerómetro en los ejes X, Y y Z. Se ha diseñado una interfaz gráfica sencilla y usable para facilitar el entendimiento y función del acelerómetro desde el punto de vista de usuario y desarrollador. Juego en pausa 4 Sensor X Práctica 3 Sensor Y Menú de opciones Esta aplicación es accesible desde Android Play Store. Play Store 5 Práctica 3 Tutorial - Descarga del instalador .apk El fichero instalable de la aplicación de ejemplo puede descargarse desde Android Play Store. Dirección de descarga: https://play.google.com/store/apps/details?id=com.pambudev.accel erometer - Descarga del código fuente El código fuente de la última versión de la aplicación de ejemplo puede obtenerse desde cualquier directorio GitHub de los autores. - Importar el proyecto a Eclipse El proyecto ha sido desarrollado bajo Android Developer Tools Eclipse Plugin. Este producto incluye Eclipse Platform, JDT, CDT, EMF, GEF y WTP. Puede obtenerse gratuitamente a través de la web de android developer: http://developer.android.com/sdk/installing/installing-adt.html Una vez instalado el software, tan sólo hay que importar la carpeta base Accelerometer desde Files > Import > Existing Projects into Workspace. - Ficheros de interés: A continuación se describe el contenido de algunos de los ficheros y sus funciones más relevantes para la aplicación: 6 Práctica 3 o Accelerometer.java y AccelerometerHandler.java (API) En estos ficheros se realiza la lectura de los valores iniciales del sensor en sus diferentes ejes accelX, accelY, accelZ. Estos valores pueden ser utilizados además para el desarrollo de aplicaciones que hacen uso del sensor Giroscopio. Una vez recogidas, estas variables son tratadas mediante una operación matemática para detectar un movimiento realizado por el dispositivo en un determinado eje: movX, movY, movZ. Además, el resultado del movimiento puede ser positivo o negativo (hacia un lado o hacia el lado opuesto) dependiendo del eje en que se efectúe la oscilación: isPositiveMovX(), isNegativeMovX(). o AccelerometerInterface.java (API) Este fichero contiene la declaración de los métodos públicos que hacen uso del acelerómetro: getAccelX(); getAccelY(); getAccelZ(); getAtTime(); getPower(); actPrevAxisValues(); isPositiveMovX(); isNegativeMovX(); isPositiveMovY(); isNegativeMovY(); isPositiveMovZ(); isNegativeMovZ(); getTotalMov(); getMovXValue(); getMovYValue(); getMovZValue(); Para hacer uso de cualquiera de estos métodos, resulta ineludible añadir al programa la totalidad de ficheros anteriores (ficheros API). 7 Práctica 3 o MainActivity.java Fichero principal de la aplicación donde quedan programadas las funcionalidades del programa de ejemplo. Se han programado 7 botones que corresponden a las acciones: Inicio/pausa, Arriba, Abajo, Derecha, Izquierda, Interior, Exterior. Además, se ha incorporado un menú de opciones/ayuda localizado en la esquina superior izquierda de la aplicación. Adicionalmente, se ha incorporado un Feedback al usuario, definiendo un mensaje de ayuda en la función changeFeedbackText() o Activity_main.xml Fichero que alberga el diseño de la aplicación Android. Está compuesto por una capa principal (RelativeLayout), Cajas de texto (TextView), imágenes (ImageView) y Botones (Button). Las imágenes del menú se encuentran almacenadas en el directorio /res/drawable. 8 Práctica 3 Errores frecuentes - ¿Acelerómetro o giroscopio? [REF 2] Un acelerómetro es un elemento sensor que mide la aceleración, la vibración, el choque y la gravedad, mientras que un giroscopio permite que un dispositivo inteligente mida y mantenga la orientación, la dirección, el movimiento angular y la rotación. Por lo tanto, la simple acción de determinar la orientación horizontal o vertical de un dispositivo es propia de un giroscopio y no de un acelerómetro. - Valor del sensor vs. Valor del movimiento Los valores de cada eje, así como el cálculo de la aceleración tras un determinado movimiento se realiza en la función ejecutarAccion del fichero MainActivity.java Los valores instantáneos del eje X, Y y Z se recogen por el sensor acelerómetro en las variables accelX, accelY y accelZ. Pero el cálculo de la aceleración del movimiento en los ejes X, Y y Z se almacena en movX, movY y movZ para cada eje respectivo. 9 Práctica 3 Lecturas recomendadas - ¿Cuáles son y para qué sirven los sensores de nuestros Android? http://www.elandroidelibre.com/2014/07/cuales-son-y-para-quesirven-los-sensores-de-nuestros-android.html Resumen del funcionamiento de los sensores más usuales en los dispositivos actuales para recopilación y tratamiento de información. Fuente: El androide libre - Curso Android: Trabajar con el acelerómetro http://www.maestrosdelweb.com/curso-android-sensores-trabajarcon-acelerometro/ Sexto capítulo gratuito del Curso Android de Maestros del Web correspondiente al aprovechamiento y uso del acelerómetro para detectar movimientos en un dispositivo Android. Fuente: Maestros del Web - Sensores en Android: Acelerómetro http://sekthdroid.wordpress.com/2013/03/12/sensores-en-androidacelerometro/ Manual para la captación de valores de los ejes X, Y y Z en un dispositivo Android. Fuente: Sekth Droid 10 Práctica 3 Referencias - [REF 1] Acelerómetro, Wikipedia. http://es.wikipedia.org/wiki/Aceler%C3%B3metro - [REF 2] Giroscopio y acelerómetros usados en teléfonos inteligentes. http://www.ehowenespanol.com/giroscopio-acelerometros-usadostelefonos-inteligentes-info_189829/ 11 Práctica 3 Edición sostenible. Si no es necesario, no lo imprima. Si lo imprime, hágalo a doble cara.