Гироскоп для TX/TXT

Обсуждаем модели и конструкции, построенные своими руками
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1018
Зарегистрирован: 22 окт 2010, 23:57

Re: Гироскоп для TX/TXT

Сообщение Mr.Kubikus »

Привет!

Судя по документации, датчик BNO055 для каждой оси выдает 16-разрядные данные (16 разрядов - это два байта - двухбайтовое машинное слово данных) через два 8-разрядных регистра. Регистр, в названии которого есть аббревиатура LSB (Least Significant Byte) - это регистр с младшим байтом двухбайтового слова данных. Соответственно в регистре с аббревиатурой MSB (Most Significant Byte) хранится старший байт слова данных.

Данные по шине I2C передаются порциями по 1 байт (8 бит). Чтобы собрать двухбайтовое слово данных из однобайтовых порций, получаемых через I2C, надо байт с MSB умножить на 256 и затем прибавить к результату байт LSB. В итоге у нас получится двухбайтовое машинное слово с исходными данными. Блок-схема алгоритма на картинке ниже:
8-bit-to-16-bit.png
8-bit-to-16-bit.png (4.81 КБ) 9154 просмотра
Умножение на 256 можно заменить операцией байтового сдвига влево на 8 бит. Обычно процессор выполняет сдвиг быстрее умножения.
С уважением, Григорий
GitHub FB ВК
vladmed
Сообщения: 19
Зарегистрирован: 09 сен 2015, 18:25

Re: Гироскоп для TX/TXT

Сообщение vladmed »

Большое спасибо!
Еще уточнить можно, в блоке чтения размер данных должен быть 8 бит?
Вложения
3.PNG
3.PNG (10.39 КБ) 9154 просмотра
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1018
Зарегистрирован: 22 окт 2010, 23:57

Re: Гироскоп для TX/TXT

Сообщение Mr.Kubikus »

Кстати, да. В этом блоке можно указать размер слова данных, которое собирается из полученных через I2C байтов - 1 или 2 байта. Таким образом отпадает необходимость выполнять преобразование, которое мы обсуждали выше. К сожалению, сейчас нет под рукой TX чтобы проверить.
С уважением, Григорий
GitHub FB ВК
vladmed
Сообщения: 19
Зарегистрирован: 09 сен 2015, 18:25

Re: Гироскоп для TX/TXT

Сообщение vladmed »

Спасибо!
Получилось считать Heading обоими способами, только в случае без преобразования надо читать сначала 0x1a и выбрать "Сначала младший". Отличный чип, очень точно работает.
А вот другие углы пока что-то странное показывают, чаще знаки вопросов...
vladmed
Сообщения: 19
Зарегистрирован: 09 сен 2015, 18:25

Re: Гироскоп для TX/TXT

Сообщение vladmed »

Все заработало. получаем все углы как надо, спасибо за вашу помощь!
Последний вопрос, если из регистра 0x35 надо считать только два старших бита (7 и 6), такое выражение правильно?
Вложения
5.PNG
5.PNG (4.71 КБ) 9154 просмотра
Аватара пользователя
Mr.Kubikus
Сотрудник ПАКПАК
Сообщения: 1018
Зарегистрирован: 22 окт 2010, 23:57

Re: Гироскоп для TX/TXT

Сообщение Mr.Kubikus »

Такой подход использовать можно. Деление на 2**N - это сдвиг вправо на N разрядов.
С уважением, Григорий
GitHub FB ВК
Ответить