Универсальный внешний накопитель для всех iOS-устройств, совместим с PC/Mac, Android
Header Banner
8 800 100 5771 | +7 495 540 4266
c 9:00 до 24:00 пн-пт | c 10:00 до 18:00 сб
0 Comments

Лабораторная работа 4: Управление гироскопом I2C

Лабораторная работа 4: Управление гироскопом I2C

Цели

В этой лабораторной работе вы будете использовать модуль акселерометра-гироскопа GY-521 для измерения ускорения по трем осям и вращательного движения по трем осям. Вы также поэкспериментируете с управлением вращающимся кубом с помощью движений модуля.

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

  • Схема GY-521
  • MPU-6050 техпаспорт
  • MPU-6050 Ссылка на регистр (pdf)
  • MPU-6050 Ссылка на регистр (онлайн)
  • http://playground.arduino.cc/Main/MPU-6050
  • Информация о графической библиотеке
  • веб-сайт i2cdevlib
  • Пример кода отображения гистограммы
  • (не для Arduino) проще написать свой собственный…
  • Использование Quaternion для выполнения трехмерных поворотов
  • Вращение объектов с помощью кватернионов
  • Себастьян Мэджвик Алгоритм IMU
  • Эффективная вычислительная скользящая средняя для микроконтроллеров
  • Вращения по рысканию, тангажу и крену (спасибо Виктору и Люку)

Часть 1: Начало

A. Найдите в комплекте синюю плату GY-521 и прилагаемую к ней прямоугольную клеммную колодку:

Припаяйте короткие контакты прямоугольной клеммной колодки к GY-521, как показано на рисунке:

Подсоедините четыре предварительно подготовленных провода из комплекта к модулю и к Teensy, как показано здесь:

Настройка оборудования:
MPU6050 Breakout ——— Arduino
3,3 В ————————- 3,3 В
ПДД —————— ——- A4
SCL ————————- A5
GND ———— ———— Земля

SDA и SCL должны иметь внешние подтягивающие резисторы на 10 кОм (до 3,3 В).

B. Для тестирования загрузите и запустите скетч MPU6050BasicExample.ino. Обязательно немедленно откройте окно отладки.
Вы должны увидеть такие данные:

 MPU6050 в сети...
 Самотестирование по оси X: корректировка ускорения в пределах: 0,6% от заводского значения
 Самотестирование по оси Y: корректировка ускорения в пределах: 0,6% от заводского значения
 Самотестирование по оси Z: корректировка ускорения в пределах: 0,7% от заводского значения
 Самотестирование по оси x: регулировка вращения в пределах: 0,2% от заводского значения
 Самотестирование по оси Y: регулировка вращения в пределах: -0,2% от заводского значения
 Самотестирование по оси Z: регулировка вращения в пределах: 0,3% от заводского значения 
 MPU6050 инициализирован для режима активных данных. ... 
 X-ускорение: -3,30 мг Y-ускорение: 1,71 мг Z-ускорение: 1005,68 мг
 Скорость X-гироскопа: -1,9 градуса/сек Скорость Y-гироскопа: 0,3 градуса/сек Скорость Z-гироскопа: -0,3 градуса/сек
 Температура 13,31 градуса С 
 X-ускорение: 14,40 мг Y-ускорение: 0,98 мг Z-ускорение: 1003,36 мг
 Скорость X-гироскопа: 0,4 градуса/сек Скорость Y-гироскопа: 0,1 градуса/сек Скорость Z-гироскопа: 0,0 градуса/сек
 Температура 23,27 градуса С
 


Обратите внимание, что версия данных печатается на ЖК-дисплее.

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

C. Сделайте версию скетча под названием MPU6050Graph2.ino для отображения гистограмм 6 переменных, используйте длинную ось дисплея и выберите интересные цвета для фона, ускорения и гироскопической скорости.

Закомментируйте отладочную печать, чтобы ваш скетч работал с максимальной скоростью.

Покажите свой работающий скетч ТА.

Вопрос 1: Сколько адресных регистров в MPU-6050?

(см. техническое описание, номер регистра и код примера)

Вопрос 2: Каков формат данных сообщений I2C, записываемых в MPU-6050?

Часть 2. Сглаживание данных и управление вращающимся кубом


Начните с копии вашего эскиза и назовите ее MPU6050Graph3.ino . Данные меняются, когда вы перемещаете свой модуль. Чтобы сгладить данные, вы должны вставить скользящее среднее значение для каждой из 6 переменных. Поэкспериментируйте с длиной скользящей средней, которая лучше всего подходит для обеспечения плавности и контроля. Для ускорения и скорости гироскопа могут потребоваться скользящие средние разной длины, чтобы оптимизировать плавность и отзывчивость.

