Подключение гироскопа к ардуино: Работа с Arduino и MPU6050

Содержание

Гіроскоп для Arduino і Raspberry Pi купити в Україні

Гіроскоп / Troyka-модуль

Ви ніколи не думали, з якою швидкістю обертається балерина виконуючи фуете? Звичайно, для вирішення цієї задачі можна було б використовувати простий магніт на її нозі і геркон. Але як же бути з повітряними гімнастами, адже вони можуть обертатися в трьох площинах? Визначити який гімнаст обертається швидше допоможе трехосевой гіроскоп.

Відеоогляд

Загальні відомості

Гіроскоп з лінійки Troyka-модулів виміряє кутову швидкість навколо власних осей X, Y, Z. Це властивість стати в нагоді для стабілізації літального апарату з літаковим кутах: тангаж, крен і рискання.

Модуль заснований на чіпі гіроскопаL3G4200D. Мікросхема має вбудований датчик температури для точної роботи сенсора навіть в екстремальних умовах.

Гіроскоп спільно з акселерометром застосовується для відстеження кута повороту в сучасному смартфоні.

Якщо вам необхідно визначити положення вашого девайса в просторі і немає бажання возитися з модулями окремо: зверніть увагу на IMU-сенсор 10 ступенів свободи, в якому ми розпаяли всі чіпи на одній платі.

Особливості

  • Форм-фактор Troyka — практичне рішення для початківців та досвідчених мейкерів.
  • Сумісність з напругою живлення і логіки 3,3–5 Ст.

Підключення

Гіроскоп підключається до електроніці через дві групи Troyka-контактів.

Контакти харчування

КонтактФункціяПідключення
VХарчуванняПідключіть до живлення мікроконтролера.
GЗемляПідключіть до землі мікроконтролера.

Контакти даних

КонтактФункціяПідключення
DДані шини I2CПідключіть до піну SDA мікроконтролера.
CТактування шини I2CПідключіть до піну SCL мікроконтролера.

При підключенні до платформах форм-фактору Arduino R3 рекомендуємо використовувати Troyka Shield або Troyka Slot Shield. А для комп’ютерів Raspberry Pi передбачений Troyka HAT. Також модуль фізично сумісний з breadboard’ом.

Програмування

Гіроскоп спілкується з мікроконтролером через інтерфейс I2C. Для програмної роботи з датчиком використовуйте бібліотеки і функції, які полегшують складання коду програми.

  • Бібліотека для Arduino

Комплектація

  • 1× Гіроскоп / Troyka-модуль
  • 2× Трипровідною шлейф

Характеристики

  • Модель: Гіроскоп v1 / Troyka-модуль / AMP-B032
  • Чіп: L3G4200D
  • Вхідна напруга живлення Vcc: 3,3–5 В
  • Споживаний струм Icc: до 10 мА
  • Логічне напруга рівнів:
    • Вхід: 3,3–5 В
    • Вихід: 3,3–5 В
  • Апаратний інтерфейс: Troyka-контакти S-V-G
  • Програмний інтерфейс: I2C
  • I2C-адреса:
    • Без перемички: 0x68
    • З перемичкою: 0x69
  • Кількість ступенів свободи: 3 (X, Y, Z)
  • Діапазон вимірювань: ±250 / ±500° / ±2000 °/з
  • Чутливість: 8,7×10-3 °/с
  • Розміри: 25,4×25,4 мм

Ресурси

  • Що таке Troyka-модулі
  • Керівництво по використанню

Бібліотеки

  • Бібліотека для Arduino

Документація

  • Datasheet на чіп гіроскопа L3G4200D

Калибровка mpu 6050

Подключил, реализовал работу с ним. От датчика нужна только собственно информация о наклонах по двум осям. И желательно — быстрая реакция на наклон. С использованием фильтра Калмана:. Это позволяет разгрузить от вычислений основной процессор что для меня не важно , а также как я понимаю — получить более качественные данные, чем я сейчас получаю. Я хотел портировать этот стек в свой проект.


Поиск данных по Вашему запросу:

Калибровка mpu 6050

Схемы, справочники, даташиты:

Прайс-листы, цены:

Обсуждения, статьи, мануалы:

Дождитесь окончания поиска во всех базах.

По завершению появится ссылка для доступа к найденным материалам.

Содержание:

  • Подключаем гироскоп-акселерометр (MPU-6050) к плате Arduino
  • Акселерометр и гироскоп MPU6050
  • Датчик положения (гироскоп/акселерометр)
  • Подключение гироскопа-акселерометра MPU6050 к Wemos d1
  • Модуль 3-х осевого гироскопа и акселерометра GY-521 MPU-6050
  • Ардуино: акселерометр MPU6050
  • Работа с модулем акселерометра-гироскопа-магнитометра MPU-6050
  • Вопросы по гироскопу MPU 6050
  • Вопросы по гироскопу MPU 6050
  • MPU-6050 – гироскоп – акселерометр

ПОСМОТРИТЕ ВИДЕО ПО ТЕМЕ: Трехосевой цифровой компас HMC5883L и Arduino

Подключаем гироскоп-акселерометр (MPU-6050) к плате Arduino


