LINUX.ORG.RU
ФорумTalks

InvenSense знатные извращенцы

 hardware-изврат


0

1

Это та самая контора, которая делает MPU-9250 - IMU с компасом в одном корпусе.

Девайс подключается к i2c шине. И доступ к imu и термометру идет через «нормальные» регистры. А еще там есть i2c-master. И компас висит как раз на этом мастере. В итоге, чтобы прочитать компас, надо настроить i2c master и через его регистры делать i2c запросы на его шину к компасу.

Ну не изврат ли? Если так хочется сделать компас отдельным устройством, не лучше ли его повесить на основную шину, но по другому адресу? WTF?

★★★★★

Последнее исправление: cvs-255 (всего исправлений: 1)

Это нормальная практика, они не единственные извращенцы. Многие такое дерьмо делают, и не у всех есть битик «bypass», пробрасывающий внутренний мастер на основную шину. Насколько знаю, в случае MPU-9250 и MPU-6050 сделано потому, что внутренний мастер должен работать независимо от основной шины. Компас будет дергать motion processor встроенный, и это единственный способ избежать конфликта, когда у тебя на шине будет работать два мастера.

ncrmnt ★★★★★
()
Последнее исправление: ncrmnt (всего исправлений: 1)
Ответ на: комментарий от ncrmnt

Компас будет дергать motion processor встроенный

А зачем ему его дергать?

UPD: еще раз посмотрел даташит... Да, пихают же всякое ненужно. Мне бы хватило и просто данных с гироскопов, акселерометра и компаса. А фильтр Калмана я и сам умею применять, и даже лучше, ибо знаю моменты инерции и моменты сил своего девайса.

cvs-255 ★★★★★
() автор топика
Последнее исправление: cvs-255 (всего исправлений: 2)

У MPU-6050 есть ByPass режим. Надо просто поставить нужный битик и всё будет выглядеть как будто компас подключен к основной шине I2C. Возможно, у MPU-9250 тоже есть такое.

KivApple ★★★★★
()
Ответ на: комментарий от cvs-255

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

ncrmnt ★★★★★
()
Ответ на: комментарий от ncrmnt

Кстати, ты ведь тоже делаешь шилд для создания квадрика?

Ты уже подумал с написанием ПО для расчета положения в пространстве? Я этим вопросом несколько лет назад для одной компании занимался, это _очень_ нетривиальная задача.

Суть проблемы в том, что при интегрировании данных с гироскопов копится ошибка. Для борьбы с этим используем фильтр Калмана, используя при этом данные с акселерометра для нахождения направления «вниз». Но акселерометр показывает не направление силы тяжести, а силы тяжести + центробежной силы. А чтобы найти центробежную силу, надо знать скорость вращения в системе отсчета Земли, а для этого надо знать положение, тогда помножив скорость с гироскопов на матрицу поворотов, мы получим вращение в системе Земли. В итоге ошибка копится по схеме: ошибка в положении -> ошибка в центробежной силе -> ошибка в направлении «вниз» -> еще бОльшая ошибка в положении.

В итоге, за несколько минут полета с поворотами планер переворачивается. Есть компас и GPS для определения, когда мы летим по дуге, но их точность довольно никакая для данной задачи.

cvs-255 ★★★★★
() автор топика
Последнее исправление: cvs-255 (всего исправлений: 1)
Ответ на: комментарий от cvs-255

Приходит в голову мысль воспользоваться тем, что бОльшую часть времени движение без существенного ускорения, так что можно брать в Калмане рассчитанное половение «вниз» с учетом центробежной с большим коэффициентом достоверности, а без учета - с поменьше.

И я почему-то сомневаюсь, что все это есть в моушн-процессоре;)

cvs-255 ★★★★★
() автор топика
Последнее исправление: cvs-255 (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.