Цифровой компас. Выбираем компас для охоты: обзор разновидностей и лучших моделей

Я не очень хорош в нахождении мест и определении направлений, но умею читать карты и компас. В наше время навигация при помощи GPS очень популярна и у вас может возникнуть вопрос: зачем мне нужен компас? Итак, я люблю гаджеты и если я смогу сделать что-то сам, то использование такого устройства будет радовать меня намного больше. Поэтому я и решил рассказать вам как сделать компас своими руками.

Я начал с базовой функции, показывающей угол наклона и поворота цифрового магнитометра на ЖК-дисплее, но на микроконтроллере осталось множество неиспользованных аналоговых и цифровых пинов (я использовал совместимый с Ардуино JeonLab mini). Поэтому я подключил к нему цифровой датчик температуры и фототранзистор, подстраивающий яркость подсветки дисплея (одиночный светодиод).

После этого на контроллере осталось еще несколько свободных пинов и у меня есть планы по добавлению дополнительных датчиков, например наружный термометр, устройство анти-вор и т.д.

Картинка в начальной части этой инструкции иллюстрирует устройство в полной сборке и установленное поверх зеркала заднего вида автомобиля. Девайс отображает направление, наклон и температуру в салоне.

Шаг 1: Список компонентов


  • LCD: 16×2 HD44780 LCD (белый текст на синем фоне): это очень популярный дисплей, который легко найти и купить.
  • JeonLab mini v1.3 : это недорогая плата, совместимая с Arduino. На рынке существует несколько небольших плат, совместимых с Arduino, так что просто выберите ту, которую можно спрятать за экранчиком.
  • Цифровой компас: MAG3110 (купил готовый на Ebay): я пробовал другой цифровой компас пару лет назад и мне не удалось его запустить, а эту модель удалось легко запрограммировать. Всё будет объяснено более детально далее в статье.
  • Датчик температуры TMP36 : взгляните на спецификацию с сайта Digikey. Он очень прост в использовании.
  • Фототранзистор LTR-4206E : Я уверен, что любой другой ИК-фототранзистор будет работать не хуже.
  • Регулятор 7805: Вы знаете для чего он нужен. Зарядка автомобиля и напряжение равны примерно 13.8-14.4V, тогда как нам для работы контроллера и монитора нужно 5V.
  • Резисторы и конденсаторы (смотрите схему)
  • Штекер для автомобильного зарядника
  • Плата прототипирования
  • Кнопка-выключатель (нормально открытый, normal open, N.O.) для калибровки магнитометра
  • Цельный медный провод (1мм в диаметре) для крепления девайса
  • Стяжки для кабеля

Шаг 2: Схема устройства

JeonLab mini v1.3 — это Ардуино с минимумом функционала. Для загрузки программы понадобится USB-интерфейс FTDI, который нужен лишь для загрузки кода и последовательной коммуникации.

Подключение дисплея хорошо объяснено в документации к библиотеке на странице руководства к Arduino , для удобства я лишь изменил распиновку. Помните, что вам также нужно изменить пины и в коде программы. Одна важная вещь, о которой стоит сказать — анод светодиодной подсветки дисплея подключен не к V, а к цифровому пину 5, который поддерживает широтно-импульсную модуляцию (ШИМ, pulse-width modulation, PWM), что позволяет управлять яркостью подсветки дисплея.

У датчика температуры TMP36 есть три ножки — V, сигнал и GND. Я соединил сигнальную ножку с одним из аналоговых входов JeonLab mini. Смотрите программу Ардуино в следующем шаге, чтобы понять, как рассчитывается температура по датчику.

Фототранзистор имеет две ножки — положительную и отрицательную. Вы можете держать резистор между отрицательным проводом и GND до тех пор, пока получаете корректные значения в темноте (я тестировал девайс на рассвете) и при ярком освещении (в этом случае вам не нужно ничего измерять, так как мы и так будем получать максимальные значения). Яркость, измеренная этим фототранзистором, используется для регулировки яркости светодиода подсветки дисплея.

Файлы

Шаг 3: Предварительные тесты и рассёт курса

Прежде всего, я собрал и протестировал дисплей, JeonLab mini и магнетометр MAG3110 на макетной плате. У магнетометра есть трёхосевой датчик, но, так как дороги в местности, где я живу, относительно ровные, я решил не заморачиваться со сложными формулами и просто вычислять угол направления при помощи ATAN осей X и Y — всё работает достаточно хорошо.

Сила и направление магнитного поля отличаются от места к месту. Для точного измерения электронного компаса и карты вам нужно знать магнитное отклонение (разница между севером компаса и настоящим географическим севером). В моем коде я не вычитал и не добавлял отклонение, но если в вашем местоположении оно очень большое, вы можете добавить его, чтобы компенсировать разницу.

