MPU-6050 и AVR

Обсуждаем цифровые устройства...
Arseny
Родился
Сообщения: 5
Зарегистрирован: Пн мар 05, 2012 13:26:40

MPU-6050 и AVR

Сообщение Arseny »

День добрый!
Возникла проблема при работе с микросхемой MPU-6050.
После конфигурации из регистров данных акселерометра, гироскопа и температуры читаются значения 0. При этом из регистров, отвечающих, за конфигурацию микросхемы нормально считываются записанные туда ранее данные.
Конфигурацию выполнял согласно карте регистров:

MPU6050_I2C_write(MPU6050_RA_PWR_MGMT_1, 0x00);
MPU6050_I2C_write(MPU6050_RA_PWR_MGMT_2, 0xC0);
MPU6050_I2C_write (MPU6050_RA_CONFIG, 0x00);
MPU6050_I2C_write (MPU6050_RA_GYRO_CONFIG, 0x18);
MPU6050_I2C_write (MPU6050_RA_ACCEL_CONFIG, 0x00);

Используемый микроконтроллер - ATMega8. Связь с компом через FT232.

Может кто сталкивался с подобной проблемой?

В прикрепленном файле лежит прошивка. Если у кого-нибудь есть под рукой такой акселерометр/гироскоп и минутка свободного времени, не могли бы проверить прошивку, а то уж больно не хочется ждать еще одной микросхемы из китая.
Вложения
TEST_MPU-6050.hex
(3.18 КБ) 1021 скачивание
Arseny
Родился
Сообщения: 5
Зарегистрирован: Пн мар 05, 2012 13:26:40

Re: MPU-6050 и AVR

Сообщение Arseny »

Проблема решена заменой библиотеки для программной реализации I2C.
igev
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Ср апр 06, 2016 08:11:57

Re: MPU-6050 и AVR

Сообщение igev »

Не буду плодить новых тем, спрошу здесь.

Собрал схему для работы с четырьмя 6050 на ATmega8. Вроде как работает. С плат GY-521 убрал подтягивающие резисторы, сделал отдельно на шину I2C пару по 4k7.
Питание 5В, уровни 5<->3.3 выровнены через 2n7000, данные читаются. Пишу-читаю данные в них, циклически подавая 3.3V на AD0 нужного экземпляра
(делается один адрес 0x69 на период обмена данными, остальные с адресом 0x68 игнорируются).

Проблема:

Инициализация чипов одинаковая ( +/-2G лимиты для акселерометра, 250° в секунду для гироскопа),
но в состоянии покоя у одного чипа получаемые данные акселерометра в пределах +/-16384 единицы,
а у трёх остальных +/- 8192 единицы. До гироскопа ещё не дошёл, но суть проблемы уже понятна что-то не в порядке с инициализацией чувствительности.
Повышаю чувствительность -> (делаю +/- 4G), у первого чипа становится +/-8192, у остальных +/- 4096 (грубо, т.к. без калибровки). Инициализация, значит, работает как-то.
Т.е. один вроде как в норме, остальные глючат. Перестановка гироскопов на главной плате ничего не меняет, чипы продолжают выдавать специфичные дня них данные
с любой точки подключения.

Кто, что думает, подскажите, пожалуйста!

Ну а пока что буду пробовать работать с ними наоборот (0x68 - активный, 0х69 - отдыхают), да по отдельности проверю.

P.S. В процессе написания начал подозревать, что это всё из-за выпаянных с плат подтягивающих резисторов.
Плата, которая выдаёт 16384ед=1g, имела несколько другой layout схемы, и номиналы резисторов там были 4к7, именно такие, как сейчас сделаны общие.
а на тех платах, которые выдают 8192ед=1g, номиналы были 2к2... Видать, не зря разные номиналы на разных платах китаёзы сделали...
Поставлю 2к2 сегодня да выдерну чип, который на 4к7 был рассчитан.

==============

Замена подтягивающих резисторов (от 3.3V) с 4к7 на 2к2 ничего не поменяла.
Работа с адресом 0х68 вместо 0х69 аналогично - без эффектов.
Проверил платы по отдельности.
Плата, которая сразу выдавала нормальные результаты, на всех режимах чувствительности ведёт себя адекватно.
Остальные - без изменений, занижают чувствительность в 2 раза.

