Меню
Бесплатно
Главная  /  Уроки по Windows  /  Калибровка магнитометра. Электронный компас. Электронный компас своими руками Для спортивного ориентирования

Калибровка магнитометра. Электронный компас. Электронный компас своими руками Для спортивного ориентирования

На сегодняшний день мировая промышленность электронной техники обладает широчайшим спектром и разнообразием различных датчиков. Сегодня предлагаю рассмотреть такой датчик как HMC5883L. Он представляет собой трех осевой магнитометр (оси x, y и z). Как гласит документация на данный датчик, он изготовлен по анизотропной магниторезистивной технологии (Anisotropic Magnetoresistive (AMR) technology). Также согласно документации (даташиту), датчик имеет интерфейс I 2 C и такие настройки как чувствительность к магнитному полю, настройка скорости записи данных в регистры, количество измерений перед записью в регистры данных, режимы ожидания, единичного и непрерывного преобразования. Помимо этих основных настроек (есть и другие не столь важные для нас, возможно, которые использовать и не придется, например идентификационные регистры), датчик имеет отдельный вывод, на который выводится сигнал по завершению преобразования и записи данных в регистр, то есть по обновлению данных - как только датчик закончил измерения и записал данные для считывания в регистры, на выводе DRDY (видимо, это data ready) появляется сигнал. Для удобства этот вывод можно использовать для внешних прерываний микроконтроллера или чего-то подобного. Однако это не всегда нужно и в этом устройстве было решено не задействовать эту функцию.

Вкратце разобрались что это за датчик HMC5883L. Чтобы не мучиться с пайкой мелкого корпуса микросхемы датчика, в продаже имеются модули и в зависимости от модели имеют на себе следующие составляющие - обязательно подтягивающие резисторы для линий I 2 C, конденсаторы по питанию и необходимые в обвязке самой микросхемы датчика и стабилизатор напряжения на 3,3 вольта, в некоторых еще есть обвязка согласования уровней для I 2 C на 3,3 - 5 вольт. Данный датчик может входить в состав модулей, где он является одним из датчиков (в китайских магазинах это девяти осевые модули датчиков гироскопа, акселерометра и магнитометра, а до кучи еще и барометр, данный шедевр обычно могут применять при разработке квадрокоптеров для стабилизации полета).

Модуль HMC5883L (по названию самого датчика магнитометра) на фото ниже:

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

По традиции схема построена на микроконтроллере Atmega8. Данный микроконтроллер можно использовать как в корпусе DIP-28, так и в СМД исполнении в корпусе TQFP-32. Резистор R3 необходим для предотвращения самопроизвольного перезапускания микроконтроллера в случае появления случайных помех на выводе PC6. Резистор R3 подтягивает плюс питания к этому выводу, надежно создавая потенциал на нем. Для индикации используется жидко кристаллический (ЖК или LCD) дисплей SC1602. Он имеет 2 строки символов по шестнадцать штук в каждой из них. ЖК дисплей подключается к микроконтроллеру по четырех битной системе. Переменный резистор R2 необходим для регулировки контраста символов на дисплее. Вращением движка этого резистора добиваемся наиболее четких для нас показаний на экране. Подсветка ЖК дисплея организована через вывод "А" и "К" на плате дисплея. Подсветка включается через резистор, ограничивающий ток - R1. Чем больше номинал, тем более тускло будет подсвечиваться дисплей. Однако пренебрегать этим резистором не стоит во избежание порчи подсветки. Датчик питается от напряжения 3,3 вольта, а микроконтроллер от 5 вольт, поэтому при передачи данных по интерфейсу I2C используется микросхема согласования уровней PCA9517. При покупке модуля с датчиком магнитометром необходимо обратить внимание на наличие уже имеющейся схемы согласования уровней, при ее наличии PCA9517 можно убрать. Заменить PCA9517 можно на любой другой аналог или каскад, выполняющий такие же функции. Резисторы R4 - R7 подтягивают плюс питания к линиям данных интерфейса I2C. Это необходимо для корректной работы протокола. Мощность всех резисторов постоянного сопротивления составляет 0,25 Вт.