По предварительным испытаниям я определил максимальные и минимальные значения осей X и Y, представляющие север и юг, но значения распределены по углу неравномерно. Другими словами, центральное значение не представляет восток или запад. Это, как мне известно, обыкновенно для всех полупроводниковых магнитометров, если в них нет встроенных алгоритмов компенсации. Чтобы правильно считывать направление (приблизительно), я обнаружил, что если вы знаете значения для севера и юга для каждой оси, X и Y, то достаточно просто вычислить ATAN разностей текущего значения и средние значения X и Y дадут вам угол направления (см. скетч Arduino в следующем шаге), и всё будет отлично работать. Это не идеальный способ вычисления направления, но мы и не говорим о точности до десятых долей. Я ездил с компасом в своём автомобиле около недели и результаты оказались вполне удовлетворительными.

Шаг 4: Скетч Ардуино

Файлы

Шаг 5: Сборка электронных компонентов




Шаг 6: Собираем из проволки каркас







Бывают в истории споры, заведомо обреченные на нахождение в любом случае неверного ответа, ибо в их основу положена неисправимая ошибка. Один из таких возник совсем недавно, с тех пор как человечество обзавелось системой кто точнее - цифровой компас или магнитный? Люди, задающие такой вопрос, явно что-то не то делали на школьных уроках географии...

Вот первое уточнение вопроса: на какой именно полюс вы хотите попасть?

Ответ вроде бы напрашивается сам собой. Даже явные неучи еще с тех практикумов по географии, когда прибором для ориентации на местности служил компас Адрианова (ныне кстати), волей-неволей выучили, что синий конец компасной стрелки всегда указывает на север. Стало быть, на Соответственно, красный конец - на южный.

Логично, но неверно. Такой ответ был бы уместен, скажем, в XVIII веке, когда шарообразность Земли уже была доказана, но на ее макушку и "антиподную" сторону еще никто из исследователей не заглядывал. Впрочем, в свои юные годы история компаса вообще никаких полюсов не знала. Просто, начиная с древних китайцев, подметили, что намагниченная железная игла все время указывает в одном направлении, и пользовались этим в навигации на суше и на море. А когда компас в XIII веке транзитом через арабов попал в Европу, капитаны кораблей поначалу остерегались использовать новинку - боялись, что их обвинят в колдовстве. Но когда разобрались, что к чему, началась зпоха Великих за что компас справедливо вошел в список величайших изобретений ума человеческого.

А в XIX веке с интервалом в 10 лет британский полярный исследователь Джон Росс и его племянник Джеймс достигли, соответственно, северного и южного магнитных полюсов Земли. И сразу же определили, что с географическими полюсами они никак не совпадают.

Позднее выяснилось: мало того - еще и дрейфуют по земной поверхности. За ними не то, что цифровой не угонится. Средняя скорость их перемещения - 10 километров в год. Примерно три с половиной века северный магнитный полюс блуждал по территории Канады, а во второй половине прошлого века вдруг со "страшной" скоростью (в 2009-м - 64 километра в год!) рванул в Россию, к Так что сейчас стрелка магнитного компаса, если вы будете следовать точно по ней, приведет вас на паковый арктический лед, в точку с координатами 85 градусов 54" минуты северной широты и 147 градусов восточной долготы.

Теперь, когда мы это уяснили, разберемся, как работает цифровой компас, он же электронный. Никаких магнитов тут, понятно, не требуется. Приемник по сигналам со спутников системы GPS или ГЛОНАСС определяет свое местонахождение, накладывает данные на координатную сетку карты и тут же показывает на экране направление на север, но в данном случае - уже на географический полюс.

Все остальные функции электронного устройства определяются его назначением. Наиболее совершенные помогают проложить и запомнить дюжину маршрутов с сотнями контрольных точек, измерять пройденное расстояние и скорость движения, сосчитать сделанные шаги, а заодно и калории, что были сожжены при этом. Положа руку на сердце, это не компас даже, а навигатор.

И тут важно второй раз уточнить вопрос о том, какой цифровой компас вы имеете в виду. Поскольку имеются устройства, использующие для ориентации по сторонам света двухосевые магнитные резисторы. В принципе, они - те же самые классические компасы, сверяющие направление на полюса по Со всеми отсюда вытекающими.

Но, дорогие любители электронных штучек, что же вы будете делать, если вся эта машинерия откажет или останется без энергии? Не пригодится ли вам в этом случае старый добрый магнитный компас?

В связи с широким распространением мобильной платформы android и gps чипов в составе конечных продуктов в частности, я заинтересовался идеей работы цифрового компаса, вокруг которого сейчас возникает так много вопросов.