Единственный напрашивающийся вывод - что-то не так с преобразованием уровней на шине I2C.
Не было BSS138, пришлось делать на 2n7000 по прилагаемой схеме
I2c-3-3-5v.jpg
(16.25 КБ) 1006 скачиваний
Попробую поменять подтягивающие резисторы (от 5V) с 10к на те же 2к2.
10к, наверное, многовато для 6050.
igev
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Ср апр 06, 2016 08:11:57

Re: MPU-6050 и AVR

Сообщение igev »

Ничего не помогло. Рискнул даже подключить 6050 по SDA и SCL напрямую к выводам ATmega8, без преобразования уровней с 5 до 3.3В.
Всё без изменений. 1 нормальный, 3 шт. "с отклонениями". Причём один из "глючных" гироскопов ранее точно нормально работал с питанием 3.3V на макетке. Из чего делаю вывод о том, что в процессе изготовления платы эти три модуля испортились по неопытности :(
Хорошо, хоть один модуль живой. Буду на нём экспериментировать да закажу ещё партию.
igev
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Ср апр 06, 2016 08:11:57

Re: MPU-6050 и AVR

Сообщение igev »

Для развития темы. Может, кому пригодится.

Пока едет очередная партия из 5шт MPU6050, экспериментирую с одним "пережившим конструирование".
Цель - понять, что можно выжать из данного чипа и нескольких параллельно.

Для начала пришлось решить задачку вычисления частоты работы кварца.
Таймер в программке настроен на срабатывания каждую 1мс.
1 раз в 5мс на SD-карту сбрасываются текущие значения и значения счётчика времени.
Секундомером засекаем момент начала записи (мигание светодиода), ждём сколько можем (5-10-20 минут), выключаем прибор.
За ~300 реальных секунд приборчик насчитал примерно 298 "внутренних" секунд.
По данным значениям корректируем значения частоты и параметры счётчика. Частота встроенного кварца на 8МГц оказалась около 7.863Мгц.
Как бы не пришлось потом ещё и термостабилизированный генератор вместо кварца ставить для точности ;)

Далее начались эксперименты с термокомпенсацией значений датчиков.
Делал в 3 положениях (оси X,Y,Z перпендикулярны условно-горизонтальной плоскости). Температура - от 30 до 50 градусов Цельсия (по данным сенсора датчика).
Начинал с комнатной температуры, затем обдувал феном слегка, последняя стадия - остывание несколько секунд.
Позже выложу на файлообменник исходные таблички и графики, сюда более 1Мб не выкладывается.

Расчёт делался при максимальной чувствительности сенсоров:
(16384)LSB/1g (единиц на 9.8м/с2)
(131)LSB/dps (единиц на 1 градус в секунду)
О реальной горизонтальности положения датчика говорить не приходится - всё "на глазок".

Резюме по расчёту термокомпенсации:
1) Нет разницы, в какой ориентации рассчитывать - достаточно основной, когда Z перпендикулярно условному горизонту.
2) Сенсоры акселерометра по X и Y слабо зависят от температуры, коэффициент около (-0.1)...(-0.2) (в LSB на +0.1 градуса Цельсия).
3) Сенсор акселерометра Z сильно чувствителен, коэффициент около (-4.0)...(-6.0) (в LSB на +0.1 градуса Цельсия).
4) Сенсоры X и Y гироскопа зависят от температуры чуть сильнее, чем сенсор Z. Коэффициенты для них примерно +0.4 LSB на +0.1 градуса Цельсия.
5) Сенсор Z гироскопа имеет коэффициент +0.15 LSB на +0.1 градуса Цельсия.
6) Пока предполагаю, что для каждого экземпляра датчика коэффициенты могут быть специфичны, также как и значения сенсоров температуры.
+7) На графиках показаний акселерометра по Z (от температуры) наблюдается некоторая скачкообразная нелинейность, вероятно, от резкого разогрева.

После этого скорректировал процедуру стартовой калибровки гироскопа (все 3 сенсора в 0),
чтобы и в данной процедуре уже устранялось влияние температуры.
Сейчас перехожу к калибровке акселерометра.

Интересное наблюдение.
После того, как прибор как-либо вращается затем фиксируется, т.е. находится в состоянии покоя,
гироскоп после ~0.2сек покоя (сенсоры +-5 LSB) возбуждается слегка (сенсоры показывают когда до+-50, а когда и более),
затем опять успокаивается (сенсоры +-5 LSB).
То-ли всё-таки это внешние вибрации, в т.ч. от остаточного дёрганья корпуса,
то-ли всё-таки своеобразный эффект "покачивания" после изменения положения.
igev
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Ср апр 06, 2016 08:11:57

