Компас MPU-9250 всегда возвращается к нулю

esp8266 imu magnetometer

Я пытаюсь создать IMU с 9 степенями свободы, используя микросхему MPU-9250, которая содержит гироскоп, акселерометр и компас. Я успешно реализовал слияние датчиков с 6 степенями свободы с помощью чипа DMP и библиотеки Sparkfun, но у меня все еще есть некоторый дрейф рыскания, поэтому я хочу использовать его бортовой компас для 9 степеней свободы.

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

Я также пытался просто прочитать необработанные значения mx и my и прочитать заголовок, используя atan2(my, mx), что сделало вещи чуть лучше, но все же вращение на 360° в реальной жизни совсем не соответствовало вращению на 360° на чипе.

Это известная проблема с MPU-9250, и я упускаю что-то совершенно очевидное, или что здесь может быть не так?

Спасибо за любую помощь!

, 👍0


1 ответ


Лучший ответ:

1

Хорошо, я наконец нашел проблему, и я чувствую себя очень, очень глупо.

  1. Мне нужно было откалибровать магнитометр с помощью восьмерки.
  2. Я поставил гигантский цельнометаллический литий-ионный аккумулятор 18650 прямо рядом с чипом магнитометра...

РЕДАКТИРОВАТЬ: после замены 18650 на полимерную батарею, которая находится далеко от чипа, все стало немного лучше, но оба датчика в обоих устройствах по-прежнему возвращают неверные значения.

,