ANDROID_MARS学习笔记_S05_004_过滤杂质,得到真正的加速度

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ANDROID_MARS学习笔记_S05_004_过滤杂质,得到真正的加速度相关的知识,希望对你有一定的参考价值。

一、简介

技术分享

二、代码
1.java

(1)MainActivity.java

 1 import android.app.Activity;
 2 import android.content.Context;
 3 import android.hardware.Sensor;
 4 import android.hardware.SensorEvent;
 5 import android.hardware.SensorEventListener;
 6 import android.hardware.SensorManager;
 7 import android.os.Bundle;
 8 
 9 public class MainActivity extends Activity {
10     /** Called when the activity is first created. */
11     
12     private SensorManager sensorManager;
13     private Sensor accelerometerSensor;
14     private float gravity [] = new float[3];
15     private float linear_acceleration [] = new float[3];
16     @Override
17     public void onCreate(Bundle savedInstanceState) {
18         super.onCreate(savedInstanceState);
19         setContentView(R.layout.activity_main);
20         
21         sensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
22         accelerometerSensor = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
23         sensorManager.registerListener(new SensorEventListener() {
24             
25             public void onSensorChanged(SensorEvent event) {
26                 
27                 /*System.out.println("x---" + event.values[0]);
28                 System.out.println("y---" + event.values[1]);
29                 System.out.println("z---" + event.values[2]);*/
30                   final float alpha = 0.8f;
31 
32                   //用滤波器过滤掉杂质
33                   gravity[0] = alpha * gravity[0] + (1 - alpha) * event.values[0];
34                   gravity[1] = alpha * gravity[1] + (1 - alpha) * event.values[1];
35                   gravity[2] = alpha * gravity[2] + (1 - alpha) * event.values[2];
36 
37                   linear_acceleration[0] = event.values[0] - gravity[0];
38                   linear_acceleration[1] = event.values[1] - gravity[1];
39                   linear_acceleration[2] = event.values[2] - gravity[2];
40             
41                   System.out.println(linear_acceleration[0]);
42                   System.out.println(linear_acceleration[1]);
43                   System.out.println(linear_acceleration[2]);
44 //                  System.out.println(gravity[0]);
45 //                  System.out.println(gravity[1]);
46 //                  System.out.println(gravity[2]);
47             }
48             
49             public void onAccuracyChanged(Sensor sensor, int accuracy) {
50                 
51             }
52         }, accelerometerSensor, SensorManager.SENSOR_DELAY_NORMAL);
53     }
54 }

 

 

以上是关于ANDROID_MARS学习笔记_S05_004_过滤杂质,得到真正的加速度的主要内容,如果未能解决你的问题,请参考以下文章

ANDROID_MARS学习笔记_S01原始版_004_TableLayout

ANDROID_MARS学习笔记_S03_004_getAllProvidersLOCATIONLISTENERgetBestProvider

ANDROID_MARS学习笔记_S01_004dpidp(dip)及计算

ANDROID_MARS学习笔记_S04_004_用HTTPCLENT发带参数的get和post请求

ANDROID_MARS学习笔记_S05_006_距离传感器

ANDROID_MARS学习笔记_S05_002_给传感器注册listener