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

 
 
> Кто работал с L3G4200D?
Alexander_84
сообщение Apr 4 2011, 08:07
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 14-09-08
Пользователь №: 40 181



Здравствуйте, с гироскопами сталкиваюсь впервые. Вообщем задача пока просто измерять углы по 2 осям. Гироскоп подлючен по I2C к ARM. Интерфейс работает нормально (регистр WHO_AM_I считывется правильно), а когда пытаюсь считывать углы получаю ерунду: устройво лежит в покое, при этом показания например по оси x меняютя ( принимают значения 30000, 60000, 771, 64000...). Из настроек по умолчанию в CTRL_REG1 изменил power_down на normal_mode и DATA_RATE поставил 200Гц, в CTRL_REG4 BDU поставил в 1. С настройками по умолчанию считываю первый раз значение и больше оно не меняется при вращении устройства. Вообщем как заставить это работать и измеряется абсолютный угол или изменение угла?
Go to the top of the page
 
+Quote Post
4 страниц V  « < 2 3 4  
Start new topic
Ответов (45 - 48)
A. Fig Lee
сообщение Feb 24 2015, 14:38
Сообщение #46


Знающий
****

Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467



Не знаю насчет точности, но угол надо мерять с помощью LIS3DH и аналогичных. Разница в осях и даст угол


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post
Xenia
сообщение Feb 24 2015, 23:40
Сообщение #47


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(Acvarif @ Feb 24 2015, 10:40) *
Может оно и так. Дело в том, что частота излучения впередсмотрящего эхолота (углы нужны для него) 200 мс. Угол нужен один раз за излучение. Понятно, что за это время можно проинтегрировать угловую скорость с датчика и рассчитать среднюю. Как из этих данных получить угол? Не врубаюсь.

200 мс это видимо период, а не частота. А частотой с периодом 200 мс будет 5 Гц.

Берем самое медленное преобразование 95 Гц (оно меньше всего шумит). Ему соответствует период 1000/95 = 10.526 мс. Значит, за время 200 мс надо будет сделать 200/10.526 = 19 преобразований. Любопытно, что в вашем случае число получилось целое sm.gif. Следовательно, надо просуммировать 19 замеров подряд - эта величина и будет пропорциональна углу поворота за время 200 мс.

Разные премудрости на этот счет можно найти в статье "STM32 и гироскоп L3GD20. Часть 2.". Но, насколько я поняла, суммировать отсчеты придется и дальше, чтобы всегда знать текущий азимут. Ведь эти отсчеты соответствуют углу ПОВОРОТА за время изменения, на не угол наклона к горизонту или земной оси. Скажем, если за первые 200 мс ваша лодка повернулась по часовой стрелке (в плоскости XY) на угол +7°, а в следующие 200 мс еще на +5°, то в сумме она повернулась на 7+5=12°. Если станет поворачиваться в обратную сторону, гироскоп станет выдавать отрицательные углы поворота. Таким образом, в момент старта гироскоп должен быть ориентирован по сторонам света, а сумматор обнулен. А в дальнейшем эта сумма будет расти (при положительных измерениях) или убывать (при отрицательных измерениях).

Там (кажется в даташите) есть какие-то формулы, чтобы переводить текущую сумму в градусы. И если бы большой математик, то можете на здоровье с той формулой возиться. Я же предлагаю повернуть гироскоп на угол 90° (т.к. прямой угол легко определяется без транспортира) и попросту запомнить ту сумму, которая за время этого поворота набирается. А дальше пересчитываете суммы по пропорции, зная, какая величина соответствует 90°-ам. Не нравится вам мои 90° - поверните гироскоп на полный оборот - получите 360°, на них тоже можно калиброваться. Фактически я предлагаю вам откалибровать гироскоп, определив цену его деления экспериментально, а не колупаться в формулах.

Цитата(Acvarif @ Feb 24 2015, 10:40) *
Что Вы думаете по поводу статьи с применением гироскопа и акселерометра?

По поводу этой статьи я ничего ее думаю, т.к. ... не понимаю, что в ней написано. sm.gif
Go to the top of the page
 
+Quote Post
Acvarif
сообщение Feb 25 2015, 07:35
Сообщение #48


Знающий
****

Группа: Участник
Сообщений: 998
Регистрация: 27-08-08
Пользователь №: 39 850



