Оглавление:

Отслеживание движения с использованием MPU-6000 и Raspberry Pi: 4 шага
Отслеживание движения с использованием MPU-6000 и Raspberry Pi: 4 шага

Видео: Отслеживание движения с использованием MPU-6000 и Raspberry Pi: 4 шага

Видео: Отслеживание движения с использованием MPU-6000 и Raspberry Pi: 4 шага
Видео: Гироскоп-Акселерометр MPU-6050. Первое знакомство 2024, Ноябрь
Anonim
Image
Image

MPU-6000 - это 6-осевой датчик слежения за движением, в который встроены 3-осевой акселерометр и 3-осевой гироскоп. Этот датчик способен эффективно отслеживать точное положение и местоположение объекта в трехмерной плоскости. Его можно использовать в системах, требующих анализа положения с высочайшей точностью.

В этом руководстве было проиллюстрировано взаимодействие сенсорного модуля MPU-6000 с raspberry pi. Для считывания значений ускорения и угла поворота мы использовали raspberry pi с адаптером I2C. Этот адаптер I2C делает подключение к модулю датчика простым и надежным.

Шаг 1: Требуемое оборудование:

Требуемое оборудование
Требуемое оборудование
Требуемое оборудование
Требуемое оборудование
Требуемое оборудование
Требуемое оборудование

Материалы, которые нам нужны для достижения нашей цели, включают следующие компоненты оборудования:

1. МПУ-6000

2. Raspberry Pi

3. Кабель I2C

4. I2C Shield для raspberry pi

5. Кабель Ethernet.

Шаг 2: Подключение оборудования:

Подключение оборудования
Подключение оборудования
Подключение оборудования
Подключение оборудования

В разделе «Подключение оборудования» в основном объясняются проводные соединения, необходимые между датчиком и Raspberry Pi. Обеспечение правильных соединений является основной необходимостью при работе с любой системой для достижения желаемого результата. Итак, необходимые подключения следующие:

MPU-6000 будет работать по I2C. Вот пример схемы подключения, демонстрирующий, как подключить каждый интерфейс датчика.

Изначально плата настроена для интерфейса I2C, поэтому мы рекомендуем использовать это подключение, если вы не сторонник этого.

Все, что вам нужно, это четыре провода! Требуются только четыре соединения, выводы Vcc, Gnd, SCL и SDA, которые подключаются с помощью кабеля I2C.

Эти соединения показаны на рисунках выше.

Шаг 3. Код для отслеживания движения:

Код для отслеживания движения
Код для отслеживания движения

Преимущество использования raspberry pi заключается в том, что он предоставляет вам гибкость языка программирования, на котором вы хотите запрограммировать плату, чтобы связать с ней датчик. Используя это преимущество этой платы, мы демонстрируем ее программирование на питоне. Python - один из самых простых языков программирования с самым простым синтаксисом. Код python для MPU-6000 можно загрузить в нашем сообществе GitHub, то есть в магазине Dcube.

Помимо удобства пользователей, мы также объясняем код здесь:

В качестве первого шага кодирования вам необходимо загрузить библиотеку SMBus в случае python, потому что эта библиотека поддерживает функции, используемые в коде. Итак, чтобы скачать библиотеку, вы можете перейти по следующей ссылке:

pypi.python.org/pypi/smbus-cffi/0.5.1

Вы также можете скопировать рабочий код отсюда:

импортировать smbus

время импорта

# Получить I2C busbus = smbus. SMBus (1)

# Адрес MPU-6000, 0x68 (104)

# Выбрать регистр конфигурации гироскопа, 0x1B (27)

# 0x18 (24) Полный диапазон шкалы = 2000 dps

bus.write_byte_data (0x68, 0x1B, 0x18)

# Адрес MPU-6000, 0x68 (104)

# Выбрать регистр конфигурации акселерометра, 0x1C (28)

# 0x18 (24) Полный диапазон шкалы = +/- 16g

bus.write_byte_data (0x68, 0x1C, 0x18)

# Адрес MPU-6000, 0x68 (104)

# Выбрать регистр управления питанием 1, 0x6B (107)

# 0x01 (01) PLL с ссылкой xGyro

bus.write_byte_data (0x68, 0x6B, 0x01)

time.sleep (0,8)

# Адрес MPU-6000, 0x68 (104)

# Считать данные обратно из 0x3B (59), 6 байтов

# Акселерометр MSB оси X, LSB оси X, MSB оси Y, Y-Axis LSB, Z-Axis MSB, Z-Axis LSB

data = bus.read_i2c_block_data (0x68, 0x3B, 6)

# Конвертируем данные

xAccl = данные [0] * 256 + данные [1]

если xAccl> 32767:

xAccl - = 65536

yAccl = данные [2] * 256 + данные [3]

если yAccl> 32767:

yAccl - = 65536

zAccl = данные [4] * 256 + данные [5]

если zAccl> 32767:

zAccl - = 65536

# Адрес MPU-6000, 0x68 (104)

# Считать данные обратно из 0x43 (67), 6 байт

# Гирометр MSB по оси X, LSB по оси X, MSB по оси Y, LSB по оси Y, MSB по оси Z, LSB по оси Z

data = bus.read_i2c_block_data (0x68, 0x43, 6)

# Конвертируем данные

xGyro = данные [0] * 256 + данные [1]

если xGyro> 32767:

xGyro - = 65536

yGyro = данные [2] * 256 + данные [3]

если yGyro> 32767:

yGyro - = 65536

zGyro = данные [4] * 256 + данные [5]

если zGyro> 32767:

zGyro - = 65536

# Выводить данные на экран

print "Ускорение по оси X:% d"% xAccl

print "Ускорение по оси Y:% d"% yAccl

print "Ускорение по оси Z:% d"% zAccl

print "Ось X вращения:% d"% xGyro

print "Ось Y вращения:% d"% yGyro

print "Ось Z вращения:% d"% zGyro

Код выполняется с помощью следующей команды:

$> Python MPU-6000.py gt; Python MPU-6000.py

Выходные данные датчика показаны на рисунке выше для справки пользователя.

Шаг 4: Приложения:

Приложения
Приложения

MPU-6000 - это датчик отслеживания движения, который находит свое применение в интерфейсе управления движением смартфонов и планшетов. В смартфонах эти датчики могут использоваться в таких приложениях, как команды жестов для приложений и управления телефоном, расширенные игры, дополненная реальность, захват и просмотр панорамных фотографий, а также навигация для пешеходов и транспортных средств. Технология MotionTracking может превращать телефоны и планшеты в мощные интеллектуальные устройства 3D, которые можно использовать в самых разных приложениях, от мониторинга здоровья и фитнеса до сервисов на основе определения местоположения.

Рекомендуемые: