Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

HMC5883 Компас

Непрочитано 08.07.2013, 21:59  
aalleexxaa
Частый гость
 
Регистрация: 09.02.2013
Сообщений: 22
Сказал спасибо: 7
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
aalleexxaa на пути к лучшему
По умолчанию Re: HMC5883 Компас

А как расшифровать двойной байт?
у старшего байта отбираем только последние 4 бита, 4-й из которых указывает на знак, если 0 то "+", если 1 то "-", оставшиеся 3 бита умножаем на 256 и запоминаем. Остальные 4 бита старшего байта просто забиваются тем же значением, что и 4-й бит? Берем младший байт и складываем его с значением, которое ранее запоминали (или вычитаем из отрицательного).
Правильно ли я понимаю?
Для примера имеем 11111111 10101011, сколько получим (это значение по одной из осей я получаю с компаса HMC5883L при 5Gain).
Реклама:
aalleexxaa вне форума  
Непрочитано 08.07.2013, 22:10  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,313
Сказал спасибо: 2,633
Сказали Спасибо 12,076 раз(а) в 6,082 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: HMC5883 Компас

Отрицательные числа представляются дополнительным кодом.
Значение по модулю (т.е., положительное) инвертируется и прибавляется единица (арифметически). Скажем, "-1" в одним байтом будет представлено как 0хFF, двумя - 0xFFFF. При этом не забывать - старший бит - знак числа.
Если старший байт заполнить до упора влево знаковым битом - получим обычное целое число.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Непрочитано 09.07.2013, 09:03  
Alecsej
Вид на жительство
 
Регистрация: 10.08.2005
Сообщений: 385
Сказал спасибо: 0
Сказали Спасибо 161 раз(а) в 140 сообщении(ях)
Alecsej на пути к лучшему
По умолчанию Re: HMC5883 Компас

Цитата:
Для примера имеем 11111111 10101011, сколько получим (это значение по одной из осей я получаю с компаса HMC5883L при 5Gain).
Миниатюры:
Нажмите на изображение для увеличения
Название: calc.png
Просмотров: 735
Размер:	47.1 Кб
ID:	49171  
Alecsej вне форума  
Непрочитано 09.07.2013, 09:06  
Kabron
Почётный гражданин KAZUS.RUN
 
Аватар для Kabron
 
Регистрация: 12.11.2004
Адрес: Москва
Сообщений: 8,847
Сказал спасибо: 721
Сказали Спасибо 4,537 раз(а) в 2,072 сообщении(ях)
Kabron на пути к лучшему
По умолчанию Re: HMC5883 Компас

Сообщение от akegor Посмотреть сообщение
При этом не забывать - старший бит - знак числа.
Если старший байт заполнить до упора влево знаковым битом - получим обычное целое число.
Куда ж его заполнять то если он и так крайний слева?
__________________
33Й ДАН БАНА
Я не помогаю. Я провоцирую думать.
Не дай вам Бог плохих контактов.
Kabron вне форума  
Непрочитано 09.07.2013, 11:05  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,313
Сказал спасибо: 2,633
Сказали Спасибо 12,076 раз(а) в 6,082 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: HMC5883 Компас

Сообщение от Kabron Посмотреть сообщение
Куда ж его заполнять то если он и так крайний слева?
Если старший из двенадцати - то есть кудыма - до шестнадцати.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Непрочитано 10.07.2013, 15:38  
Программолюбитель
Частый гость
 
Регистрация: 27.05.2013
Сообщений: 75
Сказал спасибо: 1
Сказали Спасибо 24 раз(а) в 14 сообщении(ях)
Программолюбитель на пути к лучшему
По умолчанию Re: HMC5883 Компас

Сообщение от aalleexxaa Посмотреть сообщение
Далее попытаемся сосчитать угол x=255*256+167=65447 y=255*256+254=65534 Однако согласно даташита значение X,Y,Z должно лежать в пределах 0x07FF‹значение‹0xF800
(2047‹значение‹63488 ) где что у меня не так? Далее при повороте с юга на восток изменяется значения только младших байтов X и Y. Правильно ли это?
1.Не так. Первым приходит младший байт, затем старший
2. 167 - большое значение. не больше 16
3. я бы сказал - значение лежит в пределах от 0xF800 до 0x07FF.
Программолюбитель вне форума  
Непрочитано 21.07.2013, 20:53  
aalleexxaa
Частый гость
 
