mr_ia 0 6 августа, 2009 Опубликовано 6 августа, 2009 · Жалоба Добрый день. Решил применить в приборе 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mr_ia 0 12 августа, 2009 Опубликовано 12 августа, 2009 · Жалоба Поразбирался с платой. Нашел более толковое описание 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
chirik8807 0 31 октября, 2009 Опубликовано 31 октября, 2009 · Жалоба ну как разобрались с HMC5843, проблем с ним нет? я тож хочу его использовать. :rolleyes: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
V_G 8 31 октября, 2009 Опубликовано 31 октября, 2009 · Жалоба Насколько я помню по более старому компасу (Hmr-3000 по-моему), калибровка была необходима для учета влияния конструкции, в которую встроен компас. Т.е. если девайс носимый, крутите его в предполагаемом корпусе в предполагаемом окружении, если стационарный на авто/судне, устанавливаете на борт и крутите борт (в горизонтальной плоскости, понятно) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sergey nasedkin 0 2 ноября, 2009 Опубликовано 2 ноября, 2009 (изменено) · Жалоба Имею дело с HMR3300. Ведет себя нормально, тока надо следить чтобы он не попадал в сильное э\м поле и корпус был сделан из немагнитного материала. Изменено 2 ноября, 2009 пользователем swagger Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mpo 0 3 ноября, 2009 Опубликовано 3 ноября, 2009 · Жалоба Имею дело с HMR3300. Ведет себя нормально, тока надо следить чтобы он не попадал в сильное э\м поле и корпус был сделан из немагнитного материала. Добрый день, прочитал, что вы используете сабж, у меня есть вопрос по калибровке можете помочь? Суть в следующем при повороте устройства в трех плоскостях мы получаем набор коэффициентов: Xoff Yoff Zoff Xsf Ysf Zsf причем каждого коэффициента получается две штуки, отсюда возникает вопрос каким образом их сводить вместе? Т.е. в идеале мне нужны только по одному коэффициенту чтобы можно было провести коррекцию исходных данных от магнитометра по формулам: X= Xraw*Xsf+Xoff Y= Yraw*Ysf+Yoff Z= Zraw*Zsf+Zoff ,где Xraw,Yraw,Zraw - сырые данные от магнитометра. Поделитесь каким образом вы поступаете? Данные об углах наклона у меня есть (на плате стоит акселерометр). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sergey nasedkin 0 5 ноября, 2009 Опубликовано 5 ноября, 2009 (изменено) · Жалоба Пока ни разу не калибровал его, используем заводские настройки. Для работы нам нужны только напрввлние и углы наклона, он их показавает правильно. Изменено 5 ноября, 2009 пользователем swagger Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mr_ia 0 16 ноября, 2009 Опубликовано 16 ноября, 2009 · Жалоба Доброе время суток. Отталкиваясь от начала. Отладочная плата от Honeywell так толком и не заработала. Решили свою сделать:). Сделали и сейчас времени немного появилось им заняться. Сделали платку с компасом 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)? нужно ли как нибудь нормировать данные с акселерометра прежде чем брать арктангес? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alexashka 0 16 ноября, 2009 Опубликовано 16 ноября, 2009 · Жалоба Калибровать надо. КОмпас должен знать когда максимум а когда минимум, чтобы растянуть получаемые с датчиков значения на шкалу 360*. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mr_ia 0 17 ноября, 2009 Опубликовано 17 ноября, 2009 · Жалоба Да получается что до компаса мне еще данные с акселерометра нужно как то интерпретировать... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alexashka 0 17 ноября, 2009 Опубликовано 17 ноября, 2009 · Жалоба Да получается что до компаса мне еще данные с акселерометра нужно как то интерпретировать... Вроде в HMC6343 эта проблема уже решена. хотя с направлениями тоже врет иногда безбожно :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Vlad27 0 17 ноября, 2009 Опубликовано 17 ноября, 2009 · Жалоба Может быть как-то поможет аппнота от Микрочипа. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kipp 0 21 декабря, 2009 Опубликовано 21 декабря, 2009 · Жалоба Меня тоже очень интерессует вопрос, какие проблемы будут если использовать сей компас без акселерометра. Судя по формулам это дась ошибку в направлении до знака, тоесть возможно что фактически будет показано направление противоположное настоящему... Кто имеет опыт пожалуйста поделитесь. У меня задача сделать обратную связь для PTZ камеры, компас на борде есть а акселерометра нет... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alexashka 0 21 декабря, 2009 Опубликовано 21 декабря, 2009 · Жалоба Меня тоже очень интерессует вопрос, какие проблемы будут если использовать сей компас без акселерометра. Судя по формулам это дась ошибку в направлении до знака, тоесть возможно что фактически будет показано направление противоположное настоящему... C чегобы это? Если Вы откалибруете матнитометр в плоскости, в которой будет крутится платформа, то все будет нормально. Достаточно двухосевого датчика. (если ни одна из осей не направлена вертикально). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Andrew-S 0 8 мая, 2010 Опубликовано 8 мая, 2010 (изменено) · Жалоба В данный момент пытаюсь откалибровать HMC5843. В качестве первой итерации повращал датчик в плоскости горизонта и посчитал масштабный коэффициент и смещение, вроде бы получил более-менее результат приемлимый. Но погрешность у него все равно примерно 2-3 градуса и масштабным коэффициентом не выправился эллипс из-за мягкого железа. Но как только даю небольшой крен-тангаж - курс начинает врать. Это я так понимаю из-за некалиброванной вертикальной оси. Пока еще не успел все документы прочитать, приведенные на форуме. Хочу сказать спасибо за руководства по разработке, я их почему-то найти не мог в инете.. По Хонивеловской демо- программе при калибровке вроде бы плата должна вращаться в трех плоскостях, только потом производится расчет, но получается, как уже было сказано выше, по паре коэффициентов и по паре смещений для каждой плоскости, как их выбирать пока не понял. По таким формулам я калибровался в горизонте. Я их нашел в какой-то документашке от Хонивела: Скорректированное значение с датчика Xcorr = Xscale*Xmeas + Xoffset; Xscale = 1 or (Ymax - Ymin)/(Xmax-Xmin) что больше; Xoffset = [(Xmax-Xmin)/2 - Xmax]*Xscale; Вот еще вспомнил - есть у меня gps-навигатор Гармин, у него компас встроенный тоже калибруется последовательными вращениями по каждой оси. При этой процедуре после каждого вращения прибор говорит, что калибровка удалась (или нет) и, если удалась, позволяет перейти к вращению по другой оси. Получается что расчет коэффициентов производится последовательно, а у Хонивела в программе - сначала все вращения, а потом расчет.. Может есть какие-то конкретные руководства с формулами как калибровать 3-х осевые магнитометры? Изменено 8 мая, 2010 пользователем Andrew-S Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться