Проект 24: 3-осьовий гіроскоп + акселерометр на прикладі GY-521

В цьому експерименті ми познайомимося з акселерометром і гіроскопом і будемо за допомогою Arduino отримувати свідчення з цих датчиків.

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

Модуль GY-521 на мікросхемі MPU6050 містить гіроскоп, акселерометр і температурний сенсор. На платі модуля GY-521 розташована необхідна обв'язка MPU6050, в тому числі підтягує резистори, стабілізатор напруги на 3,3 В з малим падінням напруги з фільтруючими конденсаторами. Обмін з мікро контролером здійснюється по шині I2C.

Гіроскоп являє собою пристрій, що реагує на зміну кутів орієнтації контрольованого тіла. Акселерометр - це пристрій, який вимірює проекцію удаваного прискорення, тобто різниці між істинним прискоренням об'єкта та гравітаційним ускореніем.Схема з'єднань плати GY-521 до Arduino показана на рис. 24.1.


Рис. 24.1. Схема з'єднання GY-521 до Arduino

Код простого скетчу для зчитування значень гіроскопа і акселерометра з датчика MPU6050 показаний в лістингу 24.1.


// підключення бібліотек
#include "I2Cdev.h"
#include "MPU6050.h"
#include "Wire.h"
MPU6050 accelgyro;
int16_t ax, ay, az;
int16_t gx, gy, gz;
void setup ()
{

}
Wire.begin ();
Serial.begin (38400);
// ініціалізація
Serial.println ( "Initializing I2C devices ...");
accelgyro.initialize ();
delay (100);
}
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);
}

Порядок підключення:

  1. Підключаємо плату GY521 до плати Arduino за схемою на рис. 24.1.
  2. Завантажуємо в плату Arduino скетч з лістингу 24.1.
  3. Відкриваємо монітор послідовного порту Arduino IDE і дивимося вивід даних гіроскопа і акселерометра (див. Рис. 24.2).
  4. При поворотах датчика дані змінюються.

Рис. 24.2. Вивід даних гіроскопа і акселерометра в монітор Arduino IDE

Область застосування таких датчиків досить широка. Даний модуль часто застосовують для стабілізації польоту квадрокоптера через спільного використання гіроскопа і акселерометра. Крім цього, модуль можна використовувати для координації різних пристроїв - від просто детектора руху до системи орієнтації різних роботів або управління рухами будь-якими пристроями. Область подібних сенсорних пристроїв досить нова і цікава для вивчення і застосування в аматорській техніці.