Надежная перезагрузка данных калибровки IMU BNO055
Я использую IMU BNO055 и библиотеку Adafruit. Я хочу сохранить данные калибровки и загрузить их после выключения и повторного включения микроконтроллера. Библиотека Adafruit предоставляет пример для хранения и восстановления, но на самом деле он не работает. Всегда требуется повторная калибровка магнитометров, но даже при этом библиотека повторно выполняет всю калибровку, включая акселерометры.
Я хотел бы просто восстановить все данные калибровки (включая данные магнитометров), чтобы не выполнять калибровку при запуске IMU.
Я прочитал огромное количество сообщений по этому аргументу, но я действительно не мог понять, как надежно загрузить все данные калибровки при загрузке и избежать их повторной калибровки.
Есть ли кто-нибудь, кому это удалось, и может поделиться кодом?
@L_T, 👍0
Обсуждение1 ответ
Я нашел решение. Достаточно добавить функцию, которая при повторном выполнении калибровки магнитометра проверяет ТОЛЬКО, откалиброван ли магнитометр (при этом калибровка для акселерометра и гироскопа перезагружается из EEPROM).
void performMagCal(void) {
uint8_t system, gyro, accel, mag;
system = gyro = accel = mag = 0;
while (mag != 3) {
bno.getCalibration(&system, &gyro, &accel, &mag);
displayCalStatus();
Serial.println("");
}
Serial.println("\nMagnetometer calibrated!");
}
- Получение стабильных измерений с помощью ИДУ BNO055
- Определение относительно точной скорости с помощью ИДУ
- После восстановления смещения BNO055 на датчике все значения калибровки равны 0.
- Получить значения акселерометра от BNO055 с помощью Единой библиотеки датчиков adafruit
- Проблемные данные I2C к датчику GY955/BNO055 (Китай)
- Получение точных показаний скорости от IMU
- Значения кватернионов из BNO055 недоступны.
- Получение угловой скорости по данным кватернионов (BNO055)
Возможный дубликат [После восстановления смещения BNO055 в датчике все значения калибровки равны 0](https://arduinoprosto.ru/q/56841/after-restoring-the-bno055-offsets-to-the-sensor- калибровочные значения-все), @Juraj
На самом деле нет, это вовсе не дубликат. Действительно, я использую Teensy и Arduino. Кроме того, этот пост не показывает код., @L_T
читайте ответ в дубликате, а не вопрос. невозможно избежать автоматической калибровки. сохраненная калибровка используется только после завершения автоматической калибровки. не тратьте на это время., @Juraj
Спасибо. Тогда что мне делать? В последнем комментарии говорится: «Я бы проигнорировал калибровку. Датчик справится с этим. После включения питания сделайте те же движения, и датчик откалибрует себя». Так должен ли я в конце концов избегать какой-либо калибровки? И стоит ли вообще избегать сохранения калибровки в EEPROM?, @L_T
вы пытаетесь решить какую-то проблему или вы только думали, что должны справиться с калибровкой?, @Juraj
Я просто хочу, чтобы калибровка выполнялась автоматически при загрузке с ранее сохраненными данными. Любое предложение/код?, @L_T
https://github.com/adafruit/Adafruit_BNO055/tree/master/examples/restore_offsets, @Juraj