Подключение гироскопа MPU6050 к Arduino

Гироскопический датчик MPU6050 имеет достаточно много функций в своем составе. Он включает в себя микро электромеханический акселерометр (измеритель ускорения), микро электромеханический гироскоп и датчик температуры. Датчик обеспечивает высокую точность преобразования аналоговых значений в цифровые поскольку имеет на каждом канале 16-битный АЦП (аналого-цифровой преобразователь). Этот модуль способен одновременно обрабатывать информацию сразу по трем осям (каналам): x, y и z. Он имеет интерфейс I2C для взаимодействия с другими устройствами. Это один из немногих компактных модулей на рынке, который имеет в своем составе и гироскоп, и акселерометр. Этот модуль находит широкое применение в таких устройствах как дроны, роботы, датчики движения. Также этот модуль иногда называют гироскопом или трехосевым акселерометром.

Внешний вид проекта подключения гироскопа MPU6050 к Arduino

В этой статье мы рассмотрим подключение датчика (гироскопа) MPU6050 к плате Arduino и будем отображать поступающие от него значения на ЖК дисплее 16×2.

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

  1. Плата Arduino Uno.
  2. Гироскопический датчик (гироскоп) MPU-6050.
  3. ЖК дисплей 16х2.
  4. Потенциометр 10 кОм.
  5. Соединительные провода.
  6. Макетная плата.
  7. USB кабель.
  8. Источник питания

Гироскопический датчик (гироскоп) MPU-6050

MPU-6050 представляет собой 8-пиновый 6-осевой гироскоп и акселерометр на едином чипе. По умолчанию данный модуль работает по интерфейсу I2C, но можно задействовать и интерфейс SPI. В нашем проекте мы будем использовать интерфейс (режим) I2C и в этом режиме нам понадобятся контакты SDA и SCL модуля.

Внешний вид гироскопа MPU-6050

Распиновка MPU-6050:
Vcc – контакт для подачи питающего напряжения постоянного тока;
GND – земля модуля;
SDA – это контакт используется для передачи данных между модулем mpu6050 и микроконтроллером;
SCL – вход синхронизации;
XDA – линия передачи данных (опциональная) по протоколу I2C для конфигурирования и считывания данных с внешних датчиков (не используется в нашем проекте);
XCL – вход синхронизации протокола I2C для конфигурирования и считывания данных с внешних датчиков (не используется в нашем проекте);
ADO – I2C Slave Address LSB (не используется в нашем проекте);
INT – контакт прерывания для индикации готовности данных.

Общие принципы работы проекта

В этом проекте мы будем показывать на экране ЖК дисплея данные температуры, гироскопа и акселерометра, считываемые с датчика MPU6050. С этого датчика можно считывать «сырые» (row values) и нормированные значения, но «сырые» значения нестабильны, поэтому на экране ЖК дисплея мы будем показывать нормированные значения.

Сначала на ЖК дисплее мы будем показывать температуру, затем через 10 секунд будем показывать данные гироскопа и еще через 10 секунд данные акселерометра.

Показываем значение температуры, измеренное с помощью MPU6050

Показываем значения гироскопа, измеренные с помощью MPU6050

Работа схемы

Схема подключения гироскопа MPU6050 к плате Arduino представлена на следующем рисунке.

Схема подключения гироскопа MPU6050 к ArduinoНаш проект мы запитали по кабелю USB от компьютера. Потенциометр 10 кОм используется для регулировки яркости ЖК дисплея. У датчика MPU6050 мы задействовали 5 контактов:

  • контакт питания – к контакту 3.3v платы Arduino;
  • землю – к земле платы Arduino;
  • контакты SCL и SDA датчика MPU6050 – к контактам A4 и A5 платы Arduino;
  • контакт прерывания (INT) MPU6050 – к контакту прерывания 0 (D2) платы Arduino.

Контакты RS, RW и EN ЖК дисплея непосредственно подключены к контактам 8, gnd и 9 платы Arduino. Контакты данных ЖК дисплея подключены к контактам 10, 11, 12 и 13 платы Arduino.

Объяснение работы программы для Arduino

В нашем проекте для взаимодействия с гироскопом MPU6050 мы использовали специальную библиотеку (MPU6050 library) для работы с ним. Скачайте ее по приведенной ссылке с сервиса GitHub и установите ее в вашу Arduino IDE.

Перед загрузкой нашей программы (приведенной в конце статьи) в плату Arduino вы можете протестировать работу примеров, которые идут вместе со скачанной библиотекой. Также в программе мы должны подключить библиотеку для работы с ЖК дисплеем и сообщить плате Arduino, к каким ее контактам подключен ЖК дисплей.

В функции setup мы инициализируем подключенные устройства и показываем приветственное сообщение на экране ЖК дисплея.

В функции loop мы будем последовательно вызывать три функции каждые 10 секунд для отображения на экране ЖК дисплее данных температуры, гироскопа и акселерометра. Эти три функции, соответственно, называются tempShow, gyroShow и accelShow.

Гироскоп и акселерометр датчика MPU6050 вместе используются для определения местоположения и ориентации какого либо устройства. Гироскоп использует силу тяжести для определения местоположения по осям x, y и z, а акселерометр анализирует изменения направления движения объекта. На нашем сайте мы уже рассматривали другие проекты с применением акселерометра, вы их можете посмотреть по этой ссылке.

Далее приведен полный код программы.

Видео, демонстрирующее работу схемы

(Проголосуй первым!)
Загрузка...
176 просмотров

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

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