Электронный компас своими руками

Добавил пользователь Евгений Кузнецов
Обновлено: 16.09.2024

Изготовить в домашних условиях мини компас не составляет большой проблемы. Главное сделать так, чтобы магнит, играющий роль стрелки вращался с минимальным трением. Обычно магнитную стрелку устанавливают на острие, которое, по сути, является подшипником, обеспечивающим минимальное трение при повороте стрелки. Еще одним вариантом может быть магнитная стрелка, плавающая на поверхности воды. Именно такой вариант и был использован автором. Конечно, для одноразового применения можно ограничиться куском пенопласта проткнутого булавкой или куском разогнутой скрепки. Но для регулярного использования можно изготовить нечто более фундаментальное, впрочем, тоже с минимальными затратами.


В качестве элементов корпуса использованы круглые пластиковые крышки от молочных продуктов, диаметром 31 и 28 мм, высота крышек составляет 10 мм. Крышки отлично входят друг в друга, образуя половинки корпуса.


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


Жестяные пластинки, изогнуты показанным на фото способом, так чтобы они надежно примагничивались к торцам магнита.


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



Укладываем верхнюю половину держателя.



Теперь с помощью другого компаса определяем полюса магнита и наносим соответствующую маркировку.


Плавая на поверхности воды компас, вполне справляется со своими задачами.


Группа компасов может демонстрировать доменную структуру ферромагнетика.

Подведём итог

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

Форум по обсуждению материала КАК СДЕЛАТЬ КОМПАС СВОИМИ РУКАМИ


Переделываем игрушку обычный трактор в радиоуправляемый - фотографии процесса и получившийся результат.


Что такое OLED, MiniLED и MicroLED телевизоры - краткий обзор и сравнение технологий.


Приводятся основные сведения о планарных предохранителях, включая их технические характеристики и применение.


Про использование технологии беспроводного питания различных устройств.

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


Рис. 5.32. Электронный аналоговый компас типа 1525

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

Данный текст является ознакомительным фрагментом.

Продолжение на ЛитРес

2.8. Альтернативный звукочувствительный электронный узел

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

4.8. Электронный отжиг кремниевых пластин

