MPU6050
Семейство датчиков MPU-6000 является первым в мире интегрированным 6-координатным решением на базе технологии MotionProcessing, которое позволяет избавиться от межкоординатной разориентации гироскопа и акселерометра, которая присуща дискретным решениям. В устройстве объединены трехкоординатный гироскоп и трехкоординатный акселерометр на одном кремниевом кристалле, а также процессор Digital Motion Processor, способный обрабатывать 9-координатные алгоритмы MotionFusion. Алгоритмы собирают информацию с магнитометров и других датчиков через шину I2C без участия системного процессора. Датчики MPU-6000 имеют такие же размеры и распиновку, как и нынешнее семейство MPU-3000 3-координатных гироскопов, что позволяет легко провести апгрейд.
Для наиболее точного трекинга быстрых и медленных движений пользователь сам может запрограммировать режимы: ±250, ±500, ±1000, ±2000°/сек для гироскопа и ±2g, ±4g, ±8g, ±16g для акселерометра.
Семейство MPU-6000 состоит из двух версий: MPU-6000 и MPU-6050, которые абсолютно идентичны, за исключением двух моментов. MPU-6050 поддерживает связь через интерфейс I2C с частотой до 400 кГц и имеет разъем VLOGIC, определяющий уровни напряжения на интерфейсе. MPU-6000 имеет кроме поддержки I2C поддержку интерфейса SPI на частоте до 20 МГц и разъем питания VDD, так же цифровой вход через разъем FSYNC с поддержкой GPS и электронной стабилизации видеоизображения. Размер датчиков был уменьшен до революционных 4х4х0,9 мм (QFN). Среди дополнительных возможностей датчиков можно отметить встроенный датчик температуры и внутрикристалльный осциллятор с колебанием рабочей частоты ±1%.
MOD-MPU6050, MEMS 3-осевой гироскоп и 3-осевой акселерометр с интерфейсом UEXT и I2C
MOD-MPU6050 это модуль 3-осевого гироскопа и 3-осевого акселерометра с DMP процессором (Digital Motion Processor) который способен обрабатывать сложные алгоритмы.
Особенности:
— 3-осевой гироскоп ±250, ±500, ±1000 и 2000°/sec;
— 3-осевой акселерометр ±2, ±4, ±8 и ±16g;
— Разъем UEXT;
— Интерфейс I2C.
Mpu 6050 подключение к компьютеру
Прогресс в мире перешел на новый уровень, и теперь мы можем узнать данные о любом объекте с помощью датчиков и микроконтроллеров.
Поэтому гироскоп-акселерометр MPU-6050 является хорошим помощником человека для исследования положения объекта в пространстве.
Проект «Программирование MPU-6050» позволит разобраться в работе 3-ёх осевого гироскопа-акселерометра, который определяет положение объекта в пространстве, а также фиксирует изменение ускорения тела.
Измерения, которые показывает MPU-6050, в дальнейшем быть использованы в других областях деятельности человека: в физике, аэродинамике, самолетостроении, космонавтике.
Цель проекта: Программирование гироскопа-акселерометра для определения положения в пространстве.
Задачи проекта:
- Исследование гироскопа-акселерометра MPU-6050.
- Программирование и испытание MPU-6050.
- Выявление перспективных направлений работы с MPU-6050.
Ожидаемый результат: полное изучение гироскопа-акселерометра MPU-6050.
4 ответа
Чтобы IMU и библиотека требовали, чтобы прерывание работало правильно. Он запрограммирован на использование прерывания 0 с этой строкой в функции настройки: attachInterrupt(0, dmpDataReady, RISING); Это не правильный способ делать что-либо, поскольку он не может быть передан между ардуинами. На Uno прерывание 0 — это контакт 2, но на микро прерывании 0 находится контакт 3. Таким образом, простым решением является перемещение провода от штыря 2 к контакту 3. Правильный способ исправить это — изменить строку на это: —- +: = 1 = + —-
Подождите и будьте терпеливы. Он инициализирует датчик. Вы даже ждали, как 10 секунд? Уверен, что нет.
Запустите его и подождите 10 секунд.
Добавить while(!Serial); сразу после Serial.begin(115200);
Установите скорость передачи до 115200. Это работает лучше, на мой взгляд.
Любые другие устройства, подключенные к вашему созвездию I2C? Если да, удалите все для целей тестирования
Я использовал прерывание 4 на контакте 7, и он отлично работал! Просто нужно было изменить обозначение прерывания на «7» в коде .
Я только что пережил подобную проблему, и вот что сработало для меня.
Следуя инструкциям @ mwwalk, я изменил вывод прерывания на цифровой контакт 7. После загрузки кода в Arduino Micro прошло бы Initializing I2C devices. но в итоге показывается MPU6050 connection failed . Это связано с тем, что mpu.testConnection() не удалось.
Чтобы исправить это, я заменил соединения для SCL и SDA на MPU-6050 на цифровой контакт 3 и цифровой контакт 2 на Arduino. Они не совпадают с выводами, показанными на диаграмме в учебнике (A5 и A4).
сопоставление контактов для Arduino Micro перечисляет цифровой контакт 2 в качестве вывода SDA и цифровой контакт 3 в качестве штыря SCL. Подключение SDA к цифровому контакту 2 и SCL к цифровому контакту 3 работало для меня.
● Проект 24: 3-осевой гироскоп + акселерометр на примере GY-521
В этом эксперименте мы познакомимся с акселерометром и гироскопом и будем с помощью Arduino получать показания с этих датчиков.
Необходимые компоненты:
Модуль GY-521 на микросхеме MPU6050 содержит гироскоп, акселерометр и температурный сенсор. На плате модуля GY-521 расположена необходимая обвязка MPU6050, в том числе подтягивающие резисторы, стабилизатор напряжения на 3,3 В с малым падением напряжения с фильтрующими конденсаторами. Обмен с микроконтроллером осуществляется по шине I2C.
Гироскоп представляет собой устройство, реагирующее на изменение углов ориентации контролируемого тела. Акселерометр – это устройство, которое измеряет проекцию кажущегося ускорения, то есть разницы между истинным ускорением объекта и гравитационным ускорением.
Схема соединений платы GY-521 к Arduino показана на рис. 24.1.
Код простого скетча для считывания значений гироскопа и акселерометра с датчика MPU6050 показан в листинге 24.1.
Порядок подключения:
1. Подключаем плату GY521 к плате Arduino по схеме на рис. 24.1.
2. Загружаем в плату Arduino скетч из листинга 24.1.
3. Открываем монитор последовательного порта Arduino IDE и смотрим вывод данных гироскопа и акселерометра (см. рис. 24.2).
4. При поворотах датчика данные изменяются.
Область применения таких датчиков достаточно широка. Данный модуль часто применяют для стабилизации полета квадрокоптера по причине совместного использования гироскопа и акселерометра. Кроме этого, модуль можно использовать для координации различных устройств – от просто детектора движения до системы ориентации различных роботов или управления движениями какими-либо устройствами. Область подобных сенсорных устройств достаточно новая и интересная для изучения и применения в любительской технике.
Комментарии
Пример «connection_check» из библиотеки рабочий. Рекомендуется загружать библиотеку из GitHub как ZIP-архив. И подключать тоже. Кроме того, нужно проверить, чтобы не было установлено других библиотек с таким названием, т.к. среда при компиляции может обращаться к ним. В таком случае будет конфликт и ошибки.
У меня также эта библиотека выдает: I2C ERROR CODE : 2
MPU connection failed. Please check your connection with `connection_check` example.
А пример connection_check — не компилируется, дает ошибку :
connection_check:7: error: variable or field ‘scan_mpu’ declared void
connection_check:7: error: ‘WireType’ was not declared in this scope
connection_check:7: error: ‘wire’ was not declared in this scope