реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Цифровой компас HMC5843., Калибровка?
mr_ia
сообщение Aug 6 2009, 06:54
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 13-02-07
Пользователь №: 25 311



Добрый день.
Решил применить в приборе 3-х оcевой цифровой компас HMC5843 от Honeywell. http://www.honeywell.com/sites/servlet/com...85-D9D84941499D
Купили отладочную плату HMC5843-DEMO с установленным компасом HMC5843, акселерометром KXPS5-2050 (Оба на I2C интерфейсе), I2C в UART на мкр-ме SC18IM700, и UART в USB на мкр-ме CP2102. Плюс диск с софтом. Подключил, откалибровался и тут меня ждал шок. Показывает черти что... Т.к. на месте калибровки было много метала, что даже обычный компас в комнате показывал несколько Северов, взял платку и ушел с ней и ноутом в лес, где не должно быть помех.
Откалибровался, все равно измерения колбасит. Т.е. при одинаковом расположении платы, может показать Восток или Запад... Север достаточно четко берет, Юг почти никогда не показывает (максимум Юго-Запад, Юго-Восток). При этом измерения на неподвижно размещеной плате достаточно сильно дергаются (в пределах 45градусов).
Т.к. Железо и софт от Honeywell(врядли барахло продает) и должно работать, то остается, что я неправильно калибровку провожу (хотя я уже по разному крутил платку).
С электронными компасами дела не имл до этого.

Вопрос №1. Поиск по форуму показал что многие успешно применяют электронный компас, и несколько ссылок на HMC5843 на форуме я нашел, однако не нашел отзывов о качестве его работы. Подразумеваю, что оно соответствует заявленному, но уточню. Кто применял HMC5843 каков Ваш вывод о его работоспособности и соответсвию заявленных характеристик?
Вопрос №2. Как калибровать? В комплекте с платой шел софт, с возможностью калибровки как акселерометра (он работает нормально), так и компаса. Калибровка сводится в кручению платы в трех осях. Относительно вертикальной оси (Up) против часовой, относительно оси направления платы (Forward) по часовой, относительно бокового направления (Left) по часовой стрелке. После софт вычисляет поправки и прописывает их в компас. Этого достаточно?
Вопрос №3. Даже если я неправильно откалибровался и направление указанные не соответствуют истине, то повторяемость результатов измерения должна была быть? т.е. Стрелка виртуального компаса(в софте) должна показывать направление однозначно( может и неправильное, но стабильное), в нескольких измерениях и при одинаковом ориентировании платки.
Прикрепленные файлы
Прикрепленный файл  HMC5843_Demo_Guide.pdf ( 588.87 килобайт ) Кол-во скачиваний: 1259
 
Go to the top of the page
 
+Quote Post
mr_ia
сообщение Aug 12 2009, 06:29
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 13-02-07
Пользователь №: 25 311



Поразбирался с платой.
Нашел более толковое описание http://www.mikrocontroller.net/attachment/...ide5843revB.pdf. Вывод, глючит программа идущая в составе демо-платы. Вывод основан на следующим. Если посмотреть график, что строит программа HMC5843_Demo_Guide.pdf (стр.6, слева, поле Magnetometr). И сравнить с графиком какой принимать должны по оси Х и Y (стр.4 DesignGuide снизу), то они совпадают, т.е. направление компас показывает точно и повторяемость результатов есть (даже когда рядом много железа, правда и калибровался компас в этих условиях), при этом “виртуальный компас” в программе (стр.7 Demo_Guide сверху), который должен выдавать направление, так же глючит и не может указать направление (плата размещалась горизонтально). Так же форма сигнала от осей X и Y сильно искажается в зависимости от угла наклона микросхемы. В DesignGuide указано как учитывать углы наклона по осям направление\боковая ось. Соответственно
X’ = X cos φ + Y sin θ sin φ – Z cos θ sin φ
Y’ = Y cos θ + Z sin θ
Направление = arctan ( Y’ / X’ )
φ и θ данные об уровне наклона относительно направлений вперед и влево, берутся с помощью акселерометра. ((стр.13 DesignGuide ) X, Y, Z соответственно компас выдает. Арктангенс могу взять и таблицу значений тогда не придется строить по моему.
Не совсем понятен вопрос о цели калибровки. Она нужна для определения минимума\максимума функций или для учета влияния помех от магнитных материалов размещенных рядом с компасом? При одинаковом ориентировании на Север, (но в разных географических точках) размах функции будет изменяться? Данный момент для меня имеет принципиальное значение т.к. прибор каждый раз нельзя крутить по трем осям при включении (географически прибор можен находиться в разных точках).

Погрешность в измерении направления в 10 градусов меня вполне устроит...

Вопрос:
1) Можно ли обойтись без акселерометра (при этом не создавая огромной матрицы табличных значений)?
2) Действительно ли необходима калибровка, для определения максимума\минимума функций синуса\косинуса, т.е. кручение компаса по 3-ем осям? Или же калибровка необходимо что бы учесть влияние от магнитных материалов?
3) Правильно ли я понял работу компаса и главное как вычислять действующее направление?
Прикрепленные файлы
Прикрепленный файл  DesignGuide5843revB.pdf ( 549.2 килобайт ) Кол-во скачиваний: 95
 