Re: MPU-6050 и AVR

Сообщение igev »

Акселерометр откалибровался достаточно просто. Точность - надеюсь, что достаточная.
Методика: http://davidegironi.blogspot.ru/2013/01 ... er-01.html

Калибровал каждую ось отдельно, в восьми положениях (ось X/Y/Z вертикальна к горизонту и наоборот, с поворотом вокруг неё на 0, 90, 180, 270 градусов).
Подтвердилось, что от степени вертикальности оси Z ничего не меняется. Достаточно 1 раз замерить с каждой осью вниз и наоборот, как в методике.
И того, что датчик "на глаз" горизонтален или вертикален, достаточно для точной калибровки, т.к. влияние других осей в таких позициях предельно минимально.
Записал оффсеты и GAIN каждой оси, пересчитал исходные данные акселерометра с учётом калибровки, точность получилась ~1,0001.
Было подозорение на то, что оси сенсоров акселерометра не абсолютно перпендикулярны друг другу,
но тестовая проверка значений сенсоров в состоянии покоя с учётом калибровки показывает,
что длина вектора акселерометра ~16384 с отклонениями в пределах погрешности датчика при любой ориентации датчика (+/- 5-10 LSB).
Наибольший разброс данных - всё-таки в горизонтальном положении, как и отмечено в даташите на 6050.
Видимо, такова технология изготовления, что ось Z наиболее шумная.

Далее заново проверил точность состояния покоя, с учётом калибровки, 20 минут.
Стабильность кварца и коэффициенты термокоррекции - в норме.
Далее повторная калибровка акселерометра показала, что есть отклонения в смещениях +/- 10 LSB, плюс отклонения по GAIN до от 0.0001 до 0.001.
Пришлось ещё раз рассчитать смещения и коэффициенты, и так раза 3, после чего смещения уложились в +/- 2 LSB, а отклонение GAIN не более 0.00015.
Думаю, пока что достаточно на данном этапе.

Перехожу к калибровке коэффициентов гироскопа.
igev
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Ср апр 06, 2016 08:11:57

Re: MPU-6050 и AVR

Сообщение igev »

Калибровку коэффициента гироскопа делаю вращением корпуса с датчиком (взят корпус от БП компа, в первом приближении все углы у него прямые, этим и пользуюсь).
Корпус вращаю вокруг каждой оси, между двух плоских, вертикальных, параллельных упоров-плоскостей по бокам, на 360°. Стараюсь равномерно, без ударов.
Самый первый тест (вокруг оси Y) показал, что интегрированные вращения вокруг оси Y составили +363.4°, X: -6.8°, Z: -3.5°.
Думаю, что коэффициент для данной оси Y можно считать на основании значения по Y, т.к. влияние таких значений по осям X и Z на значение по Y пренебрежительно мало.
В таком случае GYRO_GAIN_Y можно будет принять за 360/363.4=0.9907.
Таким методом и попытаюсь откалибровать гироскоп, насколько точно это возможно.

Текущее наблюдение:
малейшие столкновения, удары корпуса датчика, более-менее интенсивное вращение перегружают его максимальную чувствительность,
поэтому при реальных замерах наверняка потребуется параллельная работа нескольких (1-3) датчиков с максимальной чувствительностью,
а остальные - с рассчитанной на средестатистические "перегрузки".
igev
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Ср апр 06, 2016 08:11:57

Re: MPU-6050 и AVR

Сообщение igev »

Гироскоп вроде как тоже откалибровался.
Повторные калибровки показывают, что у акселерометра всякий раз новые корректировки смещения,
когда в пределах "шума" сенсора (+/-10LSB), а когда и поболее (-105 было). Что-то, видимо, ещё не учтено.

Кстати, при замерах зависимости сенсоров от температуры отмечалось иногда скачкообразное изменение
значений сенсора, возможно оттуда и проблемы.
Аватара пользователя
PANYTA
Встал на лапы
Сообщения: 87
Зарегистрирован: Пн мар 30, 2009 07:38:28
Откуда: Бурятия

Re: MPU-6050 и AVR

Сообщение PANYTA »

А конечная цель столь глубоких исследований?
Где применяться будет MPU6050?
igev
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Ср апр 06, 2016 08:11:57

