private void UpdateAccelerometerPosition(AccelerometerValueChangedEventArgs args) { //Update the top Head graphic //TopHeadPlaneProjection.RotationZ = 360 - args.Yaw; //TopHeadPlaneProjection.RotationX = 360 - args.Pitch; //TopHeadPlaneProjection.RotationY = 360 - args.Roll; var curr = args.CurrentAccelerometerReading; var prev = args.PreviousAccelerometerReading; var deltaX = prev.AccelerationX - curr.AccelerationX; var deltaY = prev.AccelerationY - curr.AccelerationY; var deltaZ = prev.AccelerationZ - curr.AccelerationZ; //Update the textblocks with the IMU orientation values //this.ListenerAccelerometerX.Text = args.CurrentAccelerometerReading.AccelerationX.ToString("0.0"); //this.ListenerAccelerometerY.Text = args.CurrentAccelerometerReading.AccelerationY.ToString("0.0"); //this.ListenerAccelerometerZ.Text = args.CurrentAccelerometerReading.AccelerationZ.ToString("0.0"); this.ListenerAccelerometerX.Text = deltaX.ToString("0.00"); this.ListenerAccelerometerY.Text = deltaY.ToString("0.00"); this.ListenerAccelerometerZ.Text = deltaZ.ToString("0.00"); this.ListenerStepCount.Text = StepsCounted.ToString(); Debug.WriteLine(deltaY.ToString()); //string tosend = "" + this.ListenerYaw.Text + "," + this.ListenerPitch.Text + "," + this.ListenerRoll.Text; //var message = new SharpOSC.OscMessage("/test/1", (float)args.Yaw, (float)args.Pitch, (float)args.Roll); //var sender = new SharpOSC.UDPSender("127.0.0.1", 55555); //sender.Send(message); }
private async Task DetectSteps(AccelerometerValueChangedEventArgs args) { float stepThreshold = _sensitivity; var curr = args.CurrentAccelerometerReading; var prev = args.PreviousAccelerometerReading; var deltaX = prev.AccelerationX - curr.AccelerationX; var deltaY = prev.AccelerationY - curr.AccelerationY; var deltaZ = prev.AccelerationZ - curr.AccelerationZ; if (Math.Abs(deltaY) > stepThreshold) { await TriggerStep(); } }
private async void IntelligentHeadsetSensorPeripheral_AccelerometerValueChanged(INavigationSensorPeripheral sender, AccelerometerValueChangedEventArgs args) { await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, async() => { await DetectSteps(args); //Update the TopHead Image position UpdateAccelerometerPosition(args); //Update the Listener Orientation in the graph await UpdateListenerOrientation(); }); }