Теперь вы должны добавить код вращающегося куба с прошлой недели в новый скетч с именем MPU6050Cube.ino . Подумайте, как вы можете использовать данные для управления движением и/или положением/размером куба. Найдите разумное решение и укажите, как вы использовали данные в комментариях к эскизу. Имейте в виду, что данные гироскопа — это скорость вращения, а не абсолютный курс.

Покажите свой работающий скетч ТА.

Вопрос 3. Какие факторы влияют на плавность эскиза вращающегося куба при использовании необработанных данных с MPU-6050? Помогает ли усреднение данных?

Часть 3: Кватернионы

Чтобы начать эту часть лабораторной работы, загрузите и запустите скетч MPU6050IMU.ino. Обязательно немедленно откройте окно отладки.
В этом коде используется алгоритм IMU Себастьяна Мэджвика (документ)
http://www.x-io.co.uk/open-source-imu-and-ahrs-algorithms/ (сайт может не работать, пропускная способность превышена)
, который объединяет ускорение и скорость вращения для получения оценки относительной ориентации устройства на основе кватернионов, которую можно преобразовать в рыскание, тангаж и крен:

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

Теперь сделайте скетч с именем MPU6050IMUcube.ino и управляйте наклоном, рысканием и креном вашего куба. Распечатайте переменные тангажа, рысканья и крена в нижней части экрана.

Вопрос 4. Какова производительность подхода на основе Quaternion в части 3 по сравнению с использованием необработанных данных в части 2? Объясните свою методику измерения.


Лаборатория 4 Результаты

  • Продемонстрируйте свои рабочие наброски ассистенту в течение первых 30 минут лабораторной работы на следующей неделе.
  • Ваши зарисовки и ответы должны иметь имена обоих партнеров в комментариях в начале.
  • Сдайте ваш MPU6050IMUgraph.ino и MPU6050IMUcube.ino и ответы на четыре вопроса .
  • Все результаты должны быть загружены в ваш Catalyst Dropbox до или в течение первых 30 минут лабораторной работы на следующей неделе.

Модуль акселерометра GY-521 MPU6050 6DOF

GY-521 Модуль акселерометра MPU6050 6DOF

9,90 ринггита

Этот модуль представляет собой 3-осевой акселерометр и 3-осевой датчик гироскопа, которые вы можете использовать с Arduino для полного восприятия движения и жестов движения.

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

4 в наличии

Количество модулей акселерометра

GY-521 MPU6050 6DOF

Добавить в список желаний

Добавить в список желаний

Артикул: MDU-SEN-GY-521 Категория: Датчики Теги: акселерометр, gy-521, гироскоп, mpu6050

  • Описание
  • Дополнительная информация
  • Отзывы (0)

Описание

Этот модуль оснащен чипом INVENSENSE MPU-6050, который представляет собой 3-осевой акселерометр и 3-осевой датчик гироскопа, которые вы можете использовать с Arduino, чтобы полностью ощущать движение и жесты движения.

Модуль GY-521 представляет собой коммутационную плату для MPU-6050 MEMS (микроэлектромеханических систем), оснащенную 3-осевым гироскопом, 3-осевым акселерометром, цифровым процессором движения (DMP) и датчиком температуры. Цифровой процессор движения можно использовать для обработки сложных алгоритмов прямо на плате.

Чтобы узнать, как использовать этот модуль с Arduino, перейдите по ссылкам ниже.0073

 

Особенности

  • I2C Цифровой вывод 6- или 9-осевых данных MotionFusion в формате матрицы вращения, кватерниона, угла Эйлера или необработанных данных
  • Рабочее напряжение: 3,3–5,0 В
  • 3-осевой датчик угловой скорости (гироскоп) с чувствительностью до 131 LSB/dps и диапазоном полной шкалы ?250, ?500, ?1000 и ?2000 dps
  • 3-осевой акселерометр с программируемым диапазоном полной шкалы ?2g, ?4g, ?8g и ?16g
  • Цифровая обработка движения? (DMP?) движок разгружает комплекс MotionFusion, сенсорную синхронизацию и обнаружение жестов
  • Встроенные алгоритмы смещения во время выполнения и калибровки компаса. Вмешательство пользователя не требуется
  • Датчик температуры с цифровым выходом

 

Электропроводка

Этикетка Значение Соединение
ВКЦ Источник питания Подключение к 3–5 В системы
Земля Заземление Подключение к GND системы
СКЛ
Последовательные часы I2C Подключиться к контакту SCL
ПДД Последовательные данные I2C Подключается к контакту SDA
XDA Дополнительные последовательные данные I2C (опция) для подключения к внешнему датчику
XCL Вспомогательные часы последовательного интерфейса I2C (опция) для подключения к внешнему датчику
АД0 Адрес I2C Если на этом выводе низкий уровень, I2C-адрес платы будет 0x68.

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

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