Регистрация: 09.02.2013
Сообщений: 22
Сказал спасибо: 7
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
aalleexxaa на пути к лучшему
По умолчанию Re: HMC5883 Компас

Спасибо Alecsej за картинку калькуятора, вот так мне намного стало понятней как конвертирвать отрицательный двойной байт. Всем спасибо, проблему решил. На будущее, у кого будут проблемы, после получения данных сначала постройте некотрую диаграмму получения данных. Найдите смещенный центр получаемой фигуры, при необходимости смесите фигуру в 0 координат, при очень неудачном варианте пересчитайне получаемый элпис в окружность. После этого можно рассчитывать угол. Во вложении пример получаемой примерной окружности до смещения.
Еще скажу, компас очень чувствителен к различным помехам. Проверял вместе с обыкновенным компасом, ошибка +-5градусов. Но, видел, что на обыкновенный компас очень сильно и провод USB, который был еще не подлючен, и, даже, пружины с кровати. Поэтому, может, в лесу ошибка будет меньше.
Миниатюры:
Нажмите на изображение для увеличения
Название: 21.07.2013 12-44-59.jpg
Просмотров: 42
Размер:	11.1 Кб
ID:	49759  
aalleexxaa вне форума  
Непрочитано 21.07.2013, 21:18  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,313
Сказал спасибо: 2,633
Сказали Спасибо 12,076 раз(а) в 6,082 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: HMC5883 Компас

Гораздо точнее результат, если покрутить вокруг осей и посчитать значения амплитуд и фаз (определить поправки за неортогональность). Но для этого нужна установка, в которой можно закрепить и четко выдержать углы поворота.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Непрочитано 21.07.2013, 22:46  
Alecsej
Вид на жительство
 
Регистрация: 10.08.2005
Сообщений: 385
Сказал спасибо: 0
Сказали Спасибо 161 раз(а) в 140 сообщении(ях)
Alecsej на пути к лучшему
По умолчанию Re: HMC5883 Компас

Цитата:
Проверял вместе с обыкновенным компасом, ошибка +-5градусов.
Вполне достойно для простейших калибровок. Половина румба.
Сообщение от akegor Посмотреть сообщение
Гораздо точнее результат, если покрутить вокруг осей и посчитать значения амплитуд и фаз (определить поправки за неортогональность). Но для этого нужна установка, в которой можно закрепить и четко выдержать углы поворота.
Датчик сам по себе имеет неортогональность 0.1 гр. Искажения же вносимые окружением имеют несколько иную природу. Чтобы их компенсировать необходимо преобразовывать эллипс в окружность.
Alecsej вне форума  
Непрочитано 21.07.2013, 23:08  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,313
Сказал спасибо: 2,633
Сказали Спасибо 12,076 раз(а) в 6,082 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: HMC5883 Компас

Сообщение от Alecsej Посмотреть сообщение
Датчик сам по себе имеет неортогональность 0.1 гр. Искажения же вносимые окружением имеют несколько иную природу. Чтобы их компенсировать необходимо преобразовывать эллипс в окружность.
Скажем, неортогональность - это для любителей повышенной точности, а вот остальные продукты прокручивания - максимальные амплитуды - и + и ноль каждой оси (это вместо преобразований эллипсов в окружности). Конечно лучше в поле эталонироваться.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Компас v.8 3D Lipa Proteus, KiCAD и другие ECAD 10 04.04.2010 17:07
Компас 3D V10+ algenkel Proteus, KiCAD и другие ECAD 14 29.09.2009 13:09
[Решено] КОМПАС V.8 3D Лего Proteus, KiCAD и другие ECAD 5 17.08.2006 19:43
Компас Dozer Измерительное оборудование 4 05.07.2005 11:28
Компас CD_Eater Измерительное оборудование 5 26.08.2004 17:45


Часовой пояс GMT +4, время: 19:33.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.