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.