Цитата(Xenia @ Feb 25 2015, 03:40) *
200 мс это видимо период, а не частота. А частотой с периодом 200 мс будет 5 Гц.

Берем самое медленное преобразование 95 Гц (оно меньше всего шумит). Ему соответствует период 1000/95 = 10.526 мс. Значит, за время 200 мс надо будет сделать 200/10.526 = 19 преобразований. Любопытно, что в вашем случае число получилось целое sm.gif. Следовательно, надо просуммировать 19 замеров подряд - эта величина и будет пропорциональна углу поворота за время 200 мс.

Разные премудрости на этот счет можно найти в статье "STM32 и гироскоп L3GD20. Часть 2.". Но, насколько я поняла, суммировать отсчеты придется и дальше, чтобы всегда знать текущий азимут. Ведь эти отсчеты соответствуют углу ПОВОРОТА за время изменения, на не угол наклона к горизонту или земной оси. Скажем, если за первые 200 мс ваша лодка повернулась по часовой стрелке (в плоскости XY) на угол +7°, а в следующие 200 мс еще на +5°, то в сумме она повернулась на 7+5=12°. Если станет поворачиваться в обратную сторону, гироскоп станет выдавать отрицательные углы поворота. Таким образом, в момент старта гироскоп должен быть ориентирован по сторонам света, а сумматор обнулен. А в дальнейшем эта сумма будет расти (при положительных измерениях) или убывать (при отрицательных измерениях).

Там (кажется в даташите) есть какие-то формулы, чтобы переводить текущую сумму в градусы. И если бы большой математик, то можете на здоровье с той формулой возиться. Я же предлагаю повернуть гироскоп на угол 90° (т.к. прямой угол легко определяется без транспортира) и попросту запомнить ту сумму, которая за время этого поворота набирается. А дальше пересчитываете суммы по пропорции, зная, какая величина соответствует 90°-ам. Не нравится вам мои 90° - поверните гироскоп на полный оборот - получите 360°, на них тоже можно калиброваться. Фактически я предлагаю вам откалибровать гироскоп, определив цену его деления экспериментально, а не колупаться в формулах.


По поводу этой статьи я ничего ее думаю, т.к. ... не понимаю, что в ней написано. sm.gif

Спасибо. Стало яснее. Кроме того почитав этот материал http://www.poprobot.ru/theory/discrete_integration, который подтверждает Вашы выкладки про суммирование и этот http://www.poprobot.ru/theory/complementary_filter стало понятно совместное использование гироскопа и акселерометра.
Go to the top of the page
 
+Quote Post
Xenia
сообщение Feb 25 2015, 09:32
Сообщение #49


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(Acvarif @ Feb 25 2015, 10:35) *
Спасибо. Стало яснее. Кроме того почитав этот материал http://www.poprobot.ru/theory/discrete_integration, который подтверждает Вашы выкладки про суммирование...


Не совсем, т.к. ни метод прямоугольников, ни метод трапеций, здесь не нужен, поскольку данный гироскоп выдает не мгновенное значение скорости, а среднее за весь период измерения! Это же видно из его поведения, поскольку измеренные значения возрастают, если я уменьшаю частоту измерений, и уменьшаются, если частота возрастает. Поэтому сумма, накопленная суммированием нескольких/многих измерений в течении одного и того же времени, получается приблизительно одинаковой. Т.е. если вы выберете большую частоту оцифровки, то измерения будут маленькими, но получится много слагаемых. А если оцифровывать медленнее, то, соответственно этому, каждый замер вырастет, но число слагаемых уменьшится. В итоге суммирования получите один и тот же результат, т.е. ... какими бы ломтями вы не нарезали буханку хлеба, в сумме его не станет ни больше, ни меньше.

Оно и правильно, т.к. суммарный угол поворота лодки не должен зависеть от того, с какой частотой у вас работает гироскоп. Соотвественно этому, и при повороте на 90° сумма должна набегать одинаковая, на какой-бы частоте вы гироскоп ни запускали. Но если сам промежуток времени больше периода оцифровки гироскопом, то выгоднее выбрать наименьшую скорость оцифровки, чтобы реже тот гироскоп опрашивать (слишком часто это делать погано, т.к. интерфейс у него I2C).
Go to the top of the page
 
+Quote Post

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

 


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


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