Доброго времени суток уважаемые пользователи, не подскажите как работает вот этот прибор. А именно меня интересует как получить из него значения угловых скоростей по трём осям показание гироскопов и линейных ускорений показание акселерометров. Есть пример использования MPU на роботе. Спасибо большое, очень хороший пример, я хоть и не разобрался в нём до конца, но он натолкнул меня на «правильную» мысль Подключил акселерометр-гироскоп и магнитометр.

С магнитометром пока не пробовал. При отладке заметил, что в состоянии покоя значения акселерометра плавают. А значения гироскопа стабильны. Поэтому решил для коррекции движения прямо использовать показания оси Z.

Скорректировал программу объезда препятствий. Робот стал ездить прямо. Библиотеку для работы с акселерометром-гироскопом взял из интернета.

С гироскопом работаю по прерываниям для стабильности показаний. Коррекция чего акселерометра или гироскопа и на основании чего? В чем природа возникающей ошибки, которую нужно корректировать? Ошибка, это когда правое колесо вращается быстрей левого и робота начинает уводить в сторону.

Купил MPU у нас и все у него заработало. У этого датчика нулевое положение гироскопа задано или его можно самому установить? У меня датчик будет находиться не в горизонтальном положении, а в наклонном все три оси будут под углом к горизонтальной поверхности и мне надо как-то определять последующие изменения углов по осям. Есть пока только алгоритм: посылаем данные с gy на ардуино, обрабатываем их комплементарным фильтром, если данные по оси Х у нас не равны начальным значениям Х в минусовую зону, то включается двигатель, с помощью PIN9 на Ардуино, а если данные не равны начальным значениям по оси Х в плюсовую зону, то включается PIN Я умею считатывать данные с GY в виде 2 байт по 8 бит на каждое измерение затем следующая на каждую скорость, ускорение и температуру процедура:.

Есть какой нибудь простой способ определить с помощью этого акселерометра начало движения и остановку? В автомобиль хочу сконструировать ДХО, чтобы сами включались при начале движения и сами выключались при остановке. Сегодня доковырял сабж. Работает как ожидалось. Остальные углы наверно также, но они корректируются по гравитации. Для коррекции азимута нужен магнитометр. К стати кто знает какой датчик магнитного поля можно подключать напрямую?

Два дня ковыряния дали такие впечатления: Штука сложная со стороны матобработки первичных данных с датчиков. ПДФки можете даже не качать, безтолковые и не нужные, всё уже написано до нас, ищем и отбираем работоспособные библиотеки.

Второй подход — используем DMP, это спецпроцессор внутри датчика уже спрятан. Он сам общитает c первичными датчиками, общитывает их и выдает по I2C более гладкие данные, их тоже можна обработать, например выделить чистое ускорение, без гравитации, и это уже намного проще. Там все есть, и код и инит. Откомпилировано это все занимает в раене 20кбайт. Найденая либка I2C делала все, даже DMP заливала корректно, все работало, попробовал откалибровать — попа.

Оказалось word не правильно передает, и при записи офсета тока старший байт пишется 8х. В общем ищите в сети, отлаживайте, писать самому не надо. Только взводится флажек старта в обработчике, а прием из основного цикла. Про ДХО — это мысль! Можна даже на двигатель ставить датчик и ловить скопом все — вибрацию, ускорения и повороты.

Если есть чтото — едем и светим. К тому же в интерфейсах мелькала настройка параметров для детектирования движения. И даже вроде как можно прерывание генерить по такому случаю. Тогда работа сильно упростится. Может попробую завтра. Еще по подключению. В сети бурление по поводу того, что сабж на 3.

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

Пошаманив матиматикой дрейф нуля сводится на нет. А по Z так не получится, нужен еще какой вектор не паралельный оси Z.

Как вариант — магнитное поле земли. Собственно потому и спрашивал выше про датчик магнитного. С осью Z вряд ли что-то получится. А для других показаний отлично работает фильтр Калмана! Я находил где-то пример скетча, с фильтром вообще идеально. Эта утилитка его находит? Подскажите,есть ли у кого опыт управления какой-либо нагрузкой,в зависимости от угла? Ну например в том же роботе который на колесах балансирует.

Пробовал так:если угол больше например,то плавно загорается диод,и чем ближе к ,тем ярче,и нааборот. Не работает,виснет,начинает вроде работать потом виснет всё. Ребят, возникла проблема с GY Кто-нибудь в курсе, как это пофиксить? Вот тут подключается сабж, всё работает. Спасибо огромное эта команда работает! А можно подробнее, где вы взяли эту команду?

Ткните меня носом, где эти команды описаны, буду очень признателен. EwigeDreamer пишет: А можно подробнее, где вы взяли эту команду? От золотой вопрос! Я заходя в тему как раз думал о том, что надо бы не искать самому а рассказать как найти.

В общем рассуждаем так: оно гдето есть! Логично его искать в либке соответствующей. Дальше любимым способом поиска — я тоталкомандером, поиском в файле ищем упоминание нужного. Ожидаем чтото начинающееся на «set» «ini» «load».

И внимательно смотрим на найденное. Осталось найти куда его пихать. Нашул другой светч , и данные снова посыпались , всё было хорошо , но пока я с ним разбирался , он перестал работать. Имеется сабжевый гироскоп, подключенный к Pro Mini 3. Так вот — это все идеально работает, когда ардуина подключена к USB — все просто изюмительно. В чем может быть затык?