Итак, рассматриваемый нами объект представляет собой компас, в основу которого положен принцип построения на определении координат, с использованием спутниковых навигационных систем. Однако в практике встречаются случаи, когда компас имеет в своем составе в качестве приемника блок магниторезисторов(принцип изменения сопротивления от положения объекта в абсолютном пространстве) или элементов Холла. Элементы Холла же строятся на основе микромеханических систем, высокочувствительных к изменению магнитного поля в конкретном случае изменение распределения зарядов на кремниевой пластине под влиянием магнитного поля Земли. Приборы на магниторезисторах и элементах Холла олицетворяют собой компас в его классическом виде, как автономный измерительный инструмент, в отличие от систем «собирательного» типа, входная информация для которых поступает непосредственно в виде спутникового сигнала. В итоге системы, завязанные на внешнем источнике информации в сущности являются приборами с индикацией путевого угла в виде компаса.

Так как на практике мы имеем дело чаще всего с определением местоположения и направления посредством именно навигационных систем, примером тому хотя бы android с его приложением google maps, далее приведится принцип работы алгоритма именно такого случая использования:
1. По сигналам со спутников снимаем показания координат приёмника системы спутниковой навигации (и, соответственно, объекта)
2. Засекаем момент времени, в который было сделано определение координат.
3. Выжидаем некоторый интервал времени, достаточно короткий для более качественных результатов.
4. Повторно определяется местоположение объекта.
5. Решается простейшая навигационная задача вычисления вектора скорости движения из полученных координат двух точек и размера временного интервала, после чего, зная вектор, мы с легкостью получаем:
а) направление движения
б) скорость движения
6. Осуществляется переход к шагу 2.

Как видим, работа алгоритма обеспечивается циклично и отправной точкой для начала следующего вектора будет служить конец направляющего вектора за последний временной интервал.
Недостатки этого метода, в применении цифрового компасирования:
если объект неподвижен в абсолютном пространстве, направление движения узнать не получится, точки фиксирования координат совпадают в данном случае.
Как исключение достаточно большие объекты (например, крупные морские суда), где возможно установить 2 приёмника (например, на носу и корме). Таким образом, координаты двух точек можно получить сразу, даже если объект неподвижен, и перейти к пункту 5.
Так же надо брать во внимание точность определения координат спутниковыми системами позиционирования и её влияние на тихоходные объекты, вследствие разброса ошибок определения местоположения.

В последнее время в печати появились материалы об электронном компасе, как правило, эти материалы предполагают использование в таких приборах магниторезистивных датчиков магнитного поля .

Ниже предлагается рассмотреть отдельные вопросы создания электронного компаса с применением магниточувствительных интегральных схем, именуемых в зарубежной печати “схемами Холла”.Такие схемы сегодня доступны для радиолюбителей, проживающих в странах СНГ .

В настоящее время для определения координат относительно сторон света используются различные навигационные приборы и оборудование. К таким приборам относятся: магнитный и радиокомпас, радиополукомпас, гирокомпас и гирополукомпас, приемники системы GPS и др.

Каждому из этих приборов присущи как определенные преимущества, так и очевидные недостатки. Следует отметить, что ни один из известных навигационных приборов не может обеспечить точного определения азимута во всех районах Земли при любой погоде, различных состояниях магнитосферы и радиопомехах.

Точное определение положения объектов на поверхности Земли и в пространстве представляет собой достаточно сложную техническую задачу, которая решается при помощи магнитометрических систем контроля пространственного положения (МСКПП) с учетом многих факторов.

В связи с этим в морском деле, в авиации, в военном деле применяют совместно компасы различных типов, и на их основе созданы единые (комплексные) курсовые системы.

Однако, в "бытовых целях” наибольшее распространение получили устройства, предназначенных для регистрации магнитного поля Земли (МПЗ) и ориентирования различной аппаратуры на плоскости и в пространстве относительно направления МПЗ.

Наиболее распространенными и доступными (по стоимости) для “обычного пользователя" являются устройства, использующие принцип магнитного компаса.

Немного теории. Для понимания принципов ориентирования по магнитному полю Земли ниже приведем некоторые основные понятия и принципы.

Магнитное поле Земли

Магнитное поле Земли (часто называемое еще и геомагнитным - ГМП) в каждой точке пространства характеризуется вектором напряженности Т, направление которого определяется тремя составляющими X, Y, Z (северной, восточной и вертикальной составляющей) в прямоугольной системе координат (рис. 1), или тремя элементами Земли: горизонтальной составляющей напряженности Н, магнитным склонением D (угол между Н и плоскостью географического меридиана) и магнитным наклонением I (угол между Т и плоскостью горизонта).

Для изучения пространственного распределения основного геомагнитного поля, измеренные в разных местах значения Н, D, I наносят на специальные карты (которые носят наименование магнитных карт Земли) и соединяют линиями точки равных значений элементов. Такие линии называют соответственно изодинамами, изогонами, изоклинами.