4.8. Электронный отжиг кремниевых пластин Тем временем для установки электронного отжига было, наконец, выделено оборудование и соответствующее помещение. Приходилось сомневаться в успехе: до планового срока окончания работы оставалось чуть больше трех месяцев (из

2.2. Простой электронный триггер для включения

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

3.16. Электронный трансформатор для конструкций начинающих

Электронный утиль

Электронный утиль Конструкторы ВЕАМ-роботов гордятся тем, что используют в своих конструкциях различные, отслужившие свой век части электронных устройств: например, солнечные батареи от калькуляторов, экономичные двигатели от плееров Walkman и других кассетных

Цифровой компас

Цифровой компас В гл. 5 описаны схемы цифровых компасов, которые могут оказаться полезными в конструкции робота Голем. Компас может быть установлен двумя различными способами. В первом способе индикаторные светодиоды компаса помещены в поле зрения видеокамеры. Быстро

Броненосцы типа "Захсен"

Броненосцы типа "Захсен" К моменту спуска в 1875 г. "Захсена" – головного броненосца серии из четырех кораблей германская судостроительная промышленность достигла больших высот. Это позволило руководству военно-морского флота отказаться от заказа кораблей за границей.

ТАНКИ Pz.I НОВОГО ТИПА

ТАНКИ Pz.I НОВОГО ТИПА Pz.Kpfw.I Ausf.C15 сентября 1939 года управление вооружений третьего рейха приняло решение о разработке лёгкой боевой машины, которую можно было бы использовать как разведывательную, а также для поддержки воздушно-десантных операций. Последнее подразумевало

Тратльщик типа "Капсюль"

Тратльщик типа "Капсюль" Проектант КБ Путиловской верфи, ПетроградЗаводы-строители Путиловская верфь, Русско-Балтийский завод, РевельГод сдачи 1916Число кораблей в серии, ед. 4 ("Капсюль" и "Груз" построены в Петрограде, "Щит" и "Крамбол" – в Ревеле)Водоизмещение, т: полное

Тральщик типа "Клюз"

Тральщик типа "Клюз" Проектант КБ Путиловской верфи, ПетроградЗаводы-строители Путиловская верфь, верфь в АбоГоды сдачи 1917Число кораблей в серии, ед 4 ("Клюз". "Защитник", "Ударник", "Фортрал")Водоизмещение, т: полное 210-220Главные размерения, м:длина наибольшая 43,6ширина

Базовый тральщик типа М-40

Базовый тральщик типа М-40 Заводы-строители германские (Бремен, Росток, Штеттин, Любек, Эльбинг, Бремерхавен и Кениксберг), нидерландские (Роттердам, Амстердам, Схидам, Флиссинген, Сиккервеер, Болнес) и литовский (Клайпеда)годы строительства 1941-1945Год поступления в ВМФ

НАДЕЖДА -МОЙ КОМПАС ЗЕМНОЙ

НАДЕЖДА -МОЙ КОМПАС ЗЕМНОЙ Свет – и ничего другого… Б, Окуджава Дорогой читатель! В первой половине книги мы посеяли семена нашего понимания природы разрушения. Теперь, когда они взошли и уборка в разгаре, нам нельзя потерять ни одного зернышка, ни одного колоска надежды

Каждый, кто пробовал ставить на своего робота электронный компас задавался таким вопросом: а как, собственно, получить из этого прибора некую виртуальную стрелку, которая бы показывала на север? Если мы подключим к Ардуино самый популярный датчик HMC5883L, то получим поток чисел, которые ведут себя странным образом при его вращении. Что делать с этими данным? Попробуем разобраться, ведь полноценная навигация робота без компаса невозможна.

Калибровка магнитометра/компаса hmc5883l

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

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

round2

Казалось бы, вот оно! Катет равен катету на тангенс противолежащего угла. Для того чтобы получить угол направления придется взять арктангенс отношения катетов:

Если мы проведем эти несложные вычисления, мы действительно получим какой-то результат. Жаль только, что мы всё еще не получим верный ответ, ведь мы не учли кучу факторов:

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

В этой статье мы займемся изучением этих проблем и узнаем способы их решения. Но для начала посмотрим на показания магнитометра своими глазами. Для этого нам потребуется их как-то визуализировать.

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

Указанный плагин позволяет загружать в SketchUp массивы точек из файла вида:
212 -321 -515
211 -320 -515
209 -318 -514
213 -319 -516

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

Самый простой способ сохранить показания магнитометра — передавать их через COM-порт на персональный компьютер в монитор последовательного порта, с последующим сохранением их в текстовый файл. Второй способ — подключить к Ардуино SD карту и записывать данные магнитометра в файл на SD карте.

Разобравшись с записью данных и с импортом их в SketchUp, попробуем теперь провести эксперимент. Будем вращать магнитометр вокруг оси Z, а управляющая программа в это время будет записывать показания датчика каждые 100 мс. Всего будет записано 500 точек. Результат этого эксперимента приведен ниже:

ringz

Что можно сказать, глядя на этот рисунок? Во-первых, видно, что ось Z действительно была зафиксирована — все точки расположены, более или менее, в плоскости XY. Во-вторых, плоскость XY немного наклонена, что может быть вызвано либо наклоном моего стола, либо наклоном магнитного поля Земли 🙂

Теперь взглянем на эту же картину сверху:

ringz_top

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

А что получится, если вращать компас вокруг всех осей одновременно? Правильно, получится не круг, а сфера (точнее сфероид). Вот такая сфера получилась у меня:

fullxyz

Дополнительно к основным 500 точкам сферы, добавлены еще три массива, по 500 точек в каждом. Каждая из добавленных групп точек отвечает за вращение магнитометра вокруг фиксированной оси. Так, нижний круг получен вращением прибора вокруг оси Z. Круг справа — вращением вокруг оси Y. Наконец, плотное кольцо точек слева отвечает за вращение магнитометра вокруг оси X. Почему эти круги не опоясывают шар по экватору, читаем ниже.

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

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

Ничего необычного в этом на самом деле нет. Эта особенность магнитного поля земли называется магнитным наклонением. На экваторе поле направлено параллельно земле. В южном полушарии — вверх от земли под некоторым углом. А в северном полушарии, как мы уже наблюдали — вниз. Смотрим картинку.


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

Теперь же перейдем, непосредственно к проблемам.

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

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

magnetic-field-distortion-web

Hard Iron

Даю справку. Интенсивность магнитного поля земли сильно зависит от земных координат, в которых оно измеряется. Например, в Кейп Тауне (Южная Африка) поле составляет около 0.256 Гс (Гаусс), а в Нью-Йорке в два раза больше — 0.52 Гс. В целом по планете, интенсивность магнитного поля варьируется в диапазоне от 0.25 Гс до 0.65 Гс.

Для сравнения, поле обычного магнитика на холодильник составляет 50 Гс, — это в сто раз больше чем магнитное поле в Нью Йорке!! Понятно, что чуткий магнитометр может легко запутаться, если рядом с ним возникнет один из таких магнитов. На квадрокоптере, конечно, таких магнитиков нет, но зато есть куда более мощные редкоземельные магниты вентильных двигателей, а еще электронные цепи контроллера, провода питания и аккумуляторная батарея.

Такие источники паразитного магнитного поля называют Hard Iron. Воздействуя на магнитометр, они придают некоторое смещение измеряемым значениям. Посмотрим, имеются ли Hard Iron искажения у нашей сферы. Проекция точек сферы на плоскость XY, выглядит следующим образом:

full_side

Видно, что облако точек имеет некоторое заметное смещение по оси 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 — искомый коэффициент искажения по оси Y;
Amax — максимальное значение на некоторой оси;
Amin — минимальное значение на некоторой оси;
Ymax — максимальное значение на оси Y;
Ymin — минимальное значение на оси Y.

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

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

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

В интернете можно найти несколько программ, пригодных для этого. Например, MagCal, или еще одна — Magneto. В отличие от MagCal, в Magneto рассчитанные параметры выводятся в готовом к использованию виде, без необходимости дополнительных преобразований. Именно этой программой мы и воспользуемся. Главная и единственная форма программы выглядит следующим образом:

magneto

Затем жмем кнопку 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 — вектор смещения по трем осям.

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

На очереди проблема номер два. В начале статьи мы уже попробовали вычислить угол между севером и стрелкой компаса. Для этого годится простая формула:

где H — угол отклонения стрелки компаса от северного направления;
X,Y — калиброванные значения магнитометра.

Представим теперь, что мы фиксируем ось X строго по направлению к северу, и начинаем вращать датчик вокруг этой оси (придаем крен). Получается, что проекция поля на ось X остается неизменной, а вот проекция на Y меняется. Согласно формуле, стрелка компаса будет показывать либо на северо-запад, либо на северо-восток, в зависимости от того, в какую сторону делаем крен. Это и есть, заявленная в начале статьи, вторая проблема электронного компаса.

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

где 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 — угол между севером и стрелкой компаса.

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

Для нивелирования этих различий, к показаниям датчика необходимо прибавить (или вычесть) определенный угол, называемый магнитным склонением. Например, в Екатеринбурге магнитное склонение имеет величину +14 градусов, а значит измеренные показания магнитометра следует уменьшить на эти же 14 градусов.

1

Продолжая играться с магнитометром HMC5883L собрал компас, хоть и электронный но зато со стрелкой:) Для вывода информации использован дисплей от Nokia 3310, над расчетом и отрисовкой картинки работает микроконтроллер ATMega16.

2

Микроконтроллер тактируется от внутреннего RC генератора на частоте 8МГц

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

Читайте также: