Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
08.07.2013, 21:59
|
|
Частый гость
Регистрация: 09.02.2013
Сообщений: 22
Сказал спасибо: 7
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: HMC5883 Компас
А как расшифровать двойной байт?
у старшего байта отбираем только последние 4 бита, 4-й из которых указывает на знак, если 0 то "+", если 1 то "-", оставшиеся 3 бита умножаем на 256 и запоминаем. Остальные 4 бита старшего байта просто забиваются тем же значением, что и 4-й бит? Берем младший байт и складываем его с значением, которое ранее запоминали (или вычитаем из отрицательного).
Правильно ли я понимаю?
Для примера имеем 11111111 10101011, сколько получим (это значение по одной из осей я получаю с компаса HMC5883L при 5Gain).
|
|
|
|
08.07.2013, 22:10
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,121
Сказал спасибо: 2,569
Сказали Спасибо 11,945 раз(а) в 5,992 сообщении(ях)
|
Re: HMC5883 Компас
Отрицательные числа представляются дополнительным кодом.
Значение по модулю (т.е., положительное) инвертируется и прибавляется единица (арифметически). Скажем, "-1" в одним байтом будет представлено как 0хFF, двумя - 0xFFFF. При этом не забывать - старший бит - знак числа.
Если старший байт заполнить до упора влево знаковым битом - получим обычное целое число.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
09.07.2013, 09:03
|
|
Вид на жительство
Регистрация: 10.08.2005
Сообщений: 385
Сказал спасибо: 0
Сказали Спасибо 161 раз(а) в 140 сообщении(ях)
|
Re: HMC5883 Компас
Цитата:
|
Для примера имеем 11111111 10101011, сколько получим (это значение по одной из осей я получаю с компаса HMC5883L при 5Gain).
|
|
|
|
|
09.07.2013, 09:06
|
|
Почётный гражданин KAZUS.RU
Регистрация: 12.11.2004
Адрес: Москва
Сообщений: 8,616
Сказал спасибо: 708
Сказали Спасибо 4,383 раз(а) в 2,007 сообщении(ях)
|
Re: HMC5883 Компас
Сообщение от akegor
|
При этом не забывать - старший бит - знак числа.
Если старший байт заполнить до упора влево знаковым битом - получим обычное целое число.
|
Куда ж его заполнять то если он и так крайний слева?
__________________
Я не помогаю. Я провоцирую думать.
Не дай вам Бог плохих контактов.
|
|
|
|
09.07.2013, 11:05
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,121
Сказал спасибо: 2,569
Сказали Спасибо 11,945 раз(а) в 5,992 сообщении(ях)
|
Re: HMC5883 Компас
Сообщение от Kabron
|
Куда ж его заполнять то если он и так крайний слева?
|
Если старший из двенадцати - то есть кудыма - до шестнадцати.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
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
|
|
Частый гость
Регистрация: 09.02.2013
Сообщений: 22
Сказал спасибо: 7
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: HMC5883 Компас
Спасибо Alecsej за картинку калькуятора, вот так мне намного стало понятней как конвертирвать отрицательный двойной байт. Всем спасибо, проблему решил. На будущее, у кого будут проблемы, после получения данных сначала постройте некотрую диаграмму получения данных. Найдите смещенный центр получаемой фигуры, при необходимости смесите фигуру в 0 координат, при очень неудачном варианте пересчитайне получаемый элпис в окружность. После этого можно рассчитывать угол. Во вложении пример получаемой примерной окружности до смещения.
Еще скажу, компас очень чувствителен к различным помехам. Проверял вместе с обыкновенным компасом, ошибка +-5градусов. Но, видел, что на обыкновенный компас очень сильно и провод USB, который был еще не подлючен, и, даже, пружины с кровати. Поэтому, может, в лесу ошибка будет меньше.
|
|
|
|
21.07.2013, 21:18
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,121
Сказал спасибо: 2,569
Сказали Спасибо 11,945 раз(а) в 5,992 сообщении(ях)
|
Re: HMC5883 Компас
Гораздо точнее результат, если покрутить вокруг осей и посчитать значения амплитуд и фаз (определить поправки за неортогональность). Но для этого нужна установка, в которой можно закрепить и четко выдержать углы поворота.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
21.07.2013, 22:46
|
|
Вид на жительство
Регистрация: 10.08.2005
Сообщений: 385
Сказал спасибо: 0
Сказали Спасибо 161 раз(а) в 140 сообщении(ях)
|
Re: HMC5883 Компас
Цитата:
|
Проверял вместе с обыкновенным компасом, ошибка +-5градусов.
|
Вполне достойно для простейших калибровок. Половина румба.
Сообщение от akegor
|
Гораздо точнее результат, если покрутить вокруг осей и посчитать значения амплитуд и фаз (определить поправки за неортогональность). Но для этого нужна установка, в которой можно закрепить и четко выдержать углы поворота.
|
Датчик сам по себе имеет неортогональность 0.1 гр. Искажения же вносимые окружением имеют несколько иную природу. Чтобы их компенсировать необходимо преобразовывать эллипс в окружность.
|
|
|
|
21.07.2013, 23:08
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,121
Сказал спасибо: 2,569
Сказали Спасибо 11,945 раз(а) в 5,992 сообщении(ях)
|
Re: HMC5883 Компас
Сообщение от Alecsej
|
Датчик сам по себе имеет неортогональность 0.1 гр. Искажения же вносимые окружением имеют несколько иную природу. Чтобы их компенсировать необходимо преобразовывать эллипс в окружность.
|
Скажем, неортогональность - это для любителей повышенной точности, а вот остальные продукты прокручивания - максимальные амплитуды - и + и ноль каждой оси (это вместо преобразований эллипсов в окружности). Конечно лучше в поле эталонироваться.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
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, время: 07:53.
|
|