Внешнее питание — 3,7В, 4. Вопрос снят. Дело было не в батарейке и не в пайке. Оказалось, что почему-то не сбрасывался гироскоп после отключения и обратного включения питания от батареи. Если после включения от батареи нажать ресет — то потом все корректно работает. Добавил функцию программного ресета в код — все заработало. Шкала чувствительности достаточно гибкая, на доли градусов реагирует.

Могу скинуть скетч в ЛС с описанием чего оно и как делает. Если правильно горизонтировать датчик — то будет иметься постоянное значение по всем трем осям, для оси Z — это значение 0 при горизонтировании датчика «мордой вниз когда пины для подключения торчат вверх «, и — при горизонтировании «мордой вверх». При изменении положения относительно горизонта в любом направлении достаточно учитывать изменения , которые принимает значение параметра AcZ.

Изменения параметров АсХ и АсY интересны только в том случае, когда надо отследить наклон в определенную сторону. У меня значение параметра датчика делится на перед обработкой то есть я оперирую значениями от 0 до , мне подобной точности достаточно , и датчик я располагаю «мордой вверх», то есть горизонтальное значение — И если его наклоняют так, что AcZ падает ниже — то загорается ламочка.

Итак, в вашем случае достаточно выбрать, в каком положении датчик будет находиться пинами вверх или вниз , и в вышеприведенном скетче подставить действия при изменении, вместо мырганья лампочки, ну и чувствительность подобрать, соответственно. Зато сильный порыв ветра может качнуть машину, и будет сработка. Вот вопрос в следующем: как к данному коду «прикрутить» обнуление горизонта при включении питания устройства.


Акселерометр и гироскоп MPU6050

Дрова поставил в винд7, ошибок в диспетчере устройств нет. Судя по ошибке, прошивальщик не может подключиться к плате. Скорее всего, неправильно выбран COM-порт. Я с таким не сталкивался. В сетях пишут, что, возможно, нужно перепрошить бутлоадер. Плата действительно Nano? Китайский аналог nano.

Я вижу два способа борьбы с температурным дрейфом MPU Откалибруйте его перед каждым запуском: введите в setup().

Датчик положения (гироскоп/акселерометр)

Реквизиты статьи для указания в качестве источника:. Момот, П. Момот Юргинский технологический институт филиал Национального исследовательского Томского политехнического университета, П. Юрга, ул. Ленинградская, E-mail: momotmvu yandex. Статья посвящена анализу возможностей электронных приборов, таких как гироскоп, акселерометр, магнитометр. Приводятся результаты тестирования и действующие алгоритмы. Анализируются возможности их применения в разных вариантах расчетов.

Подключение гироскопа-акселерометра MPU6050 к Wemos d1

Тема в разделе » Схемотехника, компоненты, модули «, создана пользователем pyro , 17 апр Войти или зарегистрироваться. Искать только в заголовках Сообщения пользователя: Имена участников разделяйте запятой. Новее чем: Искать только в этой теме Искать только в этом разделе Отображать результаты в виде тем. Быстрый поиск.

Ориентация осей X и Y относительно корпуса указана на плате датчика.

Модуль 3-х осевого гироскопа и акселерометра GY-521 MPU-6050

Для того чтобы наше устройство могло отображать и записывать в лог ускорение и перегрузки во время разгона, мы подключим к нему популярный высокоточный модуль GY , на основе чипа MPU , являющегося трех-осевым гироскопом и трех-осевым акселерометром. Гироскоп нам пока не понадобится, поэтому в этой части я буду рассказывать только про акселерометр. Скачать архив со скетчем: MPU Теперь, если вы откроете терминал com порта, то увидите примерно следующую картину: ускорение по трём осям, температура, углы положения по трем осям. Из даташита , мы знаем, что при настройке чувствительности акселерометра до 2g на каждую единицу g приходится единиц измерения датчика.

Ардуино: акселерометр MPU6050

Там важен пункт начиная с третьего о файлике TIRViews. Сейчас все гуд! По поводу инерционных плат — без магнетометра нужно проводить внутреннюю калибровку сенсоров и учитывать температуру, иначе почти всегда будет убегание. С магнетометром проще. А такая ардуинка подойдет? Проверил во всех 3-х версиях.

Урок по подключения к Arduino акселерометра – инструмента, использующегоя для расчета разности между настоящим и.

Работа с модулем акселерометра-гироскопа-магнитометра MPU-6050

Калибровка mpu 6050

Работоспособность проверена на платах Arduino Uno и Arduino Mega. Данный файл заголовка требует файл Wire. Кроме того, перед вызовом встроенных функций, надо инициализировать шину I2Cс помощью команды Wire. Программа для Arduino с файлом заголовка и примером расположены на Логи версии: Версия 0.

Вопросы по гироскопу MPU 6050

ВИДЕО ПО ТЕМЕ: MPU-6050 — Гироскоп + акселeрометр

Сегодня, в рамках задачи по написанию автопилота под микроконтроллер STM32 , мы постараемся детально, как водится — в примерах, разобрать работу с датчиком MPU по шине I2C. Текстовое описание будет очень сжатым, если нужно более подробное раскрытие материала, прошу заглянуть на наш канал , а точнее на данный видео-урок. Не забываем подписываться и ставить лайки. Дальнейший код будет заточен только под датчик GY, но адаптировать его под любой другой, мне кажется, не составит большого труда!

