如何在Android智能手机中使用加速度传感器...
时间:2022-11-16 00:00:00
您可能正在寻找的方程式是:
Velocity = (Gravity*Acceleration)/(2*PI*freq)
正确使用这种方法(公制)的单位是
Gravity = mm/s squared = 9806.65
Acceleration = average acceleration over 1 second
Frequency = Hz (of the acceleration waveform over 1 second)
例如,如果您从加速度计的所有三个轴中收集数据,您将执行以下操作以获取3D空间加速波形(原始值):
inputArray[i] = sqrt(X*X Y*Y Z*Z);
收集数据后,只使用本应收集的波形中的样本数量(如果两个值之间有1ms延迟只能使用1000个值).
将这些值相加并除以样本数量即可得到平均值(如果加速度计数据为负值,则可能需要使所有值均为正值),您可以使用此算法在找到平均值之前执行此操作.
for(i = 0; i < 1000; i ){
if(inputArray[i] < 0){
inputArray[i] = inputArray[i] - (inputArray[i]*2);
}
}
在获得平均加速输出后,需要执行上述公式.
static double PI = 3.1415926535897932384626433832795;
static double gravity = 9806.65;
double Accel2mms(double accel, double freq){
double result = 0;
result = (gravity*accel)/(2*PI*freq);
return result;
}
例如,一个挥杆动作的平均加速度为1秒内3 gs:
注:该计算基于正弦波形,因此该频率将代表加速度计的物理运动,而不是采样率的频率
Accel2mms(3, 1);
1秒内3 gs,频率为1(一个方向摆动1)= 4682.330468 mm / s或4.7米.
希望这是你想要的.
请记住,该计算是基于正弦波形,但适用于单个运动(频率1),因此可能不准确.但理论上应该是可行的.