====== Калибровка компаса ====== В связи с искажениями от внешних магнитных полей, для работы [[amp>product/troyka-imu-10-dof?utm_source=man&utm_campaign=troyka-magnetometer-compass-calibrate&utm_medium=wiki|IMU-сенсора]] или [[amp>product/troyka-magnetometer-compass?utm_source=man&utm_campaign=troyka-magnetometer-compass-calibrate&utm_medium=wiki|магнитометра]] в режиме компаса, их необходимо откалибровать. {{ :articles:troyka-magnetometer-compass-calibrate:troyka-magnetometer-compass-calibrate.1.jpg?nolink |}} ===== Виды искажений ===== На показания электронного компаса действуют два типа искажений: * **Hard Iron Distortion** создаётся дополнительным магнитным полем, которое генерируют внешние объекты. Например динамики звуковых колонок, провода питания и аккумуляторная батарея. * **Soft Iron Distortion** создается внешними металлическими предметами, искажающими уже имеющееся магнитное поле. Например корпус двигателя, проводка или металлические болты.{{ :articles:troyka-magnetometer-compass-calibrate:troyka-magnetometer-compass-calibrate.2.jpg?nolink |}} Для калибровки компаса [[#железная_часть|настройте железо]] и [[#программная_часть|выполните программную настройку]]. ===== Железная часть ===== Рассмотрим калибровку компаса на одной из платформ [[amp>collection/arduino?utm_source=man&utm_campaign=troyka-magnetometer-compass-calibrate&utm_medium=wiki|Arduino]], например, [[amp>product/arduino-uno?utm_source=man&utm_campaign=troyka-magnetometer-compass-calibrate&utm_medium=wiki|Uno]]. - [[:products:troyka-magnetometer-compass#пример_работы_для_arduino_и_xod|Подключите компас к плате Arduino.]] - Прошейте плату скетчем приведённым ниже. // Пример выводит сырые значения магнитометра, которые // используются для последующей калибровки сенсора // Подробности читайте в документации про калибровку магнитометра // http://wiki.amperka.ru/articles:troyka-magnetometer-compass-calibrate // Библиотека для работы с модулями IMU #include // Создаём объект для работы с магнитометром/компасом Compass compass; void setup() { // Открываем последовательный порт Serial.begin(9600); // Инициализируем компас compass.begin(); compass.setRange(CompassRange::RANGE_4GAUSS); } void loop() { // Выводим «сырые» значения компаса по трём осям Serial.print(compass.readX()); Serial.print(","); Serial.print(compass.readY()); Serial.print(","); Serial.println(compass.readZ()); delay(100); } ===== Программная часть ===== Рассмотрим программную настройку на OS Windows. - {{:продукты:troyka-compass_calibration:magmaster.zip|Скачайте и установите}} утилиту MagMaster.{{ :articles:troyka-magnetometer-compass-calibrate:troyka-magnetometer-compass-calibrate-soft.1.png?nolink |}} - В открывшимся окне выберите номер «COM-порта» и нажмите кнопку «Open».{{ :articles:troyka-magnetometer-compass-calibrate:troyka-magnetometer-compass-calibrate-soft.2.post.png?nolink |}} - Последовательно нажимайте на вопросительные знаки и устанавливайте датчик в положение, соответствующее всплывающей картинке.{{ :articles:troyka-magnetometer-compass-calibrate:troyka-magnetometer-compass-calibrate-soft.3.post.png?nolink |}} - После каждого замера сохраняйте текущие значения компаса с помощью кнопки «Point».{{ :articles:troyka-magnetometer-compass-calibrate:troyka-magnetometer-compass-calibrate-soft.4.post.png?nolink |}} - Далее нажмите на кнопку «Calculate Transformation Matrix and Bias», после чего получите: - Transformation Matrix — матрицу масштаба и ортогонализации. - Bias — значения смещения по всем трем осям{{ :articles:troyka-magnetometer-compass-calibrate:troyka-magnetometer-compass-calibrate-soft.5.post.png?nolink |}} В заключении сохраните полученную корректировочную матрицу «Transformation Matrix» и значения сдвигов по трем осям «Bias» для дальнейшего использования с компасом или IMU-сенсором. ===== Список поддерживаемых модулей ===== * [[amp>product/troyka-imu-10-dof?utm_source=man&utm_campaign=troyka-magnetometer-compass-calibrate&utm_medium=wiki|IMU-сенсор в магазине]] / [[products:troyka-imu-10-dof-v2|Документация]] * [[amp>product/troyka-magnetometer-compass?utm_source=man&utm_campaign=troyka-magnetometer-compass-calibrate&utm_medium=wiki|Магнитометр в магазине]] / [[products:troyka-magnetometer-compass|Документация]]