Обсуждаем цифровые устройства День добрый!

Вопросы по гироскопу MPU 6050

Технический рынок наполнен тысячами модулями датчиков, которые стоят недорого и используются в проектном конструировании. Перед этим модули связывают с программируемым микроконтроллером. Акселерометр — инструмент, использующийся для расчета разности между настоящим и гравитационным ускорением предмета. Датчик состоит из платы со встроенной микросхемой. Прибор применяют везде. Статья ниже — вспомогательная инструкция по подключению акселерометра к Ардуино. Старт работы начинается с подачи электрического питания в плату.

MPU-6050 – гироскоп – акселерометр

Артикул: GY Код товара: Нет в наличии. Расчёт стоимости доставки по запросу на e-mail.


Arduino MPU6050 Обнаружение движения

Датчики отслеживания движения используются в таких приложениях, как робототехника, распознавание жестов, стабилизация транспортных средств, управление положением в дронах/квадрокоптерах, указательные устройства, игровые контроллеры и устройства для отслеживания фитнеса. Одним из популярных датчиков отслеживания движения является MPU6050. Это шестиосевой МЭМС-датчик движения, включающий в себя МЭМС-акселерометр и МЭМС-гироскоп. Датчик также имеет встроенный датчик температуры, измерение температуры которого можно использовать для калибровки акселерометра и гироскопа. Кроме того, MPU6050 можно подключить к внешнему магнитометру, используя встроенный канал I2C, который расширяет датчик до 9DOF (степень свободы). С внешним магнитометром, подключенным к MPU6050, контроллер или компьютер могут точно отслеживать точное движение.

Пример датчика обнаружения движения MPU6050

Коммутационная плата MPU6050 оснащена регулятором напряжения 3,3 В, который позволяет легко подключаться к компьютерам с питанием 5 В и 3,3 В. Таким образом, мы можем легко связать MPU6050 с Arduino, Raspberry Pi, ESP32 и несколькими другими микроконтроллерами и платформами SBC. В этом проекте мы подключили трекер движения MPU6050 к Arduino и отобразили его показания акселерометра, гироскопа и температуры на OLED-дисплее SSD1306.

Необходимые компоненты

  1. Arduino UNO x1
  2. Датчик MPU6050 x1
  3. SSD1306 OLED-модуль x1
  4. Соединительные провода/перемычки

Требуется программное обеспечение

  1. Arduino IDE

Как работает акселерометр MEMS
Акселерометры используются для определения линейного ускорения. Эти датчики могут обнаруживать линейное ускорение в одном, двух или трех измерениях. Акселерометр имеет контрольную массу, подвешенную на пружинах в системе отсчета. Пробная масса в одномерном акселерометре имеет одну степень свободы. Точно так же пробная масса в двумерном и трехмерном акселерометре имеет 2 степени свободы и 3 степени свободы в системе отсчета соответственно. Пробная масса действует как подвешенный шар, свободно движущийся внутри кубической рамы. При перемещении датчика вдоль заданной оси на подвешенную пробную массу действует сила в противоположном направлении.

Принцип работы акселерометра

Если ускорение, воспринимаемое пробной массой, эквивалентно ускорению свободного падения, т. е. 9,8 м/с, считается, что оно равно 1g. Если трехмерный акселерометр воспринимает силу в 1 г в направлении Z, он воспринимает гравитационное ускорение.

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

Структура акселерометра MEMS

Как работает гироскоп MEMS
Гироскоп используется для определения углового вращения. Он использует явление, называемое эффектом Кориолиса. Сила Кориолиса — это сила инерции, испытываемая объектом, движущимся во вращающейся системе перпендикулярно направлению движения и оси вращения.

Пример эффекта Кориолиса

Гироскоп состоит из двух пробных масс, которые совершают колебательные движения в противоположных направлениях. Когда к ним приложена угловая сила из-за вращения инерциальной системы отсчета, силы Кориолиса действуют на две массы в противоположных направлениях. Это вызывает отклонение масс в противоположных направлениях вдоль оси силы Кориолиса, вызывая изменение емкости между ними.

Принцип работы МЭМС-гироскопа

МЭМС-гироскоп состоит из пробной массы, которая разделена на четыре части. Неподвижная масса подвешивает каждую часть в центре. Массы непрерывно колеблются в горизонтальной плоскости.

Структура МЭМС-гироскопа

Когда гироскоп вращается, пробные массы, испытывающие горизонтальную колебательную силу, испытывают вертикальную силу из-за эффекта Кориолиса. Есть три режима в зависимости от оси вращения.

Когда осью вращения является ось X, пластины M1 и M3 перемещаются вверх и вниз, отклоняясь от горизонтальной плоскости. Это называется режимом вращения.

Режим вращения в МЭМС-гироскопе

Когда осью вращения является ось Y, пластины М2 и М4 перемещаются вверх и вниз, отклоняясь от горизонтальной плоскости. Это называется Pitch Mode.

Режим шага в МЭМС-гироскопе

Когда осью вращения является ось Y, пластины M1 и M3 движутся в противоположном направлении в горизонтальной плоскости, и в то же время пластины M2 и M4 также движутся в противоположном направлении в горизонтальная плоскость. Это называется режимом рыскания.

