реклама на сайте
подробности

 
 
> Проблема с L3G4200
bva_rzn
сообщение Oct 18 2011, 10:19
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 15-08-11
Пользователь №: 66 737



Здравструйте.
На плате есть два датчика: L3G4200 и LSM303. Схема подключения взята из документаций на эти датчики. Датчики подключенны к
PIC18. Интерфейс обмена i2c. Реализован программно. Скорость менял от 30 кбис/с до 400 кбит/с.
Настройки датчика:

Write_byte(CTRL_REG4,0x80);
Write_byte(CTRL_REG3,0x08);
Write_byte(CTRL_REG2,0x06);
Write_byte(CTRL_REG1,0x0F);

Данные считываю блоком начиная с адреса STATUS_REG: GetI2C(STATUS_REG|0x80);
Данные считываются. Регистр WHO_AM_I так же читается, т.е. i2c работает.

Проблема в том, что в данных, считанных из датчика наблюдаются большие выбросы, хотя он неподвижен.
В чём может быть проблема?



Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
нечитатель
сообщение Jan 26 2012, 18:07
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 235
Регистрация: 20-11-10
Пользователь №: 61 032



То ли частная консультация "эксперту задан вопрос - от эксперта получен ответ либо вопрос больше неактуален либо вопрошавший самостоятельно решил свою проблему - короче автор удовлетворён и закрыли проехали", то ли публичные прения на какую-то такую заданную тему... шёл мимо, увидел щель, подумал вставить тоже:

1.
Если в больших выбросах, о которых сверху заголовок, старший бит в старшем байте =1 - тогда это не большие по модулю положительные, а малые по модулю отрицательные значения. "Минус немножко". Иностранными словами называется "2's complement" такая запись чисел.

Иначе любопытно, чем дело кончилось и как проблема устранена.

2.
angel_X = angel_X + gyroX*0.01

"Предполагаю, что" оригинальный подход к решению задачи... типа как ответ должен быть либо получен готовый уже от решавших её, либо угадан через интуицию?

gyroX (поп/сек) * период опроса (сек) = angel_X (поп) ... получили угол поворота в попугаях, один попугай ~ LSBit
angel_X (поп) * чувствительность (град/поп) = angel_X (град) ... получили угол в градусах

(для диапазона 2000dps чувствительность = 70 миллиградусов на каждого попугая = 0.07 градуса на попугая)

... а дальше угол в градусах умножаем на ещё что-нибудь, чтобы результат получился в удобных для дальнейшего его использования единицах. Например, в единицах "1/256 полного оборота".

---
На бумажке карандашиком это всё красиво и просто, а в настоящей микросхеме придётся ещё помнить про каждого из нарисованных чисел способ кодирования и разрядность. В битах.
Чтобы сначала все исходные данные, а потом на каждом этапе вычисления результат помещался(ись) в отведённое(ые) ему(им) место(а). Без переполнения, но/и с приемлемой точностью.
И чтобы алгоритмы соответственно...
... но это актуально только для задро ассемблерщиков красноглазых, а профессионалам можно не заморачиваться об такие мелочи, тупо всё сразу считая в супермегафлоатах @ стопицотмегагерцтактовой. Через готовые стандартные либы. Решая задачу вместо ковыряния байтиков под микроскопом.

3.
Прежде чем использовать полученный с сабжа очередной отсчёт, его полезно слегка обработать:

а). вычесть из него zero rate level (про который см. далее),
б). потом обнулить отсчёт, если он слишком близок к нулю (т.о. убираем шум, зато/и игнорируем медленные вращения).

4.
Zero rate level:

а). наше изделие находится в состоянии покоя,
б). собираем сколько-нибудь отсчётов, суммируем и делим на количество,
в). полученный zero rate level запоминаем, теперь нашему изделию можно начинать шевелиться.

г). время от времени перекалибровываемся повторно, начиная с п. 4а.

Обратить внимание на подчёркнутое в состоянии покоя, много думать.

5.
Почитать:

AN3393 L3G4200D: three axis digital output gyroscope ... от производителя сабжа про "как подключать, настраивать и получать какие-то данные"
TA0343 Everything about STMicroelectronics’ 3-axis digital MEMS gyroscopes ... от производителя сабжа про "как понимать полученные данные и что с ними делать дальше"
Helmet Locating and Tracking System Final Report ... учебный проект студентов, на соответствующем уровне подробненько и понятненько в сочетании с TA0343

Сообщение отредактировал нечитатель - Jan 26 2012, 18:12
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 31st July 2025 - 10:37
Рейтинг@Mail.ru


Страница сгенерированна за 0.01382 секунд с 7
ELECTRONIX ©2004-2016