2016-05-12 5 views
0

私は加速度計センサーを使用してデバイスが落ちる高さを計算しようとしていますが、運はありません。Android:加速度計を使用してどのデバイスからの高さを計算するには?

私はデバイスの落下を検出することができました。

同じことを試したことがあるかどうかについてのご意見や回避策をご紹介ください。

以下は試したコードです。

のプライベート無効handleSensorChanged(SensorEventイベント){ 場合(event.sensor.getType()== Sensor.TYPE_ACCELEROMETER){事前に

 double gvt=SensorManager.STANDARD_GRAVITY; 

     //int sensor=event.sensor.getType(); 
     double xx=event.values[0]; 
     double yy=event.values[1]; 
     double zz=event.values[2]; 

     double aaa=Math.round(Math.sqrt(Math.pow(xx, 2) 
             +Math.pow(yy, 2) 
             +Math.pow(zz, 2))); 




     if (aaa<=6.0) { 
      min=true; 
      mintime=System.currentTimeMillis(); 
      minXx = zz; 

      Log.d(TAG,"Min: xx, yy, zz = "+xx+", "+yy+", "+zz); 
     } 

     if (min==true) { 
      acc+=aaa; 
      count++; 
      i++; 
      if(aaa>=13.5) { 
      max=true; 
      maxtime = System.currentTimeMillis();    
      maxXx = zz; 
      Log.d(TAG,"Max: xx, yy, zz = "+xx+", "+yy+", "+zz); 
      } 
     } 

     if (min==true && max==true) { 
      double time = (maxtime - mintime); 
      //double distance = (minXx-maxXx)* Math.pow(time,2)/1000; 
      double maxVelocity = (aaa/count)*time; 
      double avgVelocity = maxVelocity/2; 
      double distance = (avgVelocity * time)/1000; 

      String msg = "FALL DETECTED!!!!! Duration = "+time + " milli secs, distance = "+ distance +" cms mtrs"; 
      Toast.makeText(this, msg,Toast.LENGTH_LONG).show(); 
      Log.d(TAG, msg); 
      v.vibrate(75); 
      resetValues(); 
     } 

     if (i>4) { 
      resetValues(); 
     } 
     } 

}' 

感謝。

+0

お試しいただいた内容をご提供いただき、ご希望のとおりに機能していないものについて概要を説明してください。 – dharms

+0

@dharms、私はコードを追加しました。ご存知の方はお手伝いください。 – Pampapathi

答えて

1

加速度計は速度を変更します。これには、秋の終わりに突然停止することがあります。そのようなデータを使用してトラバーサルを把握する手法があります。ここではいくつかの読み物です:

https://en.wikipedia.org/wiki/Dead_reckoning https://en.wikipedia.org/wiki/Inertial_navigation_system

は、しかし、基本的なジェスチャーの解釈のために設計された消費者向けデバイスが正確であることを行っていない、そしてそれは難しいだろうので、あなたは、偽陽性と偽陰性を持っていますそのような動きをデバイスに起こりうる他のものと区別することができます。それであなたの期待を管理してください。

+0

私はあなたに同意する必要があります、私は、アルゴリズムをたくさん試した後に、デバイスが移動を開始する場合、加速度計を使用するために追加する、私は机の上でも、いくつかの加速度計が偽陽性の多くをキャッチすることがわかります。だから、値を「訂正」するためにアルゴを必要とし、アルゴの名前を覚えていない...アルファ値を0から1まで使用する(誰かが助けることができる場合) – AxelH

関連する問題