Arduino GY-6500
тел. +7(499)347-04-82
Описание Arduino GY-6500
Отличный выбор! GY-6500 — это популярный и недорогой модуль на базе гироскопа и акселерометра MPU-6500 от TDK (ранее InvenSense). Вот подробное описание, характеристики и совместимость.
Краткое описание модуля GY-6500
GY-6500 — это компактная плата-датчик (breakout board), которая содержит микросхему MPU-6500 и все необходимые обвязочные компоненты для удобного подключения к микроконтроллерам, таким как Arduino.
Основная функция: Одновременное измерение угловых скоростей (гироскоп) и линейных ускорений (акселерометр) по трём взаимно перпендикулярным осям (X, Y, Z). Это ключевой компонент для проектов, связанных с ориентацией в пространстве: квадрокоптеры, стабилизаторы, навигационные системы, шагомеры, управление жестами.
Ключевые особенности модуля:
- Всё в одном: 3-осевой гироскоп + 3-осевой акселерометр.
- Цифровой выход: Общение по стандартным интерфейсам I2C (основной) и SPI (для высокой скорости).
- Встроенный преобразователь уровней: Позволяет работать как с логикой 3.3В, так и 5В, что делает модуль полностью безопасным для Arduino (5В).
- Маленькие размеры: Обычно около 20.5 x 15.2 мм.
- Наличие пинов для прерываний (INT) и вспомогательного I2C (AUX).
- Низкое энергопотребление.
Технические характеристики
Характеристики приведены для чипа MPU-6500, лежащего в основе модуля.
Акселерометр:
- Количество осей: 3 (X, Y, Z)
- Диапазоны измерений: Программно выбираемые: ±2g, ±4g, ±8g, ±16g
- Разрешение: 16-битный АЦП
- Погрешность нуля: ±60 мг (тип.)
- Собственный шум: 400 µg/√Hz (тип.)
Гироскоп:
- Количество осей: 3 (X, Y, Z)
- Диапазоны измерений: Программно выбираемые: ±250, ±500, ±1000, ±2000 °/сек
- Разрешение: 16-битный АЦП
- Погрешность нуля: ±20 °/сек (тип.)
Общие параметры:
- Напряжение питания: 3.3В - 5В (благодаря встроенному стабилизатору/преобразователю на модуле)
- Интерфейсы связи:
- I2C (основной): Адрес по умолчанию 0x68 (может быть изменён на 0x69 перепайкой перемычки на модуле). Скорость до 400 кГц.
- SPI: Скорость до 20 МГц (для высокоскоростных приложений).
- Тактовая частота: Встроенный генератор 24 МГц или внешний опорный сигнал 32.768 кГц.
- Встроенная память: FIFO-буфер (буфер "очередь") объёмом 1024 байта для хранения данных без участия процессора.
- Температурный датчик: Встроенный, с разрешением 0.1°C.
- Цифровой выход движения (DMP): Уникальная особенность! Внутри чипа есть отдельный сопроцессор, который может выполнять сложные вычисления (фильтры, определение жестов, ориентации), разгружая основной микроконтроллер.
- Потребляемый ток: ~4.5 мА в режиме измерения гиро+аксель.
Парт-номера и совместимые модели
1. Основная микросхема на модуле:
- MPU-6500 — это главный парт-номер. Иногда на модуле может быть указан MPU-6500.
2. Прямые аналоги и совместимые модули:
Эти модули функционально идентичны или очень близки к GY-6500 и используют те же библиотеки:
- GY-521 (на базе MPU-6050) — практически полный аналог по распиновке и работе. MPU-6050 не имеет SPI, только I2C, но для большинства проектов с Arduino этого достаточно. Библиотеки и код взаимозаменяемы в 99% случаев.
- MPU-9250 / GY-9250 — более продвинутая версия, которая дополнительно включает в себя 3-осевой магнитометр (компас). Программно совместим по части гироскопа и акселерометра.
- MPU-6050 Breakout Board — любая плата с чипом MPU-6050.
3. Семейство совместимых датчиков InvenSense/TDK:
Чипы из этого семейства имеют схожую архитектуру и регистры, что позволяет использовать адаптированные версии библиотек:
- MPU-6000 (SPI/I2C, аналог 6050)
- MPU-6050 (только I2C)
- MPU-9150 (6050 + магнитометр в одном корпусе)
- MPU-9250/9255 (6500 + магнитометр)
- ICM-20600, ICM-20948 (более новые модели)
Подключение к Arduino (по I2C)
Самый распространённый способ. Подключение идентично модулю GY-521.
Распиновка модуля GY-6500 (типовая):
- VCC -> 5V или 3.3V на Arduino
- GND -> GND на Arduino
- SCL -> A5 (или SCL-пин на Arduino Uno/Nano)
- SDA -> A4 (или SDA-пин на Arduino Uno/Nano)
- INT -> Любой цифровой пин (опционально, для прерываний)
- ADO -> Перемычка для смены адреса I2C (0x68/0x69)
Необходимые библиотеки для работы с Arduino
Для MPU-6500 можно использовать библиотеки, написанные для MPU-6050, так как они регистрово-совместимы.
- Классическая и самая популярная:
MPU6050_tockn(или простоMPU6050от Jeff Rowberg). Удобна, много примеров.- Установка: через Менеджер библиотек Arduino IDE (искать "MPU6050").
- Универсальная и мощная:
Adafruit MPU6050от Adafruit. Хорошо документирована, работает с MPU-6500.- Установка: Через Менеджер библиотек. Нужно также установить зависимые библиотеки
Adafruit BusIOиAdafruit Unified Sensor.
- Установка: Через Менеджер библиотек. Нужно также установить зависимые библиотеки
- Для работы с DMP (Digital Motion Processor): Библиотека
i2cdevlibот Jeff Rowberg. Позволяет использовать всю мощь встроенного сопроцессора для расчёта углов (Yaw, Pitch, Roll) прямо на датчике.
Пример простейшего кода (используя библиотеку MPU6050_tockn):
#include <MPU6050_tockn.h>
#include <Wire.h>
MPU6050 mpu6050(Wire);
void setup() {
Serial.begin(9600);
Wire.begin();
mpu6050.begin();
mpu6050.calcGyroOffsets(true); // Калибровка гироскопа (держите датчик неподвижно!)
}
void loop() {
mpu6050.update();
Serial.print("angleX : ");
Serial.print(mpu6050.getAngleX());
Serial.print("\tangleY : ");
Serial.print(mpu6050.getAngleY());
Serial.print("\tangleZ : ");
Serial.println(mpu6050.getAngleZ());
delay(100);
}
Итог: GY-6500 — это отличный, современный и доступный датчик движения для Arduino. Его главные преимущества — наличие интерфейса SPI "на будущее" и полная совместимость с огромной кодобазой и библиотеками от более старого MPU-6050 (GY-521), что делает начало работы максимально простым.