Компас MPU-9250 всегда возвращается к нулю
Я пытаюсь создать IMU с 9 степенями свободы, используя микросхему MPU-9250, которая содержит гироскоп, акселерометр и компас. Я успешно реализовал слияние датчиков с 6 степенями свободы с помощью чипа DMP и библиотеки Sparkfun, но у меня все еще есть некоторый дрейф рыскания, поэтому я хочу использовать его бортовой компас для 9 степеней свободы.
К сожалению, DMP не может этого сделать, поэтому я попробовал работу Крисвинера на слиянии датчиков с 9 степенями свободы. Я поворачиваю печатную плату, рыскание движется в правильном направлении, но затем медленно возвращается в исходное положение, и я больше не двигаю печатную плату. Это происходит со многими различными библиотеками для слияния сенсоров, некоторые из которых менее опасны.
Я также пытался просто прочитать необработанные значения mx
и my
и прочитать заголовок, используя atan2(my, mx)
, что сделало вещи чуть лучше, но все же вращение на 360° в реальной жизни совсем не соответствовало вращению на 360° на чипе.
Это известная проблема с MPU-9250, и я упускаю что-то совершенно очевидное, или что здесь может быть не так?
Спасибо за любую помощь!
@Twometer, 👍0
1 ответ
Лучший ответ:
Хорошо, я наконец нашел проблему, и я чувствую себя очень, очень глупо.
- Мне нужно было откалибровать магнитометр с помощью восьмерки.
- Я поставил гигантский цельнометаллический литий-ионный аккумулятор 18650 прямо рядом с чипом магнитометра...
РЕДАКТИРОВАТЬ: после замены 18650 на полимерную батарею, которая находится далеко от чипа, все стало немного лучше, но оба датчика в обоих устройствах по-прежнему возвращают неверные значения.
- Почему неправильно указывает направление компаса, используя показания магнитометра?
- LSM303 не может компенсировать наклон
- Как я могу объявить пользовательские контакты при использовании с ESP8266 в библиотеке MPU9250
- Настройка/отладка доступного 9DOF IMU
- Можно ли предварительно сформировать VIO из двух камер/imu на двухъядерном esp32?
- Как читать и записывать EEPROM в ESP8266
- Как сделать выводы Tx и Rx на ESP-8266-01 в выводах GPIO?
- Как навсегда изменить скорость передачи данных ESP8266 (12e)?