Подключение модуля MPU6050

  • Просмотры Просмотры: 900
  • Последнее обновление Последнее обновление:
  • gy-521-5-jpg.75

    MPU6050 - позволяет определить положение и перемещение прибора в пространстве: углы крена и тангажа ориентируясь по вектору силы тяжести и скорости вращения. При перемещении определяет линейное ускорение и угловую скорость по трем осям, что дает полную картину положения.
    Данные с модуля передаются по интерфейсу I2C.

    Подключение и работа
    Модуль передает данные по интерфейсу I2C и подключается к Arduino через пины SDA и SCL.
    MPU6050 имеет 2 адреса на линии I2C: 0x68 и 0x69, адрес устанавливается путем подтяжки пина AD0 на питание или землю. Если пин никуда не подключен, или подключен к земле, адрес модуля - 0x68, а если он подтянут к питанию - 0x69.

    Подключение
    MPU6050 можно подключить любой из плат Arduino
    Подключается модуль по следующей схеме:
    mpu5060-gy-521-png.76


    Пример работы
    В скетче мы будем считывать значения с акселерометра и гироскопа и выводить их в serial порт.
    Загрузите в Arduino скетч ниже, предварительно установив библиотеки I2CDev и MPU6050.
    C++:

    #include "I2Cdev.h" //Библиотека для работы с I2C устройствами
    #include "MPU6050.h" //Библиотека для работы с MPU6050

    //В строках 5, 6 и 7: в зависимости от версии библиотеки I2Cdev проверяем, нужна ли библиотека Wire
    #if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE
    #include "Wire.h"
    #endif

    MPU6050 accelgyro; //Инициализируем объект MPU5060 с именем accelegyro; По умолчанию, если к пину ADO модуля MPU6050 ничего не подключено оставьте все как есть...
    //MPU6050 accelgyro(0x69); //Если же пин AD0 подтянут к 5 или 3.3 вольтам раскомментируйте эту строку, и закомментируйте предыдущую

    int16_t ax, ay, az; //Переменная для хранения значений полученных с акселерометра
    int16_t gx, gy, gz; //Переменная для хранения значений полученных с гироскопа

    void setup() {
    //Те же настройки, что и в строках 5, 6 и 7...
    #if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE
    Wire.begin();
    #elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE
    Fastwire::setup(400, true);
    #endif

    Serial.begin(112500); //Инициализируем Serial со скоростью 112500 бод
    Serial.println("Initializing I2C devices..."); //Выводим сообщение о начале инициализации MPU5060
    accelgyro.initialize(); //Инициализируем MPU6050
    Serial.println("Testing device connections..."); //Выводим сообщение о проверке, подключен ли модуль MP6050 к Arduino
    Serial.println(accelgyro.testConnection() ? "MPU6050 connection successful" : "MPU6050 connection failed"); //Выводим сообщение с результатом проверки
    }

    void loop() {
    accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz); //Получаем данные с акселерометра и гироскопа и заносим их в ранее созданные переменные
    //accelgyro.getAcceleration(&ax, &ay, &az); //Вариант получения данных только с акселерометра
    //accelgyro.getRotation(&gx, &gy, &gz); //Вариант получения данных только с гироскопа

    Serial.print("a/g:\t");
    Serial.print(ax); Serial.print("\t"); //Выводим значение полученное с оси x акселерометра и делаем табуляцию
    Serial.print(ay); Serial.print("\t"); //Выводим значение полученное с оси y акселерометра и делаем табуляцию
    Serial.print(az); Serial.print("\t"); //Выводим значение полученное с оси z акселерометра и делаем табуляцию
    Serial.print(gx); Serial.print("\t"); //Выводим значение полученное с оси x гироскопа и делаем табуляцию
    Serial.print(gy); Serial.print("\t"); //Выводим значение полученное с оси y гироскопа и делаем табуляцию
    Serial.println(gz); //Выводим значение полученное с оси z гироскопа и переходим на новую строку
    }
    Технические характеристики и описание
    Назначение пинов

    VCC

    Питание

    GND

    Питание(общий)

    SCL

    I2C SCL (вход)

    SDA

    I2C SDA (вход)

    XDA

    I2C SDA (выход)

    XCL

    I2C SCL (выход)

    ADO

    Установка адреса

    INT

    Прерывание


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

    Чип

     

    Напряжение питания

    MPU6050

    Интерфейс

    3-5 вольт

    Вывод данных

    I2C

    Диапазон гироскопа

    16-разрядный

    Диапазон ускорений

    ± 250 500 1000 2000



    Ссылки
    Библиотека I2Cdev.
    Библиотека MPU6050.


    Купить MPU6050
    Aliexpress: MPU6050
  • Загрузка…
Вверх