Re: MPU-6050 и AVR

Сообщение igev »

Да я бы не сказал, что мои эксперименты глубокие. Иду по описанным шагам и пишу свои наблюдения.
Есть отчёты и покруче на порядок-два ;)
Тут пишу свои шаги скорее для того, кто следующий задумает попытать эти устройства и нужно будет с чего-то начать.
Моя цель - использование его в инерциальной навигации, конкретно - отслеживание координат, маркшейдерия.
Проблема, как оказалось, серьёзная - нестабильность сенсоров по массе причин и накопление ошибки.
Сам понимаю, что использование датчика за 2$ не может привести даже к мало-мальски приемлемым результатам.
Колебания значений одного датчика ничем не скорректировать, только какими-то зависимостями, сглаживанием
и точной предварительной калибровкой. Результат всё равно будет неудовлетворительным.
Буквально 5 минут работы и ситуация будет искажена. Плюс то, что колебания значений сенсоров при движении усиливаются.
Но есть идея, что использование одновременно нескольких датчиков (штук 5-10) позволит вычислять ошибочные отклонения
показаний сенсоров и улучшать результат.

Последние наблюдения:
1) Внутренний резонатор в ATmega328P оказался вполне точным и никакой подстройки под его частоту делать не пришлось.
Теперь можно поупражняться с расчётом кватернионов и расчётом координат, памяти побольше.
2) Сделал автоматическую калибровку оффсета акселерометра по оси Z (как самой глючной) при старте, одновременно с калибровкой оффсетов гироскопа,
стало лучше, но не помогло до конца. Постоянно на +/- 10 LSB каждая ось отклонена от нормы, всякий раз новые значения. Немного, но нехорошо.
3) Вычислил приблизительный поворот по осям гироскопа в состоянии покоя минут за 10, получилось не более 0.5° по каждой.
Аватара пользователя
PANYTA
Встал на лапы
Сообщения: 87
Зарегистрирован: Пн мар 30, 2009 07:38:28
Откуда: Бурятия

Re: MPU-6050 и AVR

Сообщение PANYTA »

А GPS/ГЛОНАСС ?..
igev
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Ср апр 06, 2016 08:11:57

Re: MPU-6050 и AVR

Сообщение igev »

Под землёй от спутников никакого толку ;)
igev
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Ср апр 06, 2016 08:11:57

Re: MPU-6050 и AVR

Сообщение igev »

Прицепил алгоритм Mahony для расчёта ориентации. Чего-то считает.
Это серьёзно замедлило обработку данных, раза в 2 сразу. Поднял частоту до 22МГц.
На чтение данных с одного датчика и расчёт кватерниона уходит в среднем 4мс,
общий цикл с записью на SD-карту занимает около 10мс, т.е. 100Гц в лучшем случае.
Для нескольких датчиков желателен проц побыстрее в десяток раз :(
Иначе обработку данных придётся выносить из устройства.

Но с точностью ориентации не всё так плохо ;)

Первый опыт. 15-минутное лежание прибора характеризуется следующими результатами:
1) за первые 60 секунд показания Эйлеровых углов по оси X и Y стабилизировались на значениях -1.5° и +0.5° соответственно, и так и продержались до конца замеров;
2) показания по оси Z также стабилизировались до 0 за первые 60 секунд, но потом начали дрейфовать и к концу замеров накопилось -2.8° поворота;
это не есть нехорошо (сказывается влияние неточной калибровки смещения акселерометра по оси Z?);
3) нужно отметить, что средние показания исходных данных сенсоров гироскопа по всем осям не превысили +/-0.5 LSB, т.е. калибровка гироскопа была достаточной;

Второй опыт. 90 секунд прибор лежал в покое (чтобы алгоритм дошёл до стадии стабилизации показаний), затем 1 минуту было перемещение
прибора по квартире туда и обратно метров на 10, с поворотами, и вернулся точно на прежнее место в той же ориентации.
1) в процессе "лежания" 6050 вёл себя аналогично предыдущему опыту. X и Y стабилизировались (-1.0° и +0.4°) , а Z поплыл дальше (с -0.1° до -0.4°).
2) прогулка прибора в конце показала следующие углы положения: X и Y - те же, что и после стабилизации (-1.0° и +0.4°), а Z показал +0.1°, т.е. уплыл на полградуса за 3 минуты.
3) резюме по полученным данным - при коротких измерениях гироскоп 6050 достаточно точен. Хотелось бы, чтобы это так и было.