Питается вся схема от простого модуля питания на силовом трансформаторе. Переменное напряжение выпрямляется четырьмя диодами VD1 - VD4 марки 1N4007, пульсации сглаживаются конденсаторами C1 и C2. Номинал конденсатора C2 можно увеличить до 1000 - 4700 мкФ. Четыре выпрямительных диода можно заменить одним диодным мостом. Трансформатор применен марки BV EI 382 1189 - преобразует 220 вольт переменного тока в 9 вольт переменного тока. Мощность трансформатора составляет 4,5 Вт, этого вполне достаточно и еще с запасом. Такой трансформатор можно заменить любым другим силовым трансформатором, подходящим для Вас. Либо данный питающий модуль схемы заменить на импульсный источник напряжения, можно собрать схему обратноходового преобразователя либо применить иже готовый блок питания от телефона, например - все это дело вкусов и потребностей. Выпрямленное напряжение с трансформатора стабилизируется на микросхеме линейного стабилизатора L7805 , ее можно заменить на отечественный аналог пяти вольтового линейного стабилизатора КР142ЕН5А, либо применить другу микросхему стабилизатора напряжения в соответствии с подключением ее в схеме (например LM317 или импульсные стабилизаторы LM2576 , LM2596, MC34063 и так далее). Далее переняв тенденции китайских инженеров был опробован стабилизатор напряжения на 3,3 вольта на микросхеме xc6206p332mr. Такой стабилизатор изготавливается на заводе в корпусе SOT-23 - то есть уже миниатюрный размер, это один из плюсов. Падение напряжения на таком стабилизаторе составляет 0,25 вольта, а собственное потребление всего 1 мкА. Весьма неплохо. Но пригоден стабилизатор напряжения только для низковольтных схем, его максимальное входное напряжение составляет 6 вольт. Не так уж и много, а нам много и не нужно по большому счету. Такой стабилизатор напряжение китайские разработчики применяют много где в различных схемах, узнать его можно по маркировка на корпусе - 662к. Напряжение 3,3 вольта используется для питания датчика магнитометра HMC5883L в соответствии с даташитом.

По традиции схема собиралась на макетной плате:

В первой строке выводятся данные об угле относительно севера. Снизу по порядку координаты x, y, z. Знак "q" означает, что число отрицательное. Датчик выдает именно координаты осей, а по их значениям можно уже высчитать угол или градус.

Карта регистров датчика HMC5883L имеет следующий вид и состав:

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

// инициализация, конфигурация void Init_5883 (void) { i2c_start_cond(); // запуск i2c i2c_send_byte(HMC5883_W); // передача адреса устройства, режим записи i2c_send_byte(0x00); // передача адреса памяти i2c_send_byte(0b00010000); // Configuration Register A, 1 сэмпл, 15 Гц i2c_send_byte(0b00100000); // Configuration Register B, +-0,88 Ga - 00000000 (по умолчанию 00100000 +-1,3 Ga) i2c_send_byte(0b00000000); // Mode Register, режим постоянного измерения i2c_stop_cond(); // остановка i2c }

// прочитать регистры данных и получить значения void Read_5883 () { i2c_start_cond(); // запуск i2c i2c_send_byte(HMC5883_W); // передача адреса устройства, режим записи i2c_send_byte(0x03); // передача адреса памяти i2c_stop_cond(); // остановка i2c i2c_start_cond(); // запуск i2c i2c_send_byte(HMC5883_R); // передача адреса устройства, режим чтения xh = i2c_get_byte(0); // читаем данные xl = i2c_get_byte(0); zh = i2c_get_byte(0); zl = i2c_get_byte(0); yh = i2c_get_byte(0); yl = i2c_get_byte(1); i2c_stop_cond(); // остановка i2c } if (xh< 0) {xh=-(xh+1); xl=-(xl+1);} if (yh< 0) {yh=-(yh+1); yl=-(yl+1);} if (zh< 0) {zh=-(zh+1); xl=-(zl+1);} x = (xh << 8) + xl; // склеиваем старший и младший байты y = (yh << 8) + yl; z = (zh << 8) + zl;