Go to the top of the page
 
+Quote Post
chirik
сообщение Oct 31 2009, 17:01
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 129
Регистрация: 29-10-09
Из: Карелии
Пользователь №: 53 301



ну как разобрались с HMC5843, проблем с ним нет? я тож хочу его использовать. rolleyes.gif
Go to the top of the page
 
+Quote Post
V_G
сообщение Oct 31 2009, 18:03
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Насколько я помню по более старому компасу (Hmr-3000 по-моему), калибровка была необходима для учета влияния конструкции, в которую встроен компас. Т.е. если девайс носимый, крутите его в предполагаемом корпусе в предполагаемом окружении, если стационарный на авто/судне, устанавливаете на борт и крутите борт (в горизонтальной плоскости, понятно)
Go to the top of the page
 
+Quote Post
swagger
сообщение Nov 2 2009, 12:19
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 18-01-08
Из: Moscow
Пользователь №: 34 201



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

Сообщение отредактировал swagger - Nov 2 2009, 12:21
Go to the top of the page
 
+Quote Post
mpo
сообщение Nov 3 2009, 07:47
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 92
Регистрация: 1-02-05
Пользователь №: 2 343



Цитата(swagger @ Nov 2 2009, 17:19) *
Имею дело с HMR3300. Ведет себя нормально, тока надо следить чтобы он не попадал в сильное э\м поле и корпус был сделан из немагнитного материала.

Добрый день, прочитал, что вы используете сабж, у меня есть вопрос по калибровке можете помочь?
Суть в следующем при повороте устройства в трех плоскостях мы получаем набор коэффициентов:
Xoff
Yoff
Zoff
Xsf
Ysf
Zsf

причем каждого коэффициента получается две штуки, отсюда возникает вопрос каким образом их сводить вместе?
Т.е. в идеале мне нужны только по одному коэффициенту чтобы можно было провести коррекцию исходных данных от магнитометра по формулам:
X= Xraw*Xsf+Xoff
Y= Yraw*Ysf+Yoff
Z= Zraw*Zsf+Zoff
,где Xraw,Yraw,Zraw - сырые данные от магнитометра.

Поделитесь каким образом вы поступаете?
Данные об углах наклона у меня есть (на плате стоит акселерометр).
Go to the top of the page
 
+Quote Post
swagger
сообщение Nov 5 2009, 12:38
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 18-01-08
Из: Moscow
Пользователь №: 34 201



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

Сообщение отредактировал swagger - Nov 5 2009, 12:39
Go to the top of the page
 
+Quote Post
mr_ia
сообщение Nov 16 2009, 08:46
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 13-02-07
Пользователь №: 25 311



Доброе время суток.
Отталкиваясь от начала. Отладочная плата от Honeywell так толком и не заработала. Решили свою сделатьsmile.gif. Сделали и сейчас времени немного появилось им заняться.
Сделали платку с компасом HMC5843 и акселерометром LIS331DL.
Оба по I2C читаются. И компас север и юг нормально понимает(в горизонтальном положении и понимаю их только я), а вот запад и восток путает... Начал приводить данные к нормальному состоянию.
Т.к. нужны данные об угле тангажа и крена, начал с интерпретирования данных с акселерометра.
Расчётный угол тангажа на сколько я понял равен arctg(x/z), а крена arctg(y/z).
Данные в дополнительном кодес акселерометра лежащего на поверхности стола (рядом комп, более железа нет).
плата лежит горизонтально.
Data X=7
Data Y=f9
Data Z=15

плата стоит вертикально
Data X=15
Data Y=f9
Data Z=7

плата стоит на левой грани (под углом 90градусов к столу)
Data X=7
Data Y=eb
Data Z=7

и вот вопрос как мне получить угол тангажа и а крена?
Через arctg(x/z), arctg(y/z)?
нужно ли как нибудь нормировать данные с акселерометра прежде чем брать арктангес?
Go to the top of the page
 
+Quote Post
Alexashka
сообщение Nov 16 2009, 18:31
Сообщение #9


Практикующий маг
******

Группа: Свой
Сообщений: 3 634
Регистрация: 28-04-05
Из: Дубна, Моск.обл
Пользователь №: 4 576