Линия (изоклина) I = 0, т.е. магнитный экватор, не совпадает с географическим экватором. С увеличением широты значение I возрастает до 90° в магнитных полюсах. Полная напряженность Т от экватора к полюсу растет от 33,4 до 55,7 А/м (от 0,42 до 0,7 э или от 42 до 70 мкТл).

Ось центрального диполя не совпадает с осью вращения Земли. Северный магнитный полюс расположен в Гренландии близ города Туле (78° северной широты, 69° западной долготы), а южный магнитный полюс расположен в Антарктиде (78° северной широты, 249° западной долготы).

Таким образом, магнитная ось наклонена на 12° к оси вращения Земли. Следует отметить, что понятие “северный магнитный полюс" и "северный магнетизм", как и “южный магнитный полюс” и “южный магнетизм" не совпадают.

Северный магнитный полюс Земли включает понятие южного магнетизма, а южный магнитный полюс - северного. Материковое магнитное поле Земли имеет среднюю напряженность Н около 0,45 э.

Рис. 1. Составляющие магнитного поля Земли.

Однако на земном шаре существуют области магнитных аномалий, где напряженность магнитного поля может превышать среднюю в 2-3 раза. Обычно сильные магнитные аномалии связываются с залежами магнетитовых (FeO, Fe203) и гитаномагнетитовых (примеси ТiO2) руд, с залежами других пород, обогащенных магнетитом, с некоторыми пирроктиловыми (FeS) месторождениями.

Приметами таких аномалий являются Кривой Рог, Кольские аномалии, аномалии на Урале и т.п. Наиболее сильной аномалией на земном шаре является аномалия в районе г. Курска и г. Белгорода, получившая наименование Курской магнитной аномалии (КМА).

Напряженность поля КМА (вертикальная составляющая) достигает здесь 1,Б...1,91 э (150...190 мкТл), Эта аномалия объясняется наличием большого рудного тела под поверхностью Земли. Наиболее известным применением явления земного магнетизма является компас, изобретенный в Китае более 2000 лет тому назад, который начал использоваться примерно в XII веке.

Принцип действия компаса основан на взаимодействии магнитного поля постоянных магнитов компаса с горизонтальной составляющей магнитного поля Земли.

Простейший компас представляет собой круглую коробку из немагнитного материала, в центре которой располагается магнитная стрелка, установленная на остром основании (например, на игле).

Свободно вращающаяся магнитная стрелка поворачивается вокруг оси, располагаясь вдоль силовых линий магнитного поля. Таким образом, стрелка всегда указывает одним из концов в направлении Северного магнитного полюса.

Для определения азимута компас должен находиться в строго горизонтальном положении. Точность определения направления (или азимута) простым компасом составляет З...5п.

Точность современных судовых магнитных компасов в средних широтах и при отсутствии качки достигает 0,3...0,5°. К недостаткам магнитного компаса относится необходимость внесения поправки в его показания на несовпадение магнитного и географического меридианов (поправка на магнитное склонение) и поправки на девиацию (вращение Земли).

Вблизи магнитных полюсов Земли и крупных магнитных аномалий точность показаний магнитного компаса резко снижается, в этих районах приходится пользоваться навигационными приборами других типов .

В связи с бурным развитием микромагнитоэлектроники в последнее время широкое распространение получили т.н. электронные компасы. Электронные компасы имеют массу преимуществ перед традиционными (стрелочными).

Они вибро- и удароустойчивы, к тому же конструкции современных компасов предусматривают: возможность введения местоположения пользователя, установку магнитного склонения, автоматическую компенсацию при воздействии внешних полей, установку маршрута и его запись, прямой интерфейс с электронной системой навигации и т.д.

Рис. 2. Разложение вектора магнитного поля Земли на составляющие.

Точность определения азимута электронным компасом может достигать 0,1°. В таких приборах роль “магнитной стрелки” выполняет преобразователь магнитного поля.

Принципы определения направления вектора МПЗ

На практике определение направления вектора магнитного поля Земли (Н) сводится к измерению напряженности двух его составляющих Нx и Нy (рис. 2) с дальнейшим вычислением угла. Угол ф, в общем случае, определяется по формуле:

Следует отметить, что значения напряженности магнитного поля, определенные преобразователем (датчиком) МП, могут колебаться как по амплитуде (дельта Н), так и по постоянной составляющей (Hy0 и Hx0). С учетом этого уравнение (1) принимает следующий вид (2) (см. врезку).

Так как абсолютные значения синуса и косинуса угла равны при 45 градусах, то вычисления производят только в этой области. Если предположить, что погрешность измерения H составляет 1 %, то при угле 45 градусов получают максимальное отклонение 1,1 градуса.