Следующая задача - определить, каково будет подобное смещение уже в метрах-сантиметрах.

По-видимому, пора запастиcь и осваивать STM32F4, там вроде как до 180МГц заявляют.
igev
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Ср апр 06, 2016 08:11:57

Re: MPU-6050 и AVR

Сообщение igev »

По данным предыдущего опыта (900 сек покоя) посчитал смещение по показаниям акселерометра.
Показатели покоя сенсоров взял из средних данных за этот период, считал отклонения от средних и интегрировал скорость по каждой оси.
Результат не обрадовал. Картинки прилагаю (по горизонтали - номер наблюдения/ время, по вертикали - ускорение и интегрированная скорость).
В то же время сами значения отклонений акселерометра достаточно стабильны на первый взгляд (из графиков ускорения).
Колебания мизерные, но нестабильные, то "среднее за некоторый период в 1-2 минуты" растёт на единичку, то падает (от температуры всё-таки в т.ч.).
Этого хватает для накопления целых метров за минуту. И это в покое, а что будет при движении!
На фоне такой нестабильности акселерометра предыдущий "успех" с гироскопом кажется подозрительным.
Или же сказывается вращение Земли? (это, скорее, из темы гироскопа, чем акселерометра) ;)
Вложения
az.png
(72.17 КБ) 939 скачиваний
ay.png
(58.45 КБ) 988 скачиваний
ax.png
(56.8 КБ) 980 скачиваний
vadim1997a
Родился
Сообщения: 1
Зарегистрирован: Вс авг 14, 2016 12:50:30

Re: MPU-6050 и AVR

Сообщение vadim1997a »

Подскажите, а чем закончилось разбирательство с глюканутыми mpu-6050? Новая партия к вам пришла? Что-то у меня такая же ерунда. Из пяти нормально работает один. Два - показывают в два раза меньше, два - в два раза больше, чем надо.
igev
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Ср апр 06, 2016 08:11:57

Re: MPU-6050 и AVR

Сообщение igev »

vadim1997a писал(а):Подскажите, а чем закончилось разбирательство с глюканутыми mpu-6050? Новая партия к вам пришла? Что-то у меня такая же ерунда. Из пяти нормально работает один. Два - показывают в два раза меньше, два - в два раза больше, чем надо.

Пока ничем. Новая партия ещё не пришла. Старые не проверял повторно. Да и характеристики акселерометра не внушают оптимизма.
Были мысли про то, что тактирование привязано к одному из сенсоров гироскопа (у меня к X), что нужно попробовать к другим осям привязать, либо ко внутреннему.
На макетке один из глючных датчиков ранее показывал данные в нужном масштабе, питание было тогда 3-4V, а в нынешних экспериментах 5V. Может, напряжение как-то влияет?
igev
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Ср апр 06, 2016 08:11:57

Re: MPU-6050 и AVR

Сообщение igev »

Осенью пришли 5шт GY-521 c 6050. Дело дошло до этой задачи только сейчас.
Убрал подтягивающие 2.2к с плат, подсоединил, считал данные.

После некоторого периода непонимания, почему они показывают разнородную чепуху в состоянии покоя,
после ряда проверок, выяснилось, что все новые модули более-менее рабочие.
По крайней мере масштаб по осям акселерометра у всех выставляется одинаково и корректно (1 G = 16384 lsb).

2шт 6050 в покое показывали зашкаливающие (32768) значения по оси Y акселерометра:
AX;AY;AZ;
730;-32768;13444;
-1100;-32768;17840;

Остальные - совсем неблизкие к 0 (по X,Y) и 16384 (по Z):
AX;AY;AZ;
7438;2726;12890;
-1738;-2836;17254;
644;23808;15870;

В то время, как предыдущий рабочий датчик в состоянии покоя показывал
AX;AY;AZ;
216;158;16482;
- т.е. практически идеально.

"Зашкаливание" по Y вылечилось пробной корректировкой оффсета на -4000 (с записью в чип после инициализации),
датчики начали показывать более-менее вменяемые значения по Y, которые уже можно калибровать.
Реально записать в чип эти оффсеты нельзя, значения хранятся только во время работы.

В итоге "предварительные" внутренние оффсеты модулей получились такими:
(при этих значениях показания акселерометра в покое показывают цифры, издали похожие на 0,0,16384)

