Цитата(Daria @ Aug 21 2008, 20:41)

А немного подробнее об этом?

Ведь датчик откалибруется для суммарного вектора поля, складывающегося из поля, созданного катушками, наведенных полей, и поля земли. при отключении поля катушек, будет уже другое поле, соответсвенно нули сместятся...
Речь идет о
двух процедурах: 1) определение "нулей" по каждой оси и 2) нормирование чувствительностей между осями.
1) Для определения нулей проще всего переворачивать компасный модуль на 180 градусов в направлении каждой из осей (в "кубике", например). Тогда "ноль" - это
среднее арифметическое между полученными значениями в положениях 0 и 180 градусов.
2) Для нормирования чувствительностей между осями нужны
разности откликов на одинаковое изменение поля вдоль каждой из осей. Это можно делать переворачиванием "кубика", а также путем изменения тока в катушке (или системе катушек) на заданную величину.
Процедуру 1) проще делать на компасном модуле (который меньше всего изделия).
Процедуру 2) - тоже проще делать на компасном модуле.
Кроме того, настоятельно рекомендуется повторить процедуру 2) также на всем изделии - хотя бы на одном, если изделие содержит массивные ферромагнитные компоненты.
Для процедуры 2) не нужны абсолютные нули поля, только
разности полей. Для этого достаточно включить ток в катушке, например, 1 А, а потом -1 А (минус один ампер). Суммарное поле с учетом поля Земли при каждом измерении будет другое (неважно какое), но
разность будет соответствовать двум амперам в катушке.
Цитата
Вы делали когда-нибудь это? Получалось? Я просто непонимаю, наверное

Я
не делал компасы на датчиках магнитного поля, если бы взялся делать - любые рекомендации проверял бы на практике для конкретной задачи.
О Вашей задаче я знаю слишком мало и представляю себе что-то вроде автопилота для автомобиля.
Честно говоря, я не стал бы строить "автопилот" на магнитном компасе, ибо такой автопилот, подозреваю, доведет до ближайшего
столба трубопровода.
Неупомянутые тонкости:
И напряжение смещения, и чувствительность датчиков зависят от температуры.
Ферромагнитные компоненты изделия могут намагничиваться до неизвестной степени.
Цитата
И вот еще, как вам такой способ - что, если не использовать третий датчик оси z совсем, а попытаться вычислить третью составляющую, откалибровавшись для двух осей.
Замерить показания датчика в одном положении(X,Y). Зная крены(определенные акселерометром), записать уравнения проекций X1, Y1 на горизонтальную плоскость через X,Y, Z и косинусы, синусы кренов. Два уравнения - три неизвестных(X1,Y1,Z). Затем повернуться на угол 90 градусов, снова замерить показания(X',Y'). Записать X2, Y2. Неизвестные X2,Y2,Z'. Четыре уравнения - шесть неизвестных. Дальше atan(X1/Y1)-atan(X2/Y2)=90 - пятое уравнение, и sqrt(X^2+Y^2+Z^2)=sqrt(X'^2+Y'^2+Z'^2) - шестое уравнение, если считать, что поле однородно. Шесть уравнений, шесть неизвестных. Таким образом, вычислим модуль вектора маг. поля и при последующих измерениях X,Y Z - составляющую просто вычислять.
как вы считате? вся проблема в однородности поля

Теоретически - можно вычислить.
Практически - точность любого датчика ограниченна, тем более для известных мне "твердотельных" акселерометров и магнитных датчиков. Поэтому дополнительная (теоретически - избыточная) информация предпочтительнее.