Для достижения необходимой точности при определении направления менее 1% в работе (2) были сформулированы следующие основные требования к Измерительной системе, предназначенной для определения вектора МПЗ (формула):

  • Должны использоваться, как минимум, два датчика МПЗ. При этом их магниточувствительные элементы располагаются перпендикулярно друг к другу Один датчик МП регистрирует другой
  • Диапазон измерений должен составлять от 20 до ЮОА/м {от 0,25 до 1,25 гс или от 25 до 125 мкТп).
  • Отклонение амплитуды смещения не должно превышать 1% от максимального значения.

Структурная схема электронного компаса

В последние годы на отечественном рынке появилось достаточно много моделей электронных компасов, выпускаемых зарубежными производителями. Эти модели имеют различные характеристики, различный набор функций и различное конструктивное оформление. Стоимость таких устройств составляет от 20 до 1000 USD.

Рис. 3. Возможный вариант структурной схемы электронного компаса.

В зависимости от назначения структурные и электрические схемы электронных компасов могут быть весьма разнообразными. Однако все они содержат некоторые общие узлы уі блоки.

Возможный вариант структурной схемы электронного компаса приведен на рис, 3. Структурная схема электронного компаса содержит следующие основные узлы и блоки:

  • Два канала для измерения напряженности МПЗ по осям X и Y
  • Канал определения угла наклона устройства.
  • Микропроцессор
  • Блок ввода местоположения пользователя.
  • Блок памяти.
  • Интерфейс,
  • Графический и (или) цифровой индикаторы.
  • Стабилизированный источник питания.

Назначение основных узов и блоков

Каналы определения азимута. Представляют собой измерители напряженности магнитного поля Земли по осям X и Y. Выходной сигнал каждого канала выдается через АЦП в цифровой форме и поступает в микропроцессор. Конструктивно каналы могут быть реализованы в виде ИМС.

Канал определения угла наклона, Представляет собой устройство, определяющее угол наклона устройства относительно Земли. Задача данного канала заключается в вы работке специальной поправки в данные канала определения азимута, при углах наклона до ±45° относительно Земли.

Выходной сигнал данного канала выдается через АЦП в цифровой форме и поступает в микропроцессор. Конструктивно канал может быть реализован в виде ИМС.

Микропроцессор служит для обработки сигналов, поступающих с каналов определения азимута и угла наклона, выработки соответствующих поправок и передаче выходных данных, через интерфейс, на графический и цифровой индикаторы направления. Обычно реализуется в виде БИС. Блок ввода местоположения пользователя.

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

Блок памяти. Энергонезависимое электронное устройство, предназначенное для хранения сведений о географических координатах стран и городов. Может хранить данные о 500 и более объектах. Интерфейс или блок сопряжения.

Представляет собой электронное устройство, преобразующее выходной сигнал микропроцессора в форму, необходимую для работы графического и цифрового индикаторов.

Основную проблему при разработке электронных компасов составляет оптимальный выбор типа датчика или преобразователя магнитного поля (ПМП).

В качестве датчиков МП в таких устройствах могут использоваться различные типы преобразователей магнитного поля: магниторезисторы, высокочувствительные элементы Холла, магнитодиоды и магнитотранзисторы, магниточувствительные интегральные схемы, миниатюрные индуктивные и феррозондовые датчики и т.п.

Выбор типа ПМП осуществляется с учетом требуемых параметров и характеристик разрабатываемой аппаратуры, условий ее эксплуатации и целого ряда экономических факторов.

Основное требование, предъявляемое к ПМП, предназначенных для этих целей, - это высокая и явно выраженная координатная магнитная чувствительность.

В настоящее время наиболее широкое применение в составе электронных компасов получили тонкопленочные магниторезисторы и миниатюрные индуктивные датчики МП.

Принцип действия таких устройств рассматривается в работах . Следует отметить, что разработка современного электронного компаса в “домашних условиях” представляет собой достаточно сложную задачу даже для квалифицированного радиолюбителя.

Однако, для понимания принципов работы и оценки возможностей подобных приборов, ниже рассматриваются два простейших варианта “электронного компаса", реализованных с применением магниточувствительной ИС, построенной с использованием элемента Холла.

М. Бараночников. г. Москва. E-mail: baranochnikov[a]mail.ru РМ-07-17.

Литература:

  1. Бараночников М.Л. Микромагнитоэлектроника. Том 1. - ДМК Пресс, Москва, 2001 г., 544 с.
  2. Wellhausen Н. Elecktronischer Kompab // Elektronic, 8/14, 4, 1987. - рр. 85 - 89.
  3. Бараночников М. Л. Микромагнитоэлектроника. Том 1. Том 2. - Лазерный диск. ДМК Пресс, Москва, 2002 г.
  4. Электронный компас, - Радиохобби, №2, 2002 г, с. 18.
  5. Бузыканов С. Применение магниторезистивных датчиков в системах навигации. - Chip news, №5, 2004 г., с. 60 - 62.

