Рубрики
Проекты на Raspberry Pi

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

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

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

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

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

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

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

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

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

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

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

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

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

Схема подключения гироскопа 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.

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

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

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

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

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

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

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

Шаг 4. Установите библиотеку для работы с датчиком 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

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

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

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