Режим рыскания в МЭМС-гироскопе

Когда отклонение движущих масс вызывает изменение емкости, определяемое высокоточным датчиком, которое преобразуется в пропорциональный сигнал напряжения.

Датчик отслеживания движения MPU6050
MPU6050 — недорогой датчик отслеживания движения с 6 степенями свободы, встроенным 3-осевым акселерометром и 3-осевым гироскопом. Он также включает датчик температуры, который измеряет рабочую температуру кремниевого кристалла в диапазоне от -40°C до 85°C. Следует отметить, что встроенный датчик температуры в MPU6050 не считывает температуру окружающей среды; он считывает рабочую температуру микросхемы. Измерения температуры используются для калибровки акселерометра и гироскопа. Измерение температуры также можно использовать для обнаружения изменений температуры. MPU6050 имеет следующую схему контактов

Распиновка акселерометра и гироскопа MPU6050

Важность MPU6050 обусловлена ​​встроенным цифровым процессором движения (DMP). DMP датчика выполняет все сложные вычисления, выводя прямые значения ускорения и вращения на любой внешний контроллер/компьютер через интерфейс I2C. Датчик имеет два встроенных 16-разрядных аналого-цифровых преобразователя. Один 16-разрядный АЦП одновременно преобразует значения линейного ускорения по трем осям, определяемые встроенным акселерометром, который можно настроить на четыре программируемых шкалы — +/-2g, +/-4g, +/-8g и +/- 16г. Другой 16-разрядный АЦП одновременно преобразует значения углового ускорения по трем осям вращения (режим крена, режим тангажа и режим рыскания), определяемые встроенным гироскопом. Гироскоп можно настроить на четыре программируемые шкалы +/-250˚/с, +/-500˚/с, +/-1000˚/с и +/-2000˚/с.

MPU6050 обменивается данными с контроллером/компьютером по интерфейсу I2C. Он имеет два адреса I2C — 0x68 и 0x69, чтобы избежать конфликтов с другими устройствами I2C, использующими ту же шину. Адрес I2C MPU6050 можно контролировать с вывода ADO. Если контакт ADO не подключен, модуль имеет адрес I2C по умолчанию 0x68. Если контакт ADO подключен к 3,3 В, модуль имеет адрес I2C 0x69.

К MPU6050 можно подключить внешний магнитометр. Коммутационная плата имеет отдельную шину I2C на контактах XDA и XCL. На коммутационной плате также есть контакт прерывания для запуска аппаратного прерывания при обнаружении движения, ударе или падении.

Взаимодействие MPU6050 с Arduino
Соединить MPU6050 с Arduino очень просто. На коммутационной плате MPU6050 установлен стабилизатор LD3985 3,3 В. Таким образом, мы можем напрямую подключить модуль к любому 5V Arduino. Датчик может питаться от источника питания Arduino, а контакты I2C модуля должны быть подключены к порту I2C Arduino. Порты I2C на Arduino UNO показаны на изображении ниже.

Порты I2C на Arduino UNO

Вывод прерывания MPU6050 может быть подключен к любому GPIO Arduino.

Соединения цепей
Этот проект имеет интерфейс MPU6050 с Arduino UNO и отображает показания температуры, акселерометра и гироскопа на OLED-дисплее SSD1306. Для взаимодействия с MPU6050 контакты VCC и GND MPU6050 подключаются к выходу 5V и контактам заземления Arduino; контакты SDA и SCL модуля подключены к порту I2C на Arduino, а контакт прерывания модуля подключен к контакту D2 Arduino.

SSD1306 взаимодействует с Arduino через физический SPI-порт Arduino. Для взаимодействия с OLED-дисплеем SSD1306 через физический порт SPI подключите контакты D0/SCK и D1/MOSI OLED-дисплея SSD1306 к контактам D13 и D11 Arduino соответственно. Подключите контакты DC, RESET и CS SSD1306 к контактам D9., D10 и D8 Arduino соответственно.

Принципиальная схема сопряжения MPU6050 с Arduino

Библиотеки Arduino для MPU6050
Для работы с MPU6050 доступно несколько библиотек Arduino. Библиотека Adafruit MPU6050 от Adafruit довольно популярна. В этом проекте мы используем библиотеку Arduino-MPU6050, предоставленную jarzebski из Github. Библиотека находится под лицензией GPL 3.0.

Эскиз Arduino


Руководство по программированию
Скетч начинается с импорта библиотек Wire и Arduino-MPU6050 для связи I2C с датчиком MPU6050. Далее импортируются библиотеки для работы с SSD1306 OLED. Постоянный «период» определен для хранения временного интервала для считывания значений со встроенного датчика температуры, акселерометра и гироскопа по одному. Объявлены константы для разрешения экрана и назначения контактов OLED-дисплея. Создаются экземпляры объектов класса Adafruit_SSD1306 и MPU6050. Затем определяются растровое изображение и массив для хранения логотипа сайта.

В функции setup() скорость передачи данных для последовательной связи с Serial Monitor установлена ​​на 9600 бит/с. Датчик MPU6050 тестируется с использованием метода mpu.begin() и калибруется с помощью вызова метода mpu.calibrateGyro(). Масштаб сенсора задается вызовом метода mpu.setThreshold(). Инициализируется OLED-экран, и на нем мигает логотип сайта.