Каждый, кто пробовал ставить на своего робота электронный компас задавался таким вопросом: а как, собственно, получить из этого прибора некую виртуальную стрелку, которая бы показывала на север? Если мы подключим к Ардуино самый популярный датчик HMC5883L, то получим поток чисел, которые ведут себя странным образом при его вращении. Что делать с этими данным? Попробуем разобраться, ведь полноценная навигация робота без компаса невозможна.
Во первых, устройство, которое часто называют компасом на самом деле является магнитометром. Магнитометр — это прибор, который измеряет напряженность магнитного поля. Все современные электронные магнитометры изготавливаются по технологии МЭМС и позволяют проводить измерения сразу по трем перпендикулярным осям. Так вот тот поток чисел, которые выдает прибор — это на самом деле проекции магнитного поля на три оси в системе координат магнитометра. Такой же формат данных имеют и другие устройства, используемые для позиционирования и навигации: акселерометр и гиротахометр (он же гироскоп). На рисунке изображен простой случай, когда компас расположен горизонтально поверхности земли на экваторе. Красной стрелкой отмечено направление к северному полюсу. Пунктиром отмечены проекции этой стрелки на соответствующие оси. Казалось бы, вот оно! Катет равен катету на тангенс противолежащего угла. Для того чтобы получить угол направления придется взять арктангенс отношения катетов: H = atan(X/Y) Если мы проведем эти несложные вычисления, мы действительно получим какой-то результат. Жаль только, что мы всё еще не получим верный ответ, ведь мы не учли кучу факторов:

  1. Смещение и искажение вектора магнитного поля Земли, вследствие внешних воздействий.
  2. Влияние тангажа и крена на показания компаса.
  3. Разница между географическим и магнитным полюсами — магнитное склонение.
В этой статье мы займемся изучением этих проблем и узнаем способы их решения. Но для начала посмотрим на показания магнитометра своими глазами. Для этого нам потребуется их как-то визуализировать.

1. Визуализация показаний магнитометра