Калибровать надо. КОмпас должен знать когда максимум а когда минимум, чтобы растянуть получаемые с датчиков значения на шкалу 360*.
Go to the top of the page
 
+Quote Post
mr_ia
сообщение Nov 17 2009, 06:26
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 13-02-07
Пользователь №: 25 311



Да получается что до компаса мне еще данные с акселерометра нужно как то интерпретировать...
Go to the top of the page
 
+Quote Post
Alexashka
сообщение Nov 17 2009, 07:29
Сообщение #11


Практикующий маг
******

Группа: Свой
Сообщений: 3 634
Регистрация: 28-04-05
Из: Дубна, Моск.обл
Пользователь №: 4 576



Цитата(mr_ia @ Nov 17 2009, 09:26) *
Да получается что до компаса мне еще данные с акселерометра нужно как то интерпретировать...

Вроде в HMC6343 эта проблема уже решена.
хотя с направлениями тоже врет иногда безбожно smile.gif
Go to the top of the page
 
+Quote Post
Vlad27
сообщение Nov 17 2009, 07:47
Сообщение #12


Частый гость
**

Группа: Свой
Сообщений: 95
Регистрация: 31-07-05
Из: Полоцк Беларусь
Пользователь №: 7 227



Может быть как-то поможет аппнота от Микрочипа.
Go to the top of the page
 
+Quote Post
Kipp
сообщение Dec 21 2009, 19:00
Сообщение #13





Группа: Новичок
Сообщений: 1
Регистрация: 21-12-09
Пользователь №: 54 391



Меня тоже очень интерессует вопрос, какие проблемы будут если использовать сей компас без акселерометра. Судя по формулам это дась ошибку в направлении до знака, тоесть возможно что фактически будет показано направление противоположное настоящему...
Кто имеет опыт пожалуйста поделитесь. У меня задача сделать обратную связь для PTZ камеры, компас на борде есть а акселерометра нет...
Go to the top of the page
 
+Quote Post
Alexashka
сообщение Dec 21 2009, 20:22
Сообщение #14


Практикующий маг
******

Группа: Свой
Сообщений: 3 634
Регистрация: 28-04-05
Из: Дубна, Моск.обл
Пользователь №: 4 576



Цитата(Kipp @ Dec 21 2009, 22:00) *
Меня тоже очень интерессует вопрос, какие проблемы будут если использовать сей компас без акселерометра. Судя по формулам это дась ошибку в направлении до знака, тоесть возможно что фактически будет показано направление противоположное настоящему...

C чегобы это? Если Вы откалибруете матнитометр в плоскости, в которой будет крутится платформа, то все будет нормально. Достаточно двухосевого датчика. (если ни одна из осей не направлена вертикально).
Go to the top of the page
 
+Quote Post
Andrew-S
сообщение May 8 2010, 10:21
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 71
Регистрация: 18-01-06
Пользователь №: 13 333



В данный момент пытаюсь откалибровать HMC5843. В качестве первой итерации повращал датчик в плоскости горизонта и посчитал масштабный коэффициент и смещение, вроде бы получил более-менее результат приемлимый. Но погрешность у него все равно примерно 2-3 градуса и масштабным коэффициентом не выправился эллипс из-за мягкого железа. Но как только даю небольшой крен-тангаж - курс начинает врать. Это я так понимаю из-за некалиброванной вертикальной оси. Пока еще не успел все документы прочитать, приведенные на форуме. Хочу сказать спасибо за руководства по разработке, я их почему-то найти не мог в инете.. По Хонивеловской демо- программе при калибровке вроде бы плата должна вращаться в трех плоскостях, только потом производится расчет, но получается, как уже было сказано выше, по паре коэффициентов и по паре смещений для каждой плоскости, как их выбирать пока не понял.
По таким формулам я калибровался в горизонте. Я их нашел в какой-то документашке от Хонивела:
Скорректированное значение с датчика Xcorr = Xscale*Xmeas + Xoffset;
Xscale = 1 or (Ymax - Ymin)/(Xmax-Xmin) что больше;
Xoffset = [(Xmax-Xmin)/2 - Xmax]*Xscale;
Вот еще вспомнил - есть у меня gps-навигатор Гармин, у него компас встроенный тоже калибруется последовательными вращениями по каждой оси. При этой процедуре после каждого вращения прибор говорит, что калибровка удалась (или нет) и, если удалась, позволяет перейти к вращению по другой оси. Получается что расчет коэффициентов производится последовательно, а у Хонивела в программе - сначала все вращения, а потом расчет.. Может есть какие-то конкретные руководства с формулами как калибровать 3-х осевые магнитометры?

Сообщение отредактировал Andrew-S - May 8 2010, 10:23
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 23:12
Рейтинг@Mail.ru


Страница сгенерированна за 0.0727 секунд с 7
ELECTRONIX ©2004-2016