В функции loop() показания встроенного датчика температуры, акселерометра и гироскопа снимаются с задержкой в ​​1 секунду и отображаются на OLED-экране. Температура извлекается путем вызова метода mpu. readTemperature(). Показания гироскопа извлекаются путем вызова методов mpu.readRawGyro() и mpu.readNormalizeGyro(). Нормализованные значения режимов крена, тангажа и рыскания извлекаются путем вызова свойств normGyro.XAxis, normGyro.YAxis и normGyro.ZAxis соответственно. Значения ускорения извлекаются путем вызова методов mpu.readRawAccel() и mpu.readNormalizeAccel(). Нормализованные значения ускорения по осям X, Y и Z извлекаются путем вызова свойств norAccel.XAxis, normAccel.YAxis и normAccel.ZAxis соответственно.

 

Результаты


В рубриках: Arduino, Electronic Projects
С тегами: Arduino, акселерометр гироскопа, Arduino MPU6050, Arduino MPU6050 Датчик движения, проекты, MPU6050 Датчик движения9 MPU06 + гироскоп, гироскоп




Руководство по подключению MPU-9150 — SparkFun Learn

  • Домашний
  • Учебники
  • Руководство по подключению MPU-9150

≡ Страниц

Авторы: . Брент.

Избранное Любимый 0

Введение

MPU-9150 представляет собой девять d egrees o f f redom (9DOF) i nertial m easurement u nit (IMU) в одном корпусе. Он содержит 3-осевой акселерометр, 3-осевой гироскоп, 3-осевой магнитометр и процессор Digital Motion Processor™. (DMP™) механизм аппаратного ускорителя. Диапазон каждого датчика настраивается: шкала акселерометра может быть установлена ​​на ±2g, ±4g, ±6g, ±8g или ±16g, гироскоп поддерживает ±250, ±500 и ±2000 °/с, а магнитометр имеет полный диапазон ±1200 мкТл (±12 Гс).

MPU-9150 поддерживает I 2 C. В таблице данных для SPI есть единственная ссылка, но все остальные данные указывают на обратное. У нас есть только тестирование с использованием I 2 C, и для целей этого руководства мы рассмотрим только то, как использовать это устройство в режиме I 2 C.

Описано в этом руководстве

