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


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

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

В данной статье мы рассмотрим подключение гироскопа и акселерометра MPU6050 к модулю ESP32 и будем выводить считываемые с него значения на веб-сервер. Ранее на нашем сайте мы рассматривали подключение гироскопа MPU6050 к платам Arduino и Raspberry Pi. Также у нас на сайте вы можете посмотреть все проекты с использованием модуля MPU6050.

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

  1. ESP32 NodeMCU (купить на AliExpress).
  2. Модуль акселерометра и гироскопа MPU6050 (купить на AliExpress).
  3. Макетная плата.
  4. Соединительные провода.

Гироскопический датчик (гироскоп) 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 к модулю ESP32 представлена на следующем рисунке.

Схема подключения гироскопа MPU6050 к модулю ESP32Модуль MPU6050 взаимодействует с ESP32 по интерфейсу I2C, поэтому нам необходимо всего два провода для его подключения. Контакты SCL и SDA модуля MPU6050 мы подключим к контактам D22 и D21 модуля ESP32, а контакты VCC и GND модуля MPU6050 подсоединим к контактам 3.3V и GND модуля ESP32.

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

Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.

Первым делом в программе мы подключим используемые библиотеки. Библиотека Wire.h позволяет взаимодействовать с I2C/TWI устройствами, а библиотека WiFi.h позволяет модулю ESP32 подключаться к сетям Wi-Fi.

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

Затем укажем данные для доступа к сети Wi-Fi – имя сети и пароль.

Внутри функции void setup() мы инициализируем последовательную связь со скоростью 115200 бод, библиотеку wire, веб-сервер и передачу данных через регистр управления мощностью.

Внутри функции void loop() мы будем вызывать функцию mpu_read для считывания данных акселерометра и гироскопа. Далее мы будем передавать эти данные на веб-страницу с помощью функции client.println().

В следующих строках кода мы будем проверять передал ли клиент HTTP запрос или нет. Если модуль ESP32 получил какой-нибудь клиентский запрос, то мы будем сохранять его в символьной переменной и выводить в окно монитора последовательной связи.

Далее запрограммируем дизайн нашей веб-страницы с помощью html кодов и передадим каждую строку с этими кодами на веб-страницу с помощью функции client.println(). Тэг <style> используется для изменения цвета текста и фона. Вы можете изменить дизайн данной веб-страницы по своему желанию.

Внутри функции mpu_read мы будем считывать значения всех 6 регистров для осей X, Y и Z акселерометра и гироскопа.

Тестирование работы проекта

Подключите модуль ESP32 к компьютеру/ноутбуку и загрузите в него код программы. Не забудьте в Arduino IDE выбрать правильный тип платы и COM порт, к которому подключен модуль.

Убедитесь в том, что ваш компьютер/ноутбук и модуль ESP32 подключены к одной и той же сети Wi-Fi. После загрузки кода программы в модуль откройте окно монитора последовательной связи – измените в нем скорость на 115200. В окне монитора последовательной связи вы увидите IP адрес модуля ESP32 и данные гироскопа и акселерометра. Скопируйте этот IP адрес и вставьте его в адресную строку браузера. После этого вы увидите веб-страницу, на которой будут отображаться данные, считываемые с акселерометра и гироскопа MPU6050, как показано на следующем рисунке.

Тестирование работы проекта

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

Исходный код программы (скетча)

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

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

Комментарии

Подключение гироскопа и акселерометра MPU6050 к ESP32 — 2 комментария

  1. Что-то мне подсказывает, что MPU не в курсе, что Вы закомментировали 88 строку и в переменной GyX будет лежать температура, а в GyY - значение гироскопа по X, в GyZ...
    ...ну Вы поняли логику =)

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

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

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