Как известно, одна картинка лучше тысячи слов. Поэтому, для большей наглядности, воспользуемся 3D-редактором для визуализации показаний магнитометра. Для этих целей, можно использовать SketchUp с плагином «cloud» (http://rhin.crai.archi.fr/rld/plugin_details.php?id=678) Указанный плагин позволяет загружать в SketchUp массивы точек из файла вида: 212 -321 -515 211 -320 -515 209 -318 -514 213 -319 -516 Разделителем может быть символ табуляции, пробел, точка с запятой и т.п. Всё это указывается в настройках плагина. Там же можно попросить склеить все точки треугольниками, что в нашем случае не требуется. Самый простой способ сохранить показания магнитометра — передавать их через COM-порт на персональный компьютер в монитор последовательного порта, с последующим сохранением их в текстовый файл. Второй способ — подключить к Ардуино SD карту и записывать данные магнитометра в файл на SD карте. Разобравшись с записью данных и с импортом их в SketchUp, попробуем теперь провести эксперимент. Будем вращать магнитометр вокруг оси Z, а управляющая программа в это время будет записывать показания датчика каждые 100 мс. Всего будет записано 500 точек. Результат этого эксперимента приведен ниже:
Что можно сказать, глядя на этот рисунок? Во-первых, видно, что ось Z действительно была зафиксирована — все точки расположены, более или менее, в плоскости XY. Во-вторых, плоскость XY немного наклонена, что может быть вызвано либо наклоном моего стола, либо наклоном магнитного поля Земли 🙂 Теперь взглянем на эту же картину сверху:
Первое, что бросается в глаза — центр координат находится совсем не в центре очерченного круга! Скорее всего, измеряемое магнитное поле чем-то «сдвинуто» в сторону. Причем это «что-то» имеет напряженность, выше оной у естественного поля Земли. Второе наблюдение — круг немного вытянут в высоту, что указывает уже на более серьезные проблемы, о которых мы поговорим ниже. А что получится, если вращать компас вокруг всех осей одновременно? Правильно, получится не круг, а сфера (точнее сфероид). Вот такая сфера получилась у меня:
Дополнительно к основным 500 точкам сферы, добавлены еще три массива, по 500 точек в каждом. Каждая из добавленных групп точек отвечает за вращение магнитометра вокруг фиксированной оси. Так, нижний круг получен вращением прибора вокруг оси Z. Круг справа — вращением вокруг оси Y. Наконец, плотное кольцо точек слева отвечает за вращение магнитометра вокруг оси X. Почему эти круги не опоясывают шар по экватору, читаем ниже.

2. Магнитное наклонение

На самом деле, последний рисунок может показаться немного странным. Почему будучи в горизонтальном состоянии, датчик показывает почти максимальное значение по оси Z?? Ситуация повторяется если мы наклоним прибор, например, осью X вниз — опять получим максимальное значение (левый круг). Получается, что на датчик постоянно действует поле направленное сквозь датчик вниз к поверхности земли! Ничего необычного в этом на самом деле нет. Эта особенность магнитного поля земли называется магнитным наклонением . На экваторе поле направлено параллельно земле. В южном полушарии — вверх от земли под некоторым углом. А в северном полушарии, как мы уже наблюдали — вниз. Смотрим картинку.
Магнитное наклонение никак не помешает нам пользоваться компасом, поэтому не будем о нем особо задумываться, а просто примем к сведению это интересный факт. Теперь же перейдем, непосредственно к проблемам.

2.1. Искажения магнитного поля: Hard & Soft Iron

В зарубежной литературе, искажения магнитного поля принято делить на две группы: Hard Iron и Soft Iron. Ниже приведена картинка, иллюстрирующая суть этих искажений.
Hard Iron Даю справку. Интенсивность магнитного поля земли сильно зависит от земных координат, в которых оно измеряется. Например, в Кейп Тауне (Южная Африка) поле составляет около 0.256 Гс (Гаусс), а в Нью-Йорке в два раза больше — 0.52 Гс. В целом по планете, интенсивность магнитного поля варьируется в диапазоне от 0.25 Гс до 0.65 Гс. Для сравнения, поле обычного магнитика на холодильник составляет 50 Гс, — это в сто раз больше чем магнитное поле в Нью Йорке!! Понятно, что чуткий магнитометр может легко запутаться, если рядом с ним возникнет один из таких магнитов. На квадрокоптере, конечно, таких магнитиков нет, но зато есть куда более мощные редкоземельные магниты вентильных двигателей, а еще электронные цепи контроллера, провода питания и аккумуляторная батарея. Такие источники паразитного магнитного поля называют Hard Iron. Воздействуя на магнитометр, они придают некоторое смещение измеряемым значениям. Посмотрим, имеются ли Hard Iron искажения у нашей сферы. Проекция точек сферы на плоскость XY, выглядит следующим образом:
Видно, что облако точек имеет некоторое заметное смещение по оси Y влево. По оси Z смещение практически отсутствует. Ликвидировать такое искажение очень просто: достаточно увеличить или уменьшить получаемые от прибора значения на величину смещения. Например, калибровка Hard Iron для оси Y будет иметь вид: Ycal_hard = Y — Ybias где Ycal_hard — калиброванное значение; Y — исходное значение; Ybias — величина смещения. Чтобы вычислить Ybias нам потребуется зафиксировать максимальное и минимальное значение Y, а затем воспользоваться простым выражением: Ybias = (Ymin-Ymax)/2 — Ymin где Ybias — искомая величина смещения; Ymin — минимальное значение оси Y; Ymax — максимальное значение оси Y. Soft Iron В отличие от Hard Iron, искажение типа Soft носит куда более коварный характер. Опять же, проследим этот вид воздействия на собранных ранее данных. Для этого, обратим внимание на то, что шар на картинке сверху, и не шар вовсе. Его проекция на ось YZ немного сплющена сверху, и слегка повернута против часовой стрелки. Вызваны эти искажения, наличием ферромагнитных материалов рядом с датчиком. Таким материалом является металлическая рама квадрокоптера, корпус двигателя, проводка, или даже металлические болты крепления. Исправить ситуацию со сплющенностью поможет умножение показаний датчика на некоторый множитель: Ycal_soft = Y * Yscale где Ycal_hard — калиброванное значение; Y — исходное значение; Yscale — коэффициент масштабирования. Для того чтобы найти все коэффициенты (для X,Y и Z) необходимо выявить ось с наибольшей разностью между максимальным и минимальным значением, и затем воспользоваться формулой: Yscale = (Amax-Amin)/(Ymax-Ymin) где Yscale — искомый коэффициент искажения по оси Y; Amax — максимальное значение на некоторой оси; Amin — минимальное значение на некоторой оси; Ymax — максимальное значение на оси Y; Ymin — минимальное значение на оси Y. Другая проблема, из-за которой сфера оказалась повернутой, устраняется чуть сложнее. Однако, вклад такого искажения в общую ошибку измерения достаточно мал, и мы не будем подробно расписывать способ его «ручного» нивелирования.

2.2. Автоматическая калибровка

Надо сказать, получение вручную точных минимальных и максимальных показаний магнитометра задача не из простых. Для этой процедуры, как минимум, потребуется специальный стенд, в котором можно фиксировать одну из осей прибора. Гораздо проще воспользоваться автоматическим алгоритмом калибровки. Суть этого метода состоит в аппроксимации облака полученных точек элипсоидом. Другими словами, мы подбираем параметры элипсоида таким образом, чтобы он максимально точно совпадал с нашим облаком точек, построенных на основе показаний магнитометра. Из подобранных таким образом параметров, мы сможем добыть величину смещения, коэффициенты масштаба и коэффициенты для ортогонализации осей. В интернете можно найти несколько программ, пригодных для этого. Например, MagCal, или еще одна — Magneto. В отличие от MagCal, в Magneto рассчитанные параметры выводятся в готовом к использованию виде, без необходимости дополнительных преобразований. Именно этой программой мы и воспользуемся. Главная и единственная форма программы выглядит следующим образом:
В поле «Raw magnetic measurements» выбираем файл с исходными данными. В поле «Norm of Magnetic or Gravitational field» вводим величину магнитного поля Земли в точке нашей дислокации. Учитывая, что этот параметр никак не влияет на угол отклонения стрелки нашего виртуального компаса, я поставил значение 1090, что соответствует значению 1 Гаусс. Затем жмем кнопку Calibrate и получаем:
  1. значения смещения по всем трем осям: Combined bias (b);
  2. и матрицу масштаба и ортогонализации: Correction for combined scale factors, misalignments and soft iron (A-1).
С помощью волшебной матрицы мы ликвидируем сплющенность нашего облака и устраним его легкое вращение. Общая формула калибровки выглядит следующим образом: Vcal = A-1 * (V — Vbias) где Vcal — вектор калиброванных значение магнитометра для трех осей; A-1 — матрица масштаба и ортогонализации; Vbias — вектор смещения по трем осям.

3. Влияние наклона магнитометра на вычисляемое направление

На очереди проблема номер два. В начале статьи мы уже попробовали вычислить угол между севером и стрелкой компаса. Для этого годится простая формула: H = atan(Y/X) где H — угол отклонения стрелки компаса от северного направления; X,Y — калиброванные значения магнитометра. Представим теперь, что мы фиксируем ось X строго по направлению к северу, и начинаем вращать датчик вокруг этой оси (придаем крен). Получается, что проекция поля на ось X остается неизменной, а вот проекция на Y меняется. Согласно формуле, стрелка компаса будет показывать либо на северо-запад, либо на северо-восток, в зависимости от того, в какую сторону делаем крен. Это и есть, заявленная в начале статьи, вторая проблема электронного компаса. Решить проблему поможет геометрия. Нам нужно всего лишь повернуть магнитный вектор в систему координат, заданную инклинометром. Для этого, поочередно перемножим две матрицы косинусов на вектор: Vcal2 = Ry*Rx*Vcal где Vcal — магнитный вектор, очищенный от Hard и Soft искажений; Rx и Ry — матрицы поворота вокруг осей X и Y; Vcal2 — магнитный вектор, очищенный от влияния крена и тангажа. Пригодная для программы контроллера формула будет иметь вид: Xcal2 = Xcal*cos(pitch) + Ycal*sin(roll)*sin(pitch) + Zcal*cos(roll)*sin(pitch) Ycal2 = Ycal*cos(roll) — Zcal*sin(roll) H = atan2(-Ycal2, Xcal2) где roll и pitch — наклоны вокруг осей X и Y; Xcal,Ycal,Zcal — вектор магнитометра (Vcal); Ycal2, Ycal2 — калиброванные значения магнитометра (Zcal2 не считаем — он нам не пригодится); H — угол между севером и стрелкой компаса. (О том, кто такой atan2 можно узнать тут: http://en.wikipedia.org/wiki/Atan2)

3. Разница между географическим и магнитным полюсом

После того как мы получили более или менее точный угол отклонения стрелки компаса от северного направления, пришло время устранить еще одну проблему. Дело в том, что магнитный и географический полюсы на нашей планете, сильно различаются, в зависимости от того, где мы производим измерение. Другими словами, «север» на который показывает ваш походный компас, совсем не тот север где льды и,белые медведи. Для нивелирования этих различий, к показаниям датчика необходимо прибавить (или вычесть) определенный угол, называемый магнитным склонением. Например, в Екатеринбурге магнитное склонение имеет величину +14 градусов, а значит измеренные показания магнитометра следует уменьшить на эти же 14 градусов. Для того чтобы выяснить магнитное склонение в ваших координатах, можно воспользоваться специальным ресурсом: http://magnetic-declination.com/

Заключение

В заключении несколько советов по навигации с помощью магнитометра.
  1. Калибровка должна проводиться именно в тех условиях, в которых беспилотник будет совершать реальный полет.
  2. Магнитометр лучше выносить из корпуса робота на штанге. Так на него будет влиять меньше шумов.
  3. Для вычисления направления лучше использовать связку компас + гироскоп. При этом их показания смешиваются по определенному правилу (data fusion).
  4. Если речь идет о летательном аппарате с большой курсовой скоростью, рекомендуется использовать связку компас + гироскоп + GPS.