Подключение гироскопа и акселерометра 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, как показано на следующем рисунке.

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

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

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

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

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

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

Ваш адрес email не будет опубликован.