У меня есть приложение для сохранения акселерометра и гироскопа и некоторых других данных датчиков. Но данные акселерометра с оси Z неправильны, поэтому большие ... иногда даже данные X и Y не близки к 0, поскольку они должны быть, но близки к 2-3 ... Ось Z дает мне данные около 10 ... Is есть ли какая-либо ошибка в коде или? Любая идея?Данные акселерометра, ось Z дает неправильные данные?
выборка данных:
0|19:57:55:584|-0.08912659|-0.015655518|9.652756
1|19:57:55:653|-0.021209717|0.008834839|9.677216
2|19:57:55:704|-0.035308838|0.032958984|9.677216
3|19:57:55:753|-0.035308838|0.048065186|9.658646
4|19:57:55:855|-0.015686035|0.012008667|9.666275
5|19:57:55:906|-0.027709961|-0.006378174|9.6380005
6|19:57:55:955|-0.0539093|-0.04698181|9.582184
7|19:57:56:057|-0.05491638|-0.0053100586|9.64032
8|19:57:56:109|-0.0789032|0.020812988|9.684845
9|19:57:56:164|-0.16851807|-0.02734375|9.640045
10|19:57:56:258|-0.10827637|-0.035888672|9.696838
11|19:57:56:308|-0.09414673|-0.038009644|9.72084
12|19:57:56:358|-0.0569458|-0.030395508|9.680252
13|19:57:56:459|-0.06288147|-0.0049591064|9.663452
14|19:57:56:509|-0.047302246|-0.015167236|9.665237
15|19:57:56:563|-0.11026001|0.006500244|9.676056
Код:
@Override
public void onSensorChanged(SensorEvent event) {
float x = event.values[0];
float y = event.values[1];
float z = event.values[2];
SimpleDateFormat time = new SimpleDateFormat("HH:mm:ss:SSS");
String s = time.format(new java.util.Date());
try {
writer.write(i+"|"+s+"|"+x+"|"+y+"|"+z+"\n");
} catch (IOException e) {
e.printStackTrace();
}
i++;
}
Должен ли я делить всю ось или только Z? Thx – Mirko
Разделите все оси, если хотите согласованные значения. Либо оставайтесь в единицах м/сек^2, либо в единицах G. Почему вы хотите, чтобы одна ось находилась в одной единице, а другие оси - в другом блоке? Кстати, выберите мой ответ, если вам это нравится. – stackoverflowuser2010
спасибо Могу ли я сделать что-то вроде этого? float x1 = event.values [0]; float y1 = event.values [1]; float z1 = event.values [2]; float x = (float) (x1/9.81); float y = (float) (y1/9.81); float z = (float) (z1/9.81); – Mirko