Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: компас на LSM303
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Alex_1811
Народ, кто нибудь делал компас на магнитометре LSM303?
Данные я с нее вычитал, а как рассчитать направление не знаю.
ILYAUL
QUOTE (Alex_1811 @ Aug 31 2011, 17:08) *
Народ, кто нибудь делал компас на магнитометре LSM303?
Данные я с нее вычитал, а как рассчитать направление не знаю.

А по google-ить , например так программа для компаса на LSM303
demaven
Для вычисления азимутального магнитного угла необходимо сначала вычислить так называемый зенитный угол - угол между плоскостью ХОУ (или любой другой) этой микросхемы и вектором напряженности гравитационного поля земли (во какие умные слова еще помню), а затем вспомнить Клетеника, написать несколько формул и заставить контроллер посчитать по этим формулам. Вспомнить этот раздел аналитической геометрии оказалось несложно, читать еще не разучился
Alex_1811
Применил такую формулу:
NAVI.Roll = atan2(ACCEL.Y, ACCEL.Z);
NAVI.Pitch = asin(ACCEL.X / sqrt(ACCEL.X*ACCEL.X + ACCEL.Y*ACCEL.Y + ACCEL.Z*ACCEL.Z));

Xh = MAGNET.Y * cos(NAVI.Pitch) + MAGNET.X * sin(NAVI.Roll) * sin(NAVI.Pitch) - MAGNET.Z * cos(NAVI.Roll) * sin(NAVI.Pitch);
Yh = MAGNET.X * cos(NAVI.Roll) + MAGNET.Z * sin(NAVI.Roll);
NAVI.Heading = atan2(-Yh, Xh);

Азимут и тангаж считается верно, а направление нет.


demaven
Не все понятно с терминологией, азимут есть угол между проекцией вектора магнитного поля земли на плоскость горизонта и направлением на северный магнитный полюс, угол измеряется от 0 до 359 с копейками градусов. Если есть азимут то причем тут направление? Если есть направление то вычислить азимут не проблема

обычный магнитный компас должен устанавливаться почти горизонтально, стрелка на острие иглы сама встанет в плоскость горизонта ("попендикулярно" вектору гравитации), электронный компас "умеет измерять" в любом положении.
Alex_1811
Цитата(demaven @ Sep 10 2011, 06:49) *
Не все понятно с терминологией

Ошибся. Крен и тангаж верно.
demaven
крен и тангаж - это термины из авиации, ну их нафик. Будем по-простому. Необходимо найти угол между проекцией вектора магнитного поля на плоскость горизонта и направлением на север. Для этого необходимо знать уравнение плоскости горизонта в координатах LSM303. Исходим из того, что плоскость горизонта нормальна вектору гравитации, ну а дальше, учитывая что система координат магнитного компаса и акселерометра совпадает, все довольно просто. Делал это год назад, пришлось долго вспоминать аналитическую геометрию в пространстве, от туда все и вылазит. в задачнике Клетеника есть примеры задач, от которых нужно плясать
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.