2017-05-16 4 views
-1

デバイスの動きを検出したい場所にアプリケーションを構築しようとしています。 基本的に私はデバイスの落ちを検出する必要があります。 誰でも私がこれを行う方法について私に助けてくれますか?重力に関して加速度計を使用していますか?重力に対するデバイスの動きを検出する

答えて

0

ハイパスフィルタを使用する必要があります。ハイパスフィルタを使用して重力のようなゆっくりと変化する力を除外すると、残りの力は、垂直方向の力。あなたは、その構成部品にその分解に動作している方向に重力見つける必要があり

values[0] //acceleration on x axis 
values[1] //acceleration on y axis 
values[2] //acceleration on z axis 

これは加速度のコンポーネントが各軸に分解する方法です。重力の大きさは常に9.8になりますが、方向と、それがどのように構成部品に分解されるかは変わります。我々は重力の値を取得し、重力のような配列でそのベクトルを保存することができると仮定すると、[3]:

gravity[0] //gravity x axis 
gravity[1] //gravity y axis 
gravity[2] //gravity z axis 

The total acceleration, T, on the phone is T = g + a. To get just a we would need a = T - g: 

linear_acceleration[0] = event.values[0] - gravity[0]; 
linear_acceleration[1] = event.values[1] - gravity[1]; 
linear_acceleration[2] = event.values[2] - gravity[2]; 

それはベクトル演算だから、これは要素によって、すべての要素の計算方法をお知らせ。 すべての値を抽出した後、ハイパスフィルタを適用し、linear_acceleration [2]をしきい値と比較しなければなりません(多分、約9に保つことができます)。

関連する問題