Подключение гироскопа GY-521 MPU-6050 к Arduio: различия между версиями

Материал из me-robotics wiki
 
Строка 24: Строка 24:
  
 
==== Код-лист для считывания значений гироскопа и акселерометра с датчика MPU6050. ====
 
==== Код-лист для считывания значений гироскопа и акселерометра с датчика MPU6050. ====
[[Файл:Код-лист .png]]
+
<syntaxhighlight lang="c">
 +
#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(9600);
 +
  //инициализация
 +
  Serial.println("Initializing I2C devices...");
 +
  accelgyro.initialize();
 +
  delay(100);
 +
}
  
[[Файл:Код-лист2.png]]
+
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.print(gz);
 +
}
 +
</syntaxhighlight>

Текущая версия на 02:20, 29 мая 2021

GY-521 – модуль с гироскопом, акселерометром и термометром на базе микросхемы MPU-6050. Данный датчик подойдёт для тех проектов, в которых вам необходимо измерить ориентацию или движения прибора в пространстве, без точных данных о его местоположении.

Модуль GY521:

Характеристики модуля GY-521 (MPU6050)

  • Питание: 3,5 – 6 В;
  • Ток потребления: 500 мкА;
  • Акселерометр диапазон измерений: ± 2 ± 4 ± 8 ± 16g,
  • Гироскоп диапазон измерений: ± 250 500 1000 2000 ° / s,
  • Интерфейс: I2C.

Подключение к плате Arduino

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

  • Подключаем плату GY521 к плате Arduino по схеме
  • Загружаем в плату Arduino код-лист представленный ниже
  • Открываем монитор последовательного порта Arduino IDE и смотрим вывод данных гироскопа и акселерометра
  • При поворотах датчика данные изменяются.

Код-лист для считывания значений гироскопа и акселерометра с датчика MPU6050.

#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(9600);
  //инициализация
  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.print(gz);
}