【发布时间】:2014-12-09 16:09:49
【问题描述】:
我正在我的太阳黑子上试验加速度计。 我试图通过从 X 轴和 Y 轴测量加速度计的值来计算速度,但它们对我来说似乎是随机的。
获取运动的值和方向/方向并计算其速度的正确方法是什么?
这是我的代码:
while (true) {
try {
offset=Math.sqrt(accel.getAccelX()*accel.getAccelX()+accel.getAccelY()*accel.getAccelY());
if(offset<0.1 && offset>-0.1)
offset=0;
v=(offset+ ((offset-anterior))/2)*0.2; //0.2 is 200millisecs
anterior=offset;
Utils.sleep(200);//5 reads per secound
}}...
更新 例如,我将太阳黑子朝一个方向移动,变量 v(velocity) 按随机顺序(非顺序)为我提供从负数到 7ms 的值。如果改变运动的方向,它不会像我预期的那样给我负值。
例子:(如果我把它移到我的右边)
v =0.4771031167950723
v =0.4771031167950723
v =-0.15903437226502407
v =-0.15903437226502407
v =0.33841556285063856
v =0.33841556285063856
v =0.7397145777969039
提前致谢。
【问题讨论】:
-
它们在什么方面看起来是随机的?你并没有真正告诉我们问题出在哪里。
-
对不起,我更新了问题
-
您多久轮询一次数据?您可能需要在一段时间内取某种平均值,以消除硬件内部的波动
-
什么是“太阳黑子”(或“太阳黑子”)?该标签与this 相关,这似乎与您的报价无关。
-
速度是加速度的积分。所有加速度样本的总和将给出相对于未知初始速度的速度,或者只是速度是你假设它最初是静止的。
标签: java embedded accelerometer physics