Перейти к содержанию
    

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может оно и так. Дело в том, что частота излучения впередсмотрящего эхолота (углы нужны для него) 200 мс. Угол нужен один раз за излучение. Понятно, что за это время можно проинтегрировать угловую скорость с датчика и рассчитать среднюю. Как из этих данных получить угол? Не врубаюсь.

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

 

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

 

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

 

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

 

Что Вы думаете по поводу статьи с применением гироскопа и акселерометра?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

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

 

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

 

 

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

Спасибо. Стало яснее. Кроме того почитав этот материал http://www.poprobot.ru/theory/discrete_integration, который подтверждает Вашы выкладки про суммирование и этот http://www.poprobot.ru/theory/complementary_filter стало понятно совместное использование гироскопа и акселерометра.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо. Стало яснее. Кроме того почитав этот материал http://www.poprobot.ru/theory/discrete_integration, который подтверждает Вашы выкладки про суммирование...

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подскажите пожалуйста. В даташите в регистре CTRL_REG4 сказано что есть некfz переменная ST. За что она отвечает и какие значения можно в нее передавать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...