Как получить азимутальный угол одновременно с измерением акселерометра! ОРИЕНТАЦИЯ против АКСЕЛЕРОМЕТРА - PullRequest
2 голосов
/ 05 мая 2011

Я делаю это приложение, которое работает как шагомер, подсчитывающий шаги, но я хочу, чтобы оно показывало ориентацию для каждого шага.

Что я делаю, так это регистрирую двух слушателей событий и затем для каждого onsensorchanged событие Я собираю значения sensor.TYPE_ORIENTATION, чтобы получить угол азимута, и sensor.TYPE_ACCELEROMETER, где я вижу, задан шаг или нет.

В настоящее время яполучить значения правильно, но я хочу пиковую только азимутальный угол, когда счетчик шагов сделан! Как мне это сделать?

Я предполагаю, что это будет сделано в методе OnSensorChanged, но яя не понимаю, как просто вызвать датчик ориентации, когда датчик акселерометра активирован и шаг считается ...

Если заглянуть внутрь кода, это будет примерно так: после регистрации двух слушателей, ACCELEROMETER и ORIENTATION

OnSensorChanged(SensorEvent event)
{
    if((event.sensor.getType()==Sensor.TYPE_ACCELEROMETER))

    accValues=event.values;

    // NOW get the orientation azimuth value at this time..
    orientationValues=event.values;
}

Надеюсь, что кто-то может прояснить мне это ..

1 Ответ

2 голосов
/ 29 февраля 2012

эй, если вам нужен азимутальный угол, вы можете получить его с помощью датчиков ACCELEROMETER и MAGNETOMETER .Сначала получите данные акселерометра и данные магнитометра. Далее используйте функцию SensorManager.getRotationMatrix (Rotation_data, Inclination_data, acc_data, mag_data) .Вы должны указать acc_data и mag_data в качестве входных данных, и вы получите Rotation_data и Inclination_data в качестве выходных данных.Просто передайте их как пустые массивы изначально.как только вы получите Rotation_data , используйте SensorManager.getOrientation (Rotation_data, angles) . angles - это массив, который вы получаете в качестве вывода. Первоначально он также передается как пустой массив.после вызова функции вы получите angles [0] как азимутальный, angles [1] - шаг и angles [3] - крен.Все используемые массивы представляют собой одномерный массив из 3 элементов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...