none
interpretar los datos del acelerometro RRS feed

  • Pregunta

  • Hola,

     

    Pues eso como se debe interpretar los datos devueltos por el sensor, la idea es rotar una imagen usando el acelerometro.

     

    Un saludo

    miércoles, 9 de noviembre de 2011 16:04

Respuestas

  • Hola nando1200.

    ¿Se ha resuelto tu problema? si es así, POR FAVOR, marca la respuesta correcta con la opción "marcar como respuesta" para que otro usuario con el mismo problema sepa que te ayudo con tu problema.

    Un saludo.


    MCTS - .NET 4.0 Windows Applications
    MCTS - .NET 4.0 Data Access
    MCTS - .NET 4.0 Service Communication Applications
    MCPD - .NET 4.0 Windows Developer
    Visita mi Blog en Geeks.ms
    Sigueme en Twitter
    • Marcado como respuesta nando1200 domingo, 29 de enero de 2012 22:44
    sábado, 26 de noviembre de 2011 6:05
    Moderador

Todas las respuestas

  • Mira el siguiente how-to donde explica como hacer uso del Motion API:

    http://msdn.microsoft.com/en-us/library/hh202984(v=vs.92).aspx

    Un saludo,


    Eugenio


    Eugenio Estrada @eugenioestrada mail@eugenioestrada.es
    miércoles, 23 de noviembre de 2011 16:35
  • Hola!

    Eugenio, ya van varias veces que indicas artículos en Ingles. Este es un foro en Castellano, por favor intenta compartir contenido en castellano, pues mucha gente viene aquí precisamente por tener dificultades con el idioma de Shakespeare. Además, para rotar una imagen con el acelerómetro no necesitas el Motion API, es como matar moscas a cañonazos. De hecho, puede que tu dispositivo tenga Acelerómetro pero no Motion API, porque para el Motion API se requiere que también tengas al menos magnetómetro, que no se incluye en todos los dispositivos. Para esto tienes el api de Acelerómetro y los planos de proyección. (no te lo digo con mal rollo, que conste tio!)

    Básicamente para rotar una imágen tienes que establecer la propiedad Projection del control Image a una instancia de PlaneProjection a la que llamaremos "Proyeccion":

    <Image Margin="20" Source="jjulianBig.jpg">
        <Image.Projection>
            <PlaneProjection x:Name="proyeccion"></PlaneProjection>
        </Image.Projection>
    </Image>
    

    Una vez hecho esto, añadimos a nuestro proyecto referencias a Microsoft.Device.Sensors y Microsoft.Xna.Framework. En nuestro code behind añadimos un using a Microsoft.Device.Sensors y ya podemos iniciar el Acelerómetro y pedirle que nos envíe los cambios de aceleración, que usaremos para rotar nuestra imágen:

            // Constructor
            public MainPage()
            {
                InitializeComponent();
    
                Accelerometer acc = new Accelerometer();
    
                acc.CurrentValueChanged += new EventHandler<SensorReadingEventArgs<AccelerometerReading>>(acc_CurrentValueChanged);
                acc.TimeBetweenUpdates = TimeSpan.FromMilliseconds(20);
                acc.Start();
            }
    
            void acc_CurrentValueChanged(object sender, SensorReadingEventArgs<AccelerometerReading> e)
            {
                this.Dispatcher.BeginInvoke(() =>
                {
                    proyeccion.RotationZ = e.SensorReading.Acceleration.X * -90;
                    proyeccion.RotationX = e.SensorReading.Acceleration.Z * 90;
                });
            }
    

    Con este código tendrás este resultado:

    Puedes variar los valores usados en el planeprojection para rotar en x,y,z y los usados del acelerómetro. Esto es solo un ejemplo.

    Un saludote!

     

     


    MCTS - .NET 4.0 Windows Applications
    MCTS - .NET 4.0 Data Access
    MCTS - .NET 4.0 Service Communication Applications
    MCPD - .NET 4.0 Windows Developer
    Visita mi Blog en Geeks.ms
    Sigueme en Twitter
    • Propuesto como respuesta cgaliana domingo, 27 de noviembre de 2011 17:43
    jueves, 24 de noviembre de 2011 7:15
    Moderador
  • Hola nando1200.

    ¿Se ha resuelto tu problema? si es así, POR FAVOR, marca la respuesta correcta con la opción "marcar como respuesta" para que otro usuario con el mismo problema sepa que te ayudo con tu problema.

    Un saludo.


    MCTS - .NET 4.0 Windows Applications
    MCTS - .NET 4.0 Data Access
    MCTS - .NET 4.0 Service Communication Applications
    MCPD - .NET 4.0 Windows Developer
    Visita mi Blog en Geeks.ms
    Sigueme en Twitter
    • Marcado como respuesta nando1200 domingo, 29 de enero de 2012 22:44
    sábado, 26 de noviembre de 2011 6:05
    Moderador