LINUX.ORG.RU

История изменений

Исправление I-Love-Microsoft, (текущая версия) :

quickquest Anon prischeyadro amaora KivApple psv1967

Предлагаю ознакомиться с моими данными. Тут я просто поднял датчики, повертел их, положил на стол в том же месте и положении (в идеале должно вернуться в ноль): http://pastebin.com/a1Gg5XFk

# gyro+acc          6 skips=  80
G    -342    -579       5
A     132      -3      -8
Тут значение после «gyro+acc» это просто счетчик, данные поступают 50 раз в секунду (50 Гц, за минуту это значение увеличивается на 3000). skips это число чтений по I2C в ожидании бита готовности (чето прерывания отвалились, поэтому я просто вычитываю статусы). G - данные гироскопа, A - данные акселерометра XYZ (128 равно единице G).

Значения гироскопа считаются так:

float sf = (float) 0.02 / 14.375; // 20 ms, и еще коэф. из доков
f_xyz[0] += xyz[0] * sf;
f_xyz[1] += xyz[1] * sf;
f_xyz[2] += xyz[2] * sf;
xyz - это данные что видно во всех строчках G, а f_xyz это аккумулятор, в котором с учетом коэффициента sf получаются тупо градусы.

Как теперь из этого получить координаты? Чтобы при визуализации я увидел что поднялась платка, крутилась, двигаласть вверх-низ и легла обратно?

Исправление I-Love-Microsoft, :

quickquest Anon prischeyadro amaora KivApple psv1967

Предлагаю ознакомиться с моими данными: http://pastebin.com/a1Gg5XFk

# gyro+acc          6 skips=  80
G    -342    -579       5
A     132      -3      -8
Тут значение после «gyro+acc» это просто счетчик, данные поступают 50 раз в секунду (50 Гц, за минуту это значение увеличивается на 3000). skips это число чтений по I2C в ожидании бита готовности (чето прерывания отвалились, поэтому я просто вычитываю статусы). G - данные гироскопа, A - данные акселерометра XYZ (128 равно единице G).

Значения гироскопа считаются так:

float sf = (float) 0.02 / 14.375; // 20 ms, и еще коэф. из доков
f_xyz[0] += xyz[0] * sf;
f_xyz[1] += xyz[1] * sf;
f_xyz[2] += xyz[2] * sf;
xyz - это данные что видно во всех строчках G, а f_xyz это аккумулятор, в котором с учетом коэффициента sf получаются тупо градусы.

Исходная версия I-Love-Microsoft, :

http://www.linux.org.ru/people/quickquest/profile http://www.linux.org.ru/people/Anon/profile http://www.linux.org.ru/people/prischeyadro/profile http://www.linux.org.ru/people/amaora/profile http://www.linux.org.ru/people/KivApple/profile http://www.linux.org.ru/people/psv1967/profile

Предлагаю ознакомиться с моими данными: http://pastebin.com/a1Gg5XFk

# gyro+acc          6 skips=  80
G    -342    -579       5
A     132      -3      -8
Тут значение после «gyro+acc» это просто счетчик, данные поступают 50 раз в секунду (50 Гц, за минуту это значение увеличивается на 3000). skips это число чтений по I2C в ожидании бита готовности (чето прерывания отвалились, поэтому я просто вычитываю статусы). G - данные гироскопа, A - данные акселерометра XYZ (128 равно единице G).

Значения гироскопа считаются так:

float sf = (float) 0.02 / 14.375; // 20 ms, и еще коэф. из доков
f_xyz[0] += xyz[0] * sf;
f_xyz[1] += xyz[1] * sf;
f_xyz[2] += xyz[2] * sf;
xyz - это данные что видно во всех строчках G, а f_xyz это аккумулятор, в котором с учетом коэффициента sf получаются тупо градусы.