AX;AY;AZ;
#1: -4792: 7761; 1762
#2: -1390; 532; 1963
#3: 976; -407; 1384
#4: -1728; 3774; 618
#5: -359; -2329; 1512
#6: 624; -4211; 1752 (это модуль из предыдущей партии)

Судя по полученным оффсетам модулей, делаю следующие выводы:
1) Калибровка чипов 6050 "на заводе" - весьма условная, раз после монтажа обнаруживаются такие отклонения
от записанных в чип оффсетов акселерометра. Либо при монтаже все эти оффсеты слетают напрочь.
2) Модуль с предыдущей партии (№6) откалиброван вполне качественно. На нём я предыдущие эксперименты и проводил.
Просто повезло. Но и у него исходный оффсет по AY немаленький - -4200.
3) Предполагаю, что большие значения оффсетов свидетельствуют о каких-то нехороших отклонениях в конкретных экземплярах.
4) Из чего делаю следующий вывод: самый проблемный модуль, как я вижу - №1, у него огромные смещения сразу по 2 осям.
Мне для прибора нужно до 5 модулей, поэтому этот будет резервным. Остальные "более-менее".

Три модуля из предыдущей партии оказались с другим монтажом на плате. Как раз они ВСЕ неправильно
устанавливают масштаб акселерометра при инициации. Вероятно, дело в их схеме или моей функции инициализации.
Возможно, из-под Ардуины по стандартным алгоритмам они бы инициализировались нормально.

Последнее на текущий момент.

Суммарное время чтения 5 датчиков при 22МГц частоты Atmega328P - порядка 10мс. Плюс запись данных на карту
- порядка 10мс. Итого сейчас прибор выдаёт данные со скоростью около 50Гц. Если в итоге получится хотя бы 25Гц
(добавятся расчёты, корректировки), то это будет терпимо на данном этапе. Но, по-хорошему, нужен более
производительный МК, чтобы иметь данные хотя бы при 50-100Гц.
igev
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Ср апр 06, 2016 08:11:57

Re: MPU-6050 и AVR

Сообщение igev »

Всё же оказалось, что один из датчиков "дохлый", несмотря на нормальные данные в состоянии покоя.
При перевёртывании его "кверх ногами" значение AccelZ от +16384 изменилось не до ожидаемых -16384, а до +15000 !!! Другие оси рабочие.

Итого, "их осталось 5" (из 9 закупленных) ;) Так что кто надумает экспериментировать - берите в удвоенном количестве.
Оставшиеся показывают что-то приемлемое. Температуру, правда, разную ;)
В ближайшее время выясню, одинаковая ли у разных датчиков чувствительность к температуре.

А вообще уже понял, что все эти модули - как повезёт, и лучше делать плату свою, как нужно.
igev
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Ср апр 06, 2016 08:11:57

Re: MPU-6050 и AVR

Сообщение igev »

Их осталось два (из 9 закупленных GY-521) :(
А надо хотя бы 3.

Это после анализа того, как они себя ведут в покое при изменении темературы от +25 до +60°С и обратно.

У №1 неадекватно реагирует на температуру AccelY (то прямая зависимость, то обратная). GyroX временами просто сбрасывает значение сам.

У №3 по GyroX идут колебания по синусоиде с периодом около 5сек до нагрева и около 2.5 сек после нагрева...
Да и GyroZ тоже неадекватно реагирует на температуру AccelY (то прямая зависимость, то обратная).
Но акселерометр рабочий.

У №5 слабо выражена зависимость AccelX от температуры (постоянно падает значение и при росте температуры, и при падении.
Гироскоп рабочий.

P.S. Чувствительность к температуре разная у каждого датчика, у каждой оси :(
Serj_K
Опытный кот
Сообщения: 718
Зарегистрирован: Сб апр 14, 2012 16:11:35

Re: MPU-6050 и AVR

Сообщение Serj_K »

Вообще-то MPU-6050 это уже достаточно древний чип. Более новые варианты типа MPU-9150 ил MPU-9250 имеют изначально более высокие параметры в части стабильности и разбросов характеристик. Причём они по регистрам практически одинаковые, так что инициализация изменится не значительно. Они немного дороже, но по цене наверное будут лучше, чем 2 из 9 более дешёвых. Я брал себе один MPU-9250 и он заработал вполне адекватно, хотя вышеописанных экспериментов я с ним не проводил - мне это не нужно было.
Ответить

Вернуться в «Цифровая техника»