Остальные регистры за ненадобностью использоваться не будут.

Чтобы получить угол исходя из полученных данных о координатах положения осей датчика необходимо воспользоваться формулой (получение угла на языке Си):

Float Angle = atan2((double)yy,(double)xx)* 180 / 3.14159265 + 180; /* или так Angle = 1000*atan2(y , x); // вычисление угла в радианах Angle = Angle*572957795; // перевод радиан в градусы (град=рад*180/3,14) Angle = Angle/10000000000; Angle = Angle+180; // */

Однако мало просто читать данные из датчика и переводить значения в необходимые для нас пр помощи математики. Данные могут искажаться многими причинами - наличие электромагнитных полей от сети, наличие рядом металлов или магнитов и прочее. В программе прошивки реализована калибровка по самой распространенной погрешности, смещающий значения всех осей (или не всех иногда) - Hard iron. Такая погрешность может не присутствовать в каком-нибудь лесу и то не факт. Калибровка по такой погрешности устраняется просто - нужно вычислить смещение по осям и отнять его. В результате получим ровные значения угла (из-за такой погрешности показания угла также смещаются и соответственно при вращении истинность значений под вопросом). Для получения значения смещения необходимо взять средне арифметическое значение от минимума и максимума по осям (минимальное значение всегда отрицательное, при сложении получим, например так: -500 + 400 = -100, делим на 2 и получаем значение смещения). Дело в том, что точки на координатах при вращении датчика вокруг оси должны в идеале образовывать ровный круг с центром в точке схождения всех осей, то есть нуле.

В итоге получилось такое устройство: индикация угла относительно севера и значения координат трех осей на ЖК дисплее, а также калибровка показаний угла. Никаких рюшечек на дисплее не предусматривалось. Чтобы запустить калибровку, необходимо нажать на кнопку S2, и, удерживая ее, не спеша по вращать датчик на 360 градусов, можно несколько раз. Отпустить кнопку. Теперь показания будут компенсироваться по данным, полученным во время калибровки. При повторном нажатии на кнопку S2 калибровка запустится заново, затерев нулями значения минимумов и максимумов, полученных ранее. Просто сбросить калибровку можно нажатием кнопки сброса - S1.

Для программирования микроконтроллера Atmega8 необходимо знать конфигурацию фьюз битов (скриншот сделан в программе ):

К статье прилагается прошивка для микроконтроллера Atmega8, исходный код прошивки в AVR Studio (может быть немного сумбурно, но в обилии комментариев), документация на стабилизатор напряжения x c6206 и датчик HMC5883L, а также небольшое видео, демонстрирующее работоспособность схемы (демонстрация изменения показаний при вращении датчика).

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
IC1 МК AVR 8-бит

ATmega8

1 В блокнот
IC2 Датчик магнитометр HMC5883L 1 В блокнот
IC3 ИС I2C интерфейса

PCA9517

1 В блокнот
VR1 Линейный регулятор

L7805AB

1 В блокнот
VR2 Линейный регулятор CX6206P332MR 1 В блокнот
VD1-VD4 Выпрямительный диод

1N4007

4 В блокнот
R1 Резистор

22 Ом

1 В блокнот
R2 Подстроечный резистор 10 кОм 1 В блокнот
R3-R7 Резистор

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

Механические компасы — все они работают по одному принципу.

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

Для примера рассмотрим принцип действия некоторых видов компасов.

Магнитный компас

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

Стрелка такого компаса выравнивается по направлению магнитных линий Земли.

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

Электронный (цифровой) компас

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

