Оглавление:

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

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

Видео: Отслеживание движения с использованием MPU-6000 и Arduino Nano: 4 шага
Видео: Солнечный Трекер VS Стационарная панель. Сравнение по энергоэффективности 2024, Июль
Anonim
Image
Image

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

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

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

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

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

1. МПУ-6000

2. Arduino Nano

3. Кабель I2C

4. I2C Shield для arduino nano

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

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

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

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

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

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

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

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

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

А теперь давайте начнем с кода Arduino.

При использовании сенсорного модуля с arduino мы включаем библиотеку Wire.h. Библиотека Wire содержит функции, которые облегчают обмен данными i2c между датчиком и платой Arduino.

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

#включают

// Адрес I2C MPU-6000 0x68 (104)

#define Addr 0x68

установка void ()

{

// Инициализируем связь I2C как Master

Wire.begin ();

// Инициализируем последовательную связь, устанавливаем скорость передачи = 9600

Serial.begin (9600);

// Запуск передачи I2C

Wire.beginTransmission (адрес);

// Выбираем регистр конфигурации гироскопа

Wire.write (0x1B);

// Полный диапазон шкалы = 2000 dps

Wire.write (0x18);

// Остановить передачу I2C

Wire.endTransmission ();

// Запуск передачи I2C

Wire.beginTransmission (адрес);

// Выбираем регистр конфигурации акселерометра

Wire.write (0x1C);

// Полный диапазон шкалы = +/- 16g

Wire.write (0x18);

// Остановить передачу I2C

Wire.endTransmission ();

// Запуск передачи I2C

Wire.beginTransmission (адрес);

// Выбираем регистр управления питанием

Wire.write (0x6B);

// ФАПЧ с ссылкой xGyro

Wire.write (0x01);

// Остановить передачу I2C

Wire.endTransmission ();

задержка (300);

}

пустой цикл ()

{

данные типа int без знака [6];

// Запуск передачи I2C

Wire.beginTransmission (адрес);

// Выбираем регистр данных

Wire.write (0x3B);

// Остановить передачу I2C

Wire.endTransmission ();

// Запрос 6 байтов данных

Wire.requestFrom (Адрес, 6);

// Считываем 6 байт данных

если (Wire.available () == 6)

{

данные [0] = Wire.read ();

данные [1] = Wire.read ();

данные [2] = Wire.read ();

данные [3] = Wire.read ();

данные [4] = Wire.read ();

данные [5] = Wire.read ();

}

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

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

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

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

// Запуск передачи I2C

Wire.beginTransmission (адрес);

// Выбираем регистр данных

Wire.write (0x43);

// Остановить передачу I2C

Wire.endTransmission ();

// Запрос 6 байтов данных

Wire.requestFrom (Адрес, 6);

// Считываем 6 байт данных

если (Wire.available () == 6)

{

данные [0] = Wire.read ();

данные [1] = Wire.read ();

данные [2] = Wire.read ();

данные [3] = Wire.read ();

данные [4] = Wire.read ();

данные [5] = Wire.read ();

}

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

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

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

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

// Выводим данные на последовательный монитор

Serial.print («Ускорение по оси X:»);

Serial.println (xAccl);

Serial.print («Ускорение по оси Y:»);

Serial.println (yAccl);

Serial.print («Ускорение по оси Z:»);

Serial.println (zAccl);

Serial.print («Ось вращения X:»);

Serial.println (xGyro);

Serial.print («Ось вращения Y:»);

Serial.println (yGyro);

Serial.print («Ось вращения Z:»);

Serial.println (zGyro);

задержка (500);

}

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

Serial.print () и Serial.println () используются для отображения выходных данных датчика на последовательном мониторе Arduino IDE.

Выход датчика показан на картинке выше.

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

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

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

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