Modulo16 Acelerometro

1,937
-1

Published on

Cómo crear una aplicación que utilice el acelerómetro para determinar en qué dirección de los tres ejes primarios, está moviendo el usuario él dispositivo.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,937
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
13
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Modulo16 Acelerometro

  1. 1. 9/26/2011 Sensores  Windows Phone dispone de varios sensores  Permiten determinar la orientación y movimiento del dispositivo  Es posible acceder a cada sensor  SensorBase<TSensorReading> clase base de APIs sensores  APIs no permitidas bajo pantalla bloqueada ni agentes en segundo plano Acelerómetro Acelerómetro Determina dirección de movimiento  Leer datos del acelerómetro 1. Agregar referencias Expresa la aceleración como vector tridimensional Microsoft.Devices.Sensors  Componente X Microsoft.Xna.Framework (datos = vector 3D XNA)  Componente Y  Componente Z 2. Comprobar si está soportado Detecta la gravedad y dirección en que el usuario mueve el dispositivo i f (!Accel erometer.IsSupported) { // El di spositivo en el que se está ejecutando l a App no dispone de // a cel erómetro, lo cual se notificará a l usuario con un mensaje Mes s ageBox.Show("El dispositivo no dispone de acelerómetro"); } 1
  2. 2. 9/26/2011 Acelerómetro Acelerómetro  Leer datos del acelerómetro  Leer datos del acelerómetro 3. Inicializar el acelerómetro 4. Iniciar el acelerómetroi f (a ccelerometer == null) try{ { // Instanciar el Acelerómetro accelerometer.Start(); accelerometer = new Accelerometer(); } accelerometer.TimeBetweenUpdates = TimeSpan.FromMilliseconds(20); catch (InvalidOperationException ex) accelerometer.CurrentValueChanged+=new EventHandler<SensorReadingEventArgs { <AccelerometerReading>>(accelerometer_CurrentValueChanged); MessageBox.Show("No se pudo iniciar el acelerómetro.");} } Acelerómetro Acelerómetro  Leer datos del acelerómetro  Leer datos del acelerómetro 5. Implementar manejador del evento CurrentValueChanged 7. Implementar método para detener el acelerómetro void accelerometer_CurrentValueChanged(object sender, if (accelerometer != null) SensorReadingEventArgs<AccelerometerReading> e) { { // Detener el acelerómetro // Llamar a la función de actualización del UI pasándole datos del acelerómetro accelerometer.Stop(); Dispatcher.BeginInvoke(() => UpdateUI(e.SensorReading)); } } 6. Actualizar el interfaz de usuario con los nuevos datos private void UpdateUI(AccelerometerReading accelerometerReading) * Nota: para probar una aplicación que lea datos del acelerómetro en el { emulador hay que iniciarlo manualmente en las opciones del emulador. Vector3 acceleration = accelerometerReading.Acceleration; // Mostrar los valores numéricos xTextBlock.Text = "X: " + acceleration.X.ToString("0.00"); yTextBlock.Text = "Y: " + acceleration.Y.ToString("0.00"); zTextBlock.Text = "Z: " + acceleration.Z.ToString("0.00"); } 2
  3. 3. 9/26/2011 Acelerómetro Recursos  Centro de desarrollo de WP7 en MSDN http://msdn.microsoft.com/es-es/windowsphone/default.aspx  AppHub http://create.msdn.com/ Demo: Cómo leer datos del acelerómetro  Windows Phone Developer Blog http://windowsteamblog.com/windows_phone/b/wpdev  MobileNUG http://www.mobilenug.es  Forums http://forums.create.msdn.com/forums/ 3

×