Этот туториал посвящен всему, что касается MPU-9150. Сначала мы познакомим вас с разделительной доской. Затем мы переключимся на пример кода и покажем вам, как взаимодействовать с платой с помощью Arduino и нашего [SFE_MPU-9150 библиотека Arduino](https://cdn.sparkfun.com/assets/learn_tutorials/3/9/7/MPU-9150_libraries.zip).

Учебное пособие разделено на следующие разделы:

  • Обзор коммутационной платы — На этой странице рассматривается коммутационная плата MPU-9150 — рассматриваются такие темы, как разводка контактов, перемычки и схемы.
  • Сборка аппаратного обеспечения. Как собрать аппаратное обеспечение для запуска некоторого примера кода.
  • Установка библиотеки Arduino — Как установить библиотеку Arduino и используйте простой пример скетча, чтобы убедиться, что ваше соединение работает.
  • Ресурсы и дальнейшее развитие — Ресурсы для изучения и расширения возможностей MPU-9150.

Необходимые материалы

В этом руководстве объясняется, как использовать коммутационную плату MPU-9150 с Arduino. Для продолжения вам потребуются следующие материалы:

MPU-9150 — это устройство на 3,3 В! Напряжение питания выше 6 В может привести к необратимому повреждению микросхемы. InvenSense рекомендует запускать от от 2,375 В до 3,465 В . Пока ваш Arduino имеет выход питания 3,3 В, и вы можете использовать I 2 C, вам не нужно дополнительное смещение уровня.

Рекомендуемая литература

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

  • Подтягивающие резисторы
  • Основы акселерометра
  • Гироскопы
  • Связь между IC (I 2 C)

Обзор аппаратного обеспечения

Распиновка

Всего MPU-9150 Breakout имеет 11 контактов.

Необходимые минимальные соединения выбиты на левой стороне платы. These are the power and I 2 C pins (the communication interface the board defaults to):

Pin Label Pin Function Notes
GND Ground 0V voltage supply
VCC Источник питания Напряжение питания микросхемы. Должно регулироваться между 2,375 В и 3,465 В .
SDA I 2 C: Serial Data I 2 C: Serial data (bi-directional)
SCL Serial Clock I 2 C serial clock (up до 400 кГц)

Остальные контакты имеют дополнительные функции и прерывания:

PIN-метка Функция PIN Примечания
ESD AUXIRIARY I 2 C MASTER SERIAL DICAL ACTARIVE I 2 C.
ESC Вспомогательный I 2 Ведущие последовательные часы C 9150 могут выступать в качестве ведущих или сквозных для дополнительных I 2 C устройств.
COUT Тактовый выход Выводит прямоугольную волну с рабочим циклом 50% (см. карту регистров).
CIN Вход тактового сигнала Дополнительный вход внешнего опорного тактового сигнала, заземленный с помощью перемычки.
Я использую внешний источник синхронизации, срезал перемычку ‘CLK’.
AD0 I 2 C Slave Address LSB Если низкий I 2 C адрес 0x68, иначе 0x69. Подключен к перемычке. (0x68 по умолчанию)
FSYNC Кадровая синхронизация Вход внешней кадровой синхронизации, который фиксируется для захвата прерываний внешней шины.
При использовании этого контакта срежьте перемычку «SYNC».
INT Контакт прерывания Конфигурируемый цифровой выход для подачи сигнала главному процессору о событии.

Блок питания

На контакты VCC и GND вы будете подавать напряжение и ссылку 0 В на ИС. Плата коммутации не регулирует это напряжение, поэтому убедитесь, что оно находится в пределах допустимого диапазона напряжения питания MPU-9.150: от 2,375 В до 3,465 В . Уровни логического напряжения могут быть такими низкими, как 1,8 В ± 5% до VCC.

Контакты связи не выдерживают напряжения 5 В, поэтому их необходимо отрегулировать с точностью до нескольких мВ от VDD.

Связь

SDA, SCL, ESD и ESC используются для интерфейсов I 2 C. Для вспомогательных выводов синхронизации и данных потребуются внешние подтягивающие резисторы. Они должны быть настроены в каждом конкретном случае в зависимости от емкости шины, чтобы получить надлежащее время нарастания.

SDA и SCL имеют встроенные подтягивающие резисторы 10 кОм. Если вы планируете использовать более одного устройства I 2 C на шине, вы можете удалить эти подтяжки. Если линии I 2 C слишком сильно подтянуты несколькими наборами подтягиваний, шина, скорее всего, выйдет из строя и будет работать неправильно.

На следующем изображении слева показана стандартная печатная плата, а справа — со снятыми подтягивающими резисторами. Чтобы удалить их, я рекомендую наплавить достаточное количество припоя на резисторы. Чтобы полностью покрыть все 4 стыка расплавленным припоем, не требуется много времени, и две части сразу соскользнут. Так легко в моем случае, что я не смог сфотографировать избыток припоя до того, как детали оторвались. Удалите лишний припой, протрите небольшим количеством деионизированной воды, и все готово.

Прерывания

В MPU-9150 есть множество прерываний. Хотя подключение к ним не так критично, как контакты связи или питания, их использование поможет вам получить максимальную отдачу от чипа. Вывод INT — это цифровой выход на хост-контроллер. Вывод FSYNC может быть сконфигурирован как вход прерывания, который может передаваться через вывод INT.

Они могут быть запрограммированы на прерывание либо как активный-высокий, либо как активный-низкий. Более подробную информацию об этих конфигурациях можно найти на карте реестра продуктов.

Прыгуны

Чаще всего используется перемычка на адресный контакт (AD0). По умолчанию он подтягивается к земле, выбирая адрес 0x68, но с помощью паяльника его можно изменить, чтобы подтянуть, переключив адрес I 2 C на 0x69.

Выведенный из строя контакт AD0 по умолчанию подключен непосредственно к земле. В качестве альтернативы он подключен прямо к VCC. Перед внешним подключением обязательно удалите припой с обеих сторон 3-контактной перемычки.

Перемычка выбора адреса на передней панели платы. Позволяет выбрать младший бит адреса I 2 C

Назначение этих перемычек состоит в том, чтобы максимально упростить использование платы; используя как можно меньше проводов. Перемычка CLK используется для заземления входа внешнего тактового сигнала, как это рекомендуется в техническом описании, когда внешний тактовый генератор не используется. Убедитесь, что эта перемычка отключена, если вы подключаете внешние часы к CIN-соединению. Перемычка SYNC связывает FSYNC с землей, как рекомендует производитель, когда она не используется. Обязательно срежьте эту перемычку, если используете сквозное соединение FSYNC.

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

Весёлый бизнес

Будьте очень осторожны, доверяя таблице данных. Он полон несоответствий или не хватает разъяснений. Например, контакт 22. Есть единственное упоминание о том, что он работает как тактовый выход (следующее изображение). В нескольких местах указано, что его нельзя использовать, например, в таблице, показанной двумя изображениями ниже.

Только ссылка на CLKOUT в техническом описании

Один из нескольких примеров контакта 22, который не рекомендуется подключать, или часы

Карта регистров гласит: «Этот бит также включает вывод часов», но это единственная ссылка. Даже не указано четко, к какому биту они относятся. Мы смогли протестировать это, и, конечно же, он выводит часы. Может быть, эти часы можно использовать. Возможно, он был разработан только для заводских испытаний.

Включение этого вывода часов было постоянным даже после выключения и включения питания. Будьте осторожны при изменении недокументированных битов в регистрах!

SPI — еще один пример плохой документации. На следующем изображении подразумевается, что строка выбора адреса также является SDO. Контакт питания цифрового ввода-вывода также является линией выбора микросхемы. Большинство последовательных периферийных устройств, с которыми мы знакомы, не питаются от своих выводов выбора микросхемы.

Только ссылка на SPI в таблице данных или карте регистров

И, наконец, последняя цитата, показывающая, насколько прекрасна таблица данных: «Доступ к внутренним регистрам и памяти MPU-9150 можно получить с помощью или I 2 C на частоте 400 кГц». Либо быстрый режим I 2 C, либо что? Как бы часто мы ни говорили вам RTFM, иногда руководство может вводить в заблуждение.

Комплект оборудования

Базовый вариант использования MPU-9150 требует четырех подключений к µController или µProcessor; питание, земля, I 2 C часы и данные. На следующих изображениях показано, как мы использовали SparkFun FTDI Basic Breakout и 3,3 В Arduino Pro Mini для питания и интерфейса с MPU-9.150. Демонстрация требовала использования прерывания (крайняя правая желтая перемычка), подключенного к D2 (INT0).

MPU-9150, подключенный к Arduino Pro Mini для демонстрации MPU6050_DMP6

В любом случае установите связи с прорывом, которые сделают вас счастливыми. Плата на фото выше имеет припаянный к ней разъем под прямым углом. Мы могли бы использовать прямую жатку, проволоку и т. д. Обратите внимание, что различные монтажные ориентации изменят ориентацию осей. Убедитесь, что ваш код соответствует физической ориентации ваших проектов.

For this demo, we made the following connections:

Arduino Pro Mini MPU‑9150 Breakout Notes
VCC VCC +3. 3V
GND GND +0V
SDA SDA Serial Data @ +3,3 В CMOS Logic
SCL98 888 888 888 888 888 888 888 888 888 888 888 888 888 888 888 88 88 888.0244
D2 INT INT0 на Arduino | Выход прерывания «тотемный столб или открытый сток» на MPU-9150

Вся система в нашем тестировании питалась через USB через FTDI basic.

Электрические соединения для демонстрации

Установка библиотеки Arduino

Загрузка и установка библиотеки

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

Загрузите библиотеки Arduino MPU-9150

Чтобы получить помощь по установке библиотеки, ознакомьтесь с нашим руководством по установке библиотеки Arduino. Вам нужно будет переместить/скопировать каталоги I2Cdev и MPU6050 внутри каталога прошивки в каталог библиотек в вашем альбоме для рисования Arduino. Если у вас нет каталога с именем library , создайте его и поместите туда оба каталога.

Пример кода Arduino позволяет вам делать такие вещи, как печать необработанных данных акселерометра, гироскопа и магнитометра. Исходная библиотека пришла с i2cdevlib.com и была основана на очень похожем MPU-6050, в котором использовались только акселерометр и гироскоп. Библиотека устройств MPU-6050 была изменена, чтобы включать необработанные данные магнитометра для MPU-9.150.

Запуск MPU6050_DMP6 Пример

Теперь вы можете запустить примеры скетчей. Открыть файл ⇒ Примеры ⇒ MPU6050 ⇒ Примеры ⇒ MPU6050_DMP6. По умолчанию этот скетч настроен на забавную демонстрацию чайника с использованием обработки. Это немного сложнее, чем объем этого руководства по подключению. Выведем компоненты ускорения без гравитации.

Раскомментируйте строку 102 //#define OUTPUT_READABLE_REALACCEL . Закомментируйте строку 112 #define OUTPUT_TEAPOT . Скомпилируйте и загрузите скетч. Когда загрузка завершится, откройте последовательный монитор и установите скорость передачи данных на 115200 бод. Вы должны увидеть это:

 Инициализация устройств I2C...
Проверка подключений устройств...
Подключение MPU6050 успешно
Отправьте любого персонажа, чтобы начать программирование и демонстрацию DMP:
 

В верхней части последовательного монитора введите любой «обычный» символ (например, буквенно-цифровой) и нажмите «Отправить». Ваша система должна ответить:

 Инициализация DMP...
Включение платформы управления данными...
Включение обнаружения прерывания (внешнее прерывание Arduino 0)...
ДМП готово! Ожидание первого прерывания...
 

Если у вас правильно подключена линия прерывания, вы должны увидеть строки, подобные этой:

 ареальная -8680 1460 -1448
площадь -9721 1460 -1463
...
 

Ресурсы и дальнейшие действия

Надеемся, что этого информационного дампа было достаточно, чтобы вы начали работать с MPU-9150. Если вам нужна дополнительная информация, вот еще несколько ресурсов:

  • Репозиторий продукта MPU-9150 на GitHub — ваш источник с контролем версий для всего, что касается MPU-9150. Здесь вы найдете наши самые современные макеты оборудования и код.
  • MPU-9150 Техническое описание. В этом техническом описании содержится все, от аппаратного обеспечения и схемы выводов микросхемы до отображения регистров гироскопа, акселерометра и магнитометра.
  • Карта регистров MPU-9150 — Этот документ охватывает все регистры в MPU-9150, и его необходимо прочитать, если вы хотите получить всю информацию. Это разъясняет несоответствия в таблице данных.
  • Схема отвода MPU-9150
  • MPU-9150 Отрывные файлы EAGLE

Идем дальше

Теперь, когда у вас есть MPU-9150, в какой проект вы собираетесь включить датчик движения? Нужно немного вдохновения? Посмотрите некоторые из этих руководств!

Вернье Фотозатвор

Вернье-таймер фотозатвора — с использованием комплекта ЖК-дисплея с поддержкой последовательного интерфейса.

Избранное Любимый 2

Комплект датчиков Resource Hub

Обзор каждого компонента комплекта датчиков SparkFun, а также ссылки на учебные пособия и другие ресурсы, которые вам понадобятся для их подключения.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *