Обзор модуля GY-521 (MPU-6050)
Наверное задумывались, как телефон определяет вверх и низ, а так же наклоны. Все это стало возможно с появлением устройств акселерометр и гироскопу. Таким образом, телефон автоматически определяет, когда нужно переключить расположение экрана с портретного на альбомное. В статье расскажу о модуле GY-521 на чипе MPU-6050, который содержит в себе MEMS гироскоп и MEMS акселерометр и датчик температуры.
Технические параметры.
► Основная микросхема: MPU-6050
► Напряжение питания: 3.3 и 5 В
► Режимы для акселерометра: ±2g, ±4g, ±6g, ±8g, ±16g;
► Режимы для гироскопа: ±250°, ±500°, ±1000°, ±2000°;
► Ширина шины IIC: 16 бит;
Общие сведения.
Основная микросхема модуль GY-521 чип MPU-6050 , который содержит в себе акселерометр и гироскоп, а так же датчик температуры. Обработка данных осуществляется с помощью 16-битное АЦП (Аналого-цифровой преобразователь) на каждый канал, поэтому он обрабатывает значение x, y и z одновременно. Встроенный датчик температуры предназначен для измерения температуры и имеет диапазон измерений от -40 ° С до + 85 ° С.
Для взаимодействия с Arduino используется шина I2C и датчик MPU-6050 всегда выступает в качестве подчиненного устройства. Но кроме обычной шины I2C, есть собственный контроллер I2C, в котором MPU-6050 ведомый, выводы SDA и XDA и с помощью это шины можно управлять например магнитометром и передавать данные на Arduino.
Гироскоп – инструмент, который позволяет измерить реакцию тела на перемещение углов и вообще ориентации. Акселерометр же служит измерителем проекции ускорения, которое только кажется.
Датчика MPU-6050 работает от напряжение ~2.4 — 3.5 В и чтобы стабилизировать питание, на модуле GY-521 добавили стабилизатор напряжения на 3.3 В с малым падением напряжении, поэтому модуль можно подключить к напряжению 5 В и 3.3 В.
На плате установлен один ряд разъема, шагом 2,54 мм, назначение каждого можно посмотреть ниже.
Назначение выводов:
► VCC – «+» питание модуля 3.3 В до 5 В
► GND – «-» питание модуля
► SCL – линия синхронизации для протокола I2C
► SDA – линия передачи данных протокола I2C
► XDA – линия передачи данных протокола при работе в режиме мастера
► XCL – линия синхронизации для протокола I2C при работе в режиме мастера
► AD0 – если вывод лог «0» адрес I2C будет 0x68, если вывод лог «1» адрес I2C будет 0x69
► INT – прерывание
Подключение GY-521 к Arduino
Необходимые детали:
► Arduino UNO R3 x 1 шт.
► Провод DuPont, 2,54 мм, 20 см x 1 шт.
► Кабель USB 2.0 A-B x 1 шт.
► 3-осевой гироскоп акселерометр GY-521 x 1 шт.
Подключение:
В примере будем использовать только первые четыре контакта VCC, GND, SDA и SCL. Сначала подключаем VCC и GND модуля GY-521 к 5V и GND. Далее нужно установить соединение I2C между модулем GY-521 и Arduino, для этого подключите вывод SCL модуля к выводу А4 Arduino и вывод модуля SCL к выводу A5 Arduino. Для удобства приведу схему подключение.
Программа:
Чтобы протестировать модуль GY-521 сначала необходимо установить библиотеку «MPU6050» , скачать ее можно в конце статьи. Если все сделали правильно, при открытии Arduino IDE вы можете увидеть «MPU6050» в «Файл» -> «Примеры».
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
#include "I2Cdev.h" // Подключение библиотеки I2Cdev #include "MPU6050.h" // Подключение библиотеки MPU6050 #include "Wire.h" // Подключение библиотеки WireCdev MPU6050 CY531; // Создаем объект, символизирующий модуль датчика int16_t ax, ay, az; // Переменные для хранения значений акселерометра int16_t gx, gy, gz; // Переменные для хранения значений гироскоп void setup() { Wire.begin(); // Инициализация Wire Serial.begin(38400); // Инициализация последовательного порта Serial.println("Initializing I2C devices..."); // Печать текста CY531.initialize(); // Инициализация MPU delay(100); // Пауза } void loop() { CY531.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); // Чтение значений гироскопа и акселерометра // вывод значений в монитор Serial.print("a/g:\t"); Serial.print(ax); Serial.print("\t"); Serial.print(ay); Serial.print("\t"); Serial.print(az); Serial.print("\t"); Serial.print(gx); Serial.print("\t"); Serial.print(gy); Serial.print("\t"); Serial.println(gz); delay(500); } |
Если все правильно сделали и открыв мониторинг порта, можно увидеть данные
Ссылки
Библиотека MPU-6050
Купить на Aliexpress
Контроллер Arduino UNO R3 на CH340G
Контроллер Arduino UNO R3 на Atmega16U2
Провода DuPont, 2,54 мм, 20 см
3-осевой гироскоп акселерометр GY-521
Купить в Самаре и области
Контроллер Arduino UNO R3
Провода DuPont, 2,54 мм, 20 см
3-осевой гироскоп акселерометр GY-521