manejode sensores
TRANSCRIPT
![Page 1: Manejode sensores](https://reader036.vdocuments.co/reader036/viewer/2022071901/55c11eafbb61eb2c2a8b4576/html5/thumbnails/1.jpg)
EJERCICIO 4
DETECTANDO SENSORES
EN ANDROID Andrés Gerardo Fuentes Covarrubias
Sistemas Embebidos y Control
![Page 2: Manejode sensores](https://reader036.vdocuments.co/reader036/viewer/2022071901/55c11eafbb61eb2c2a8b4576/html5/thumbnails/2.jpg)
Descripción general
Android permite acceder a los sensores internos del
dispositivo a través de las clases:
Sensor, SensorEvent, SensorManager, y la
interfaz SensorEventListener, del
paquete android.hardware.
La clase Sensor acepta ocho tipos de sensores.
Aunque, los sensores disponibles varían en función del
dispositivo utilizado:
Giroscopio, 3 dimensiones, detectar giros. TYPE_GYROSCOPE
Orientación, 3 dimensiones, indicar dirección a la que apunta el
dispositivo. TYPE_ORIENTATION
![Page 3: Manejode sensores](https://reader036.vdocuments.co/reader036/viewer/2022071901/55c11eafbb61eb2c2a8b4576/html5/thumbnails/3.jpg)
Ejercicio 4. Listar los sensores del
dispositivo
No todos los dispositivos disponen de los
mismos sensores. Por lo tanto, la primera
tarea consiste en averiguar los sensores
disponibles.
![Page 4: Manejode sensores](https://reader036.vdocuments.co/reader036/viewer/2022071901/55c11eafbb61eb2c2a8b4576/html5/thumbnails/4.jpg)
Procedimiento/Metodología
1. Crea un nuevo proyecto con nombre Sensores.
2. Añade la siguiente propiedad al TextView de res/layout/main.xml:
android:id="@+id/salida"
3. Inserta este código en la actividad principal:
![Page 5: Manejode sensores](https://reader036.vdocuments.co/reader036/viewer/2022071901/55c11eafbb61eb2c2a8b4576/html5/thumbnails/5.jpg)
Discusión (1)
El método comienza indicando el Layout de la actividad y obteniendo el TextView salida, donde mostraremos los resultados. A continuación vamos a vamos a utilizar el método getSystemService para solicitar al sistema servicios específicos. Este método pertenece a la clase Context (Como somos Activity también somos Context) y será muy utilizados para acceder a gran cantidad de servicios del sistema. Al indicar como parámetro SENSOR_SERVICE, indicamos que queremos utilizar los sensores. Lo haremos a través del objeto sensorManager. En primer lugar llamamos al método getSensorList() del objeto para que nos de listaSensores, una lista de objetos Sensor. La siguiente línea recorre todos los elementos de esta lista parar llamar a su método getName() para mostrar el nombre de sensor.
![Page 6: Manejode sensores](https://reader036.vdocuments.co/reader036/viewer/2022071901/55c11eafbb61eb2c2a8b4576/html5/thumbnails/6.jpg)
Discusión (2)
Ejecuta el programa. Esta es una lista de los valores devueltos por el código anterior ejecutándose en el Galaxy ACE GT5830L:
BMA220
MMC314X
Mag & Acc Combo Orientation Sensor
TAOS
Gravity Sensor
Linear Acceleration Sensor
Rotation Vector Sensor
![Page 7: Manejode sensores](https://reader036.vdocuments.co/reader036/viewer/2022071901/55c11eafbb61eb2c2a8b4576/html5/thumbnails/7.jpg)
Discusión (3)
El AK8976A es una combinación de acelerómetro de tres ejes y magnetómetro de
tres ejes. Combinando la lectura de los campos gravitatorio y magnético terrestres
proporciona también información de orientación. Incluye además un sensor interno
de temperatura, útil para comprobar si el móvil se está calentado demasiado.
Como hemos visto la case Sensor nos permite manipular los sensores. A
continuación se listan los métodos públicos de la clase Sensor:
La clase SensorManager tiene además tres métodos (getInclination,
getOrientation y getRotationMatrix), usados para calcular transformaciones
de coordenadas.
![Page 8: Manejode sensores](https://reader036.vdocuments.co/reader036/viewer/2022071901/55c11eafbb61eb2c2a8b4576/html5/thumbnails/8.jpg)
Resultados