Магнитометр меряет напряженность магнитного поля, возвращая его проекции на свои три оси координат (оси чувствительности). Магнитное поле Земли довольно сильное и однородное, поэтому, если мы будем вращать датчик и строить его показания как 3Д график, то получим сферу. В реальности мы получим перекособоченный эллипсоид, сдвинутый от начала координат. Это означает, что рядом присутствуют ферромагнетики и другие источники магнитного поля, а также оси чувствительности магнитометра могут быть не особо взаимно перпендикулярны и не начинаться с нуля. Чтобы побороться с этим, параметры этого эллипсоида определяют подгонкой методом наименьших квадратов, а потом определяют, что за матрица (т.н. аффинное преобразование) переводит этот эллипсоид в сферу с центром в начале координат. Вуаля - теперь можно получить неискаженное значение магнитного поля, применив к измерению эту матрицу. Поэтому для использования магнитометра надо накопить достаточно данных для построения эллипсоида чтобы получить его матрицу. (Для этого, собственно, владельцы квадрокоптеров с магнитометром в автопилоте и вращают их полчаса перед тем как запустить) Вот результат вращения одного из датчиков, на первом графике отложено Y(X), на втором Z(X) - {{ :trenajor:sphere.png?nolink |}} Если массив данных магнитометра образовал почти идеальную сферу в пространстве - причем для обоих магнитометров, используемых в проекте, то это очень хорошо - т.к. поэтому для получения неискаженных данных необязательно возиться с эллипсоидом и методом наименьших квадратов, достаточно просто вычесть смещение. Программы в директории a.calibrator2.pedals и a.calibrator2.stick предназначены для калибровки магнитометров педалей и рукоятки соответственно. Сначала надо собрать данные для эллипса (выбрать соответственный переключатель и запустить таймер выбором соответствующего пункта меню), получив аналогичную картинку. Потом выключить таймер и рассчитать смещение по пункту меню Эллипсоид->рассчитать(от собранных данных). Далее надо проделать процедуру центровки - поместить рукоятку или педали в начальное положение, выбрать соответствующий переключатель, собрать данные опять таки включив и затем выключив таймер, и рассчитать по пункту меню центр->рассчитать, для рукоятки или педалей. Потом выбрать пункт меню файл->сохранить все. Параметры СОМ-порта (Имя, скорость, parity) содержатся в файле comport.txt