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


Датчик MPU6050 способен выполнять несколько функций и содержит в своем составе акселерометр, гироскоп и датчик температуры. Он находит широкое применение при конструировании дронов, роботов и многих других устройств. Иногда его называют гироскопом или трехосевым акселерометром.

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

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

В данной статье мы рассмотрим подключение гироскопа MPU6050 к плате Raspberry Pi, получаемые данные с гироскопа мы будем выводить на экран ЖК дисплея 16x2.

Также на нашем сайте вы можете посмотреть следующие проекты, в которых был использован датчик MPU6050:

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

  1. Плата Raspberry Pi (купить на AliExpress).
  2. ЖК дисплей 16x2 (купить на AliExpress).
  3. Гироскоп MPU6050 (купить на AliExpress).
  4. Потенциометр 10 кОм (купить на AliExpress).
  5. Источник питания.
  6. Макетная плата.
  7. Соединительные провода.

Гироскопический датчик (гироскоп) 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 – контакт прерывания для индикации готовности данных.

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

В этом проекте мы будем с помощью платы Raspberry Pi считывать с датчика MPU6050 данные температуры, гироскопа и акселерометра и последовательно отображать их на экране ЖК дисплея: сначала температуру, затем после небольшой паузы данные гироскопа и затем данные акселерометра.

Отображение данных температуры в проекте

Отображение данных с гироскопа

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

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

Схема подключения гироскопа MPU6050 к плате Raspberry PiПотенциометр 10 кОм в схеме используется для регулировки контрастности ЖК дисплея. Для соединения платы Raspberry Pi с датчиком MPU6050 мы использовали 4 провода: 3.3v и землю датчика MPU6050 подключили к 3.3v и земле платы Raspberry Pi, а контакты SCL и SDA датчика подключили к контактам 3 (GPIO2) и 5 (GPIO3) платы. Контакты управления работой ЖК дисплея RS, RW и EN мы непосредственно подключили к контактам GPIO18 и 23 платы Raspberry Pi, а контакты данных ЖК дисплея мы подключили к контактам GPIO24, GPIO25, GPIO8 и GPIO7 платы.

Настройка платы Raspberry Pi для работы с датчиком MPU6050

Выполните следующую последовательность шагов.

Шаг 1. Активируйте интерфейс I2C в плате Raspberry Pi.

Для этого сначала войдите в настройки платы:

В открывшемся окне настроек выберите настройки подключения периферийных устройств.

Выбор настроек подключения периферийных устройств

Затем выберите I2C.

Выбор настроек интерфейса I2C

После этого нажмите yes, затем enter и затем ok.

Сохранение сделанных настроек

После этого перезагрузите плату Raspberry Pi чтобы настройки вступили в силу.

Шаг 2. Установите python-pip и GPIO Library (библиотеку для работы с контактами).

Для установки pip выполните следующую команду:

После этого установим библиотеку для работы с контактами (GPIO library).

Шаг 3. Установите библиотеку smbus.

Библиотеку smbus можно установить с помощью следующей команды:

Процесс установки библиотеки smbus

Шаг 4. Установите библиотеку для работы с датчиком MPU6050.

Данную библиотеку можно установить с помощью следующей команды:

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

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

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

Первым делом в программе нам необходимо подключить (импортировать) используемые библиотеки.

Далее нам необходимо задать начальные значения регистров для настройки датчика MPU6050. Также инициализируем ряд переменных и шину для работы протокола I2C.

Далее запрограммируем ряд функций для работы с ЖК дисплеем: def begin(), def cmd(ch), def write(ch), def Print(str), def clear(). Их коды представлены в полном тексте программы в конце статьи. Более подробно о назначении этих функций вы можете прочитать в статье про управление светодиодами по радиоканалу с помощью Raspberry Pi.

После этого запрограммируем функцию для инициализации датчика MPU6050.

Далее запрограммируем функцию для считывания данных с датчика MPU6050.

Следующие две функции будут использоваться для считывания данных акселерометра и гироскопа с датчика MPU6050.

Затем запрограммируем функцию для считывания значения температуры с датчика.

Далее также запрограммируем функцию def calibrate() для калибровки датчика MPU6050 и функцию def display() для отображения информации на экране ЖК дисплея.

Затем в основном цикле программы мы будем вызывать ранее запрограммированные функции для инициализации и калибровки датчика MPU6050, после чего последовательно считывать с него значения температуры, акселерометра и гироскопа и отображать их на экране ЖК дисплея.

Процесс инициализации гироскопа завершен Получение данных по осям с гироскопа

В данной статье мы рассмотрели основы работы с гироскопом с помощью платы Raspberry Pi, на ее основе вы сможете создать свои более сложные проекты с использованием гироскопа.

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

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

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

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

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