Подключение акселерометра/гироскопа MPU6050 к плате STM32F103C8 (Blue Pill)


В этой статье мы рассмотрим как измерить угол наклона с помощью модуля MPU6050 и STM32F103C8. Это можно сделать, просто подключив 6-осевой гироскоп/акселерометр MPU6050 к плате STM32. Акселерометр будет передавать на плату STM32 силы ускорения вдоль осей X, Y и Z. Нам нужно преобразовать эти значения в трехмерный угол X, Y, Z, чтобы определить трехмерную ориентацию датчика. Измеренный угол наклона выводится на экран OLED дисплея.

Подключение акселерометра/гироскопа MPU6050 к плате STM32F103C8 (Blue Pill)

Гироскоп измеряет скорость вращения или скорость изменения углового положения с течением времени по осям X, Y и Z. Он использует технологию MEMS и эффект Кориолиса для проведения измерений. Выходные данные гироскопа выражаются в градусах в секунду, поэтому для получения углового положения нам просто нужно интегрировать угловую скорость.

Ранее на нашем сайте мы рассматривали подключение модуля MPU6050 к следующим микроконтроллерам (платам):

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

  1. Плата разработки STM32F103C8 (STM32 Blue Pill) (купить на AliExpress).
  2. Модуль акселерометра и гироскопа MPU6050 (купить на AliExpress).
  3. OLED дисплей с интерфейсом I2C и диагональю экрана 0.96 дюйма (купить на AliExpress - для данного проекта выбирайте вариант дисплея с 4 контактами).
  4. Макетная плата.
  5. Соединительные провода.

Реклама: ООО "АЛИБАБА.КОМ (РУ)" ИНН: 7703380158

Датчик гироскопа/акселерометра MPU6050

Датчик гироскопа/акселерометра MPU6050

Датчик InvenSense MPU-6050 содержит акселерометр MEMS и гироскоп MEMS в одном чипе. Он очень точный, так как поддерживает 16-битное аналого-цифровое преобразование для каждого канала. Поэтому он одновременно захватывает каналы x, y и z. Датчик использует шину I2C для взаимодействия с Arduino.

MPU-6050 не дорогой, особенно учитывая тот факт, что он сочетает в себе и акселерометр, и гироскоп.

Распиновка MPU6050

Модуль MPU-6050 имеет 8 контактов:
INT: контакт цифрового выхода прерывания.
AD0: контакт младшего разряда адреса ведомого устройства I2C. Это 0-й бит в 7-битном адресе ведомого устройства. При подключении к VCC он считывается как логическая единица, и адрес ведомого устройства изменяется.
XCL: вспомогательный контакт последовательной синхронизации. Этот контакт используется для подключения других датчиков с интерфейсом I2C к контакту SCL к MPU-6050.
XDA: вспомогательный контакт последовательных данных. Этот контакт используется для подключения других датчиков с интерфейсом I2C к контакту SDA к MPU-6050.
SCL: контакт последовательной синхронизации. Подключите этот контакт к контакту SCL микроконтроллера.
SDA: контакт последовательных данных. Подключите этот контакт к контакту SDA микроконтроллера.
GND: контакт общего провода (земли). Подключите этот контакт к общему проводу схемы.
VCC: контакт питания. Подключите этот контакт к источнику питания +5 В постоянного тока.

3-осевой гироскоп

MPU6050 состоит из 3-осевого гироскопа с технологией микроэлектромеханической системы (MEMS). Он используется для определения скорости вращения по осям X, Y, Z, как показано на рисунке ниже.

Принцип работы MPU6050 в качестве гироскопа

3-осевой акселерометр

MPU6050 состоит из 3-осевого акселерометра с технологией микроэлектромеханики (MEMS). Он используется для определения угла наклона или уклона по осям X, Y и Z, как показано на рисунке ниже.

Принцип работы MPU6050 в качестве акселерометра

Схема проекта

Схема подключения акселерометра/гироскопа MPU6050 к плате STM32F103C8 (Blue Pill) представлена на следующем рисунке. Схему можно собрать на макетной плате.

Схема подключения акселерометра/гироскопа MPU6050 к плате STM32F103C8 (Blue Pill)

MPU6050 и OLED-дисплей являются модулями I2C. Поэтому нам нужно всего 2 провода для их сопряжения с платой STM32. Итак, подключите контакты последовательных данных (SDA) к контакту B7 платы STM32F103C8, а контакты синхронизации (SCL) к контакту B6 платы STM32F103C8. Подайте питание 3,3 В на оба модуля.

Собранная на макетной плате конструкция проекта

Исходный код программы

Код программы для сопряжения модуля MPU6050 с платой STM32 приведены ниже. Для компиляции кода нам понадобится несколько библиотек. Поэтому скачайте библиотеки по ссылкам ниже и добавьте их в Arduino IDE.

  1. Adafruit_SSD1306: https://github.com/adafruit/Adafruit_SSD1306
  2. Adafruit_GFX: https://github.com/adafruit/Adafruit-GFX-Library

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

Итак, как только код загружен в плату, вы можете нажать на последовательный монитор, чтобы проверить работу проекта. Вам нужно наклонить гироскоп/акселерометр MPU6050, чтобы определить угловое положение осей X, Y и Z.

Тестирование работы проекта в окне монитора последовательной связи

Также же измеренные углы наклона можно наблюдать и на экране OLED-дисплея.

Тестирование работы проекта на экране OLED дисплея

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

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

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