Такой компас не зависит от спутников и их видимости.

В отличии от магнитного компаса, это устройство потребляет электроэнергию от переносного аккумулятора или батареек.

Здесь стоит отметить, что цифровым компасом также иногда называют спутниковым, что не совсем верно. О спутниковом расскажем чуть позже.

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

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

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

Радиокомпас

В радиокомпасе направление определяется не по магнитному полю, а по сигналу от радиостанции, местоположение которой известно заранее. На фото показан пример такого компаса, снятого с панели самолета:

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

Спутниковый компас

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

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

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

Гирокомпас

Работа гирокомпаса основана на способности гироскопа удерживать одно и то же положение в пространстве, независимо от поворота рамки, в которой он закреплен.

Гирокомпас, как и спутниковый компас, показывает географический север и независим от магнитных полей, создаваемых деталями транспорта, в котором он установлен.

Лучший компас для туризма

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

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

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

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

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

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

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

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

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

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

Работа с магнитным компасом

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

Поскольку магнитный компас реагирует на любое магнитное поле, то в большинстве случаев его стрелка указывает не на магнитные полюса Земли, о которых мы говорили здесь, а в сторону от них.

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

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

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

Стоит заметить, что вблизи географических полюсов Земли, как в северном, так и в южном полушарии, в наше время компас может давать большие ошибки, вплоть до 180°, то есть самую большую ошибку из гипотетически возможных.

Я не зря сказал, что именно в наше время. Дело в том, что местоположение магнитного полюса (как южного, так и северного) непостоянно. Во-первых, на данный момент магнитные полюса не совпадают с местоположениями географических полюсов, а во-вторых, местоположение магнитных полюсов меняется со временем, причем движется непредсказуемо, изменяя как направление движения, так и скорость. Поэтому нельзя исключать возможности, что рано или поздно в какой-то момент времени оно совпадет с положением одного из географических полюсов Земли.

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

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

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

Неисправность компаса

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

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

Если стрелка после всех манипуляций вернулась на прежнее место, такой компас будет работать правильно. Если же не вернулась, то таким компасом пользоваться нельзя: он неисправен.

Работает ли магнитный компас за пределами Земли

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

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

То же самое касается открытого космоса на большом удалении от небесных тел. Здесь магнитные поля, как правило, настолько малы, что не способны сдвинуть стрелку магнитного компаса с места.

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

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

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

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

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

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

Классический компас - купить частичку истории.

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

Я не очень хорош в нахождении мест и определении направлений, но умею читать карты и компас. В наше время навигация при помощи 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: Собираем из проволки каркас







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

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

В современных электронных компасах в качестве чувствительного элемента используются магнитометры , которые являются, как и компас, аналоговыми приборами и измеряют интенсивность одной или нескольких составляющих магнитного поля Земли в той точке, где он находится. Сигналы с выхода магнитометра преобразуются в цифровую форму и могут быть использованы для дальнейшей обработки микропроцессором. В современных приборах в основном используются магнитометры, в которых используются магниторезистивные и магнитоиндуктивные датчики, датчики на основе эффекта Холла, а также датчики, изготовленные по технологии «fluxgate». Для ориентирования обычно используется электронный компас, который имеет два магнитометра, установленных в горизонтальной плоскости под прямым углом друг к другу, чтобы измерять одну из компонент магнитного поля В х или В y , соответственно по оси х или по оси у. Угол между осью х и магнитным меридианом будет равен:

ψ = arctg(B y / Bx). (7.1)

Современные магнетометры имеют небольшие размеры и встраиваются в интегральные микросхемы.

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

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

Чтобы спутниковый приемник мог вычислять как географический (истинный), так и магнитный азимуты движения, в приемник встраивают программное обеспечение, которое содержит параметры модели основного геомагнитного поля Земли. Приемник непрерывно обновляет информацию о направлении на объект по мере того, как пользователь двигается произвольным путем до объекта.

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

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