Гироскоп GY-521. Датчики. Ардуино

Акселерометр GY-521
Акселерометр и гироскоп GY-521
Акселерометр и гироскоп GY-521

Привет! Сегодня сделаем обзор на гироскоп GY-521 для Ардуино. Он послужит нам в нескольких будущих проектах. Но сначала нужно разобраться с самим модулем и посмотреть, на что он способен.

Для выполнения этого урока нам понадобятся

  • Ардуино UNO
  • Макетная плата
  • Перемычки
  • Модуль GY-521
  • Кабель USB

Гироскоп GY-521

Кроме гироскопа в модуле GY-521 есть акселерометр и датчик температуры. Для питания можно использовать и 3.3 вольта и 5 вольт.

Гироскоп измеряет угол наклона датчика.

Акселерометр измеряющий проекцию кажущегося ускорения. Более подробно об этом написано в википедии.

Контакты платы

  • VCC – питание модуля 3.3 В до 5 В
  • GND – земля
  • SCL – линия синхронизации для протокола I2C
  • SDA – линия передачи данных протокола I2C
  • XDA – линия передачи данных протокола при работе в режиме мастера
  • XCL – линия синхронизации для протокола I2C при работе в режиме мастера
  • AD0 – если вывод лог «0» адрес I2C будет 0x68, если вывод лог «1» адрес I2C будет 0x69
  • INT – прерывание

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

  • напряжение питания: от 3,5 до 6 В;
  • потребляемый ток: 500 мкА;
  • ток в режиме пониженного потребления: 10 мкА при 1,25 Гц, 20 мкА при 5 Гц, 60 мкА при 20 Гц, 110 мкА при 40 Гц;
  • диапазон: ± 2, 4, 8, 16g;
  • разрядность АЦП: 16;
  • интерфейс: I2C (до 400 кГц).

Проект и схема

Мы хотим измерить наклон модуля по двум осям и посмотреть как работает акселерометр.

Сначала, подключим датчик к Ардуино, используем маленькую макетную плату.

Принципиальная схема подключения Гироскопа GY-521 к Ардуино
Принципиальная схема подключения Гироскопа GY-521 к Ардуино

Для подключения модуля нам понадобиться библиотека MPU6050.h Скачать ее можно с помощью менеджера библиотек. После установки библиотеки, в меню примеров можно найти скетч MPU6050_raw для проверки модуля. Он покажет данные с гироскопа и акселерометра.

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

Программа

Подключим все библиотеки и инициализируем порты и библиотеку.

#include "MPU6050.h"
#include "I2Cdev.h"
#include "Wire.h"
MPU6050 accelgyro;
int16_t ax, ay, az;
int16_t gx, gy, gz;

void setup(){
  Wire.begin();
  Serial.begin(9600);
  Serial.println("Initializing I2C devices...");
  accelgyro.initialize();
  delay(500);
}

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

void loop(){
  accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
  Serial.print("a/g:\t");
  Serial.println(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);
}

Загрузим программу в Ардуино, откроем плоттер и посмотрим, как работает модуль. В данном случае мы выводим изменения по оси х.

Наклон гироскопа по оси x
Наклон гироскопа по оси x

При наклоне данные изменяются от -32к до 32к.

Закомментируем другие строки и проверим работу датчика по всем осям гироскопа и Акселерометра.

С помощью плоттера можно построить графики для каждой оси и посмотреть на изменения в зависимости от движений датчика.

Графики работы модуля GY-521Ардуино
Графики работы модуля GY-521Ардуино

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

Полный текст программы

#include "MPU6050.h"
#include "I2Cdev.h"
#include "Wire.h"
MPU6050 accelgyro;
int16_t ax, ay, az;
int16_t gx, gy, gz;

void setup(){
  Wire.begin();
  Serial.begin(9600);
  Serial.println("Initializing I2C devices...");
  accelgyro.initialize();
  delay(500);
}
void loop(){
  accelgyro.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);
}

Заключение

Мы рассмотрели гироскоп GY-521 и подключили его к Ардуино. Измерили наклоны датчика по осям x,y и z. А также измерили данные от акселерометра.

Где купить

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

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