Подключение MPU6050 к Ардуино




Навигация по датчикам расстояния (Ультразвуковая навигация на основе Arduino)

Это устройство предназначено для построения карты местности, точнее закрытого помещения (комнаты, например) вместе с находящимися в нем предметами.

 
 

Рисунок 1. Ультразвуковая навигация

Принцип работы данного системы навигации заключается в сканировании вращающимся датчиком ультразвука окружающих предметов. Результат которого может быть преобразован в карту местности:


Рисунок 2. Результат обработки информации от датчика ультразвука

 

Как мы видим, результат сканирования достаточно грубо передаёт очертания помещения, так как датчик ультразвука сам по себе работает с погрешностями и очень плохо определяет дальность в зависимости от угла между датчиком и предметов (ультразвук отражается). А также точность показаний зависит от материала поверхности (меняются свойства отражения и поглощения ультразвука).

Данный способ навигации широко применяется в простейших роботах (роботы-пылесосы), задачей которых является объезд препятствий.

 
 

Рисунок 3. Маршрут робота-пылесоса

Навигация при помощи модуля гироскоп-акселерометра (MPU-6050)

 

Акселерометр — это прибор, позволяющий измерять ускорение тела под действием внешних сил.

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


Рисунок 4. Акселерометр

Модуль датчика помогает определять место и перемещение в пространстве. Измеряются дифферент и углы крена посредством вектора силы тяжести и скорости в процессе вращения. Также включена функция измерения температурного режима. Перемещение определяется линейным ускорением и угловой скоростью. Полная картина рисуется по 3 осям.

Характеристики модуля MPU6050 ROC:

· напряжение питания: от 3,5 до 6 В;

· потребляемый ток: 500 мкА;

· ток в режиме пониженного потребления: 10 мкА при 1,25 Гц, 20 мкА при 5 Гц, 60 мкА при 20 Гц, 110 мкА при 40 Гц;

· диапазон: ± 2, 4, 8, 16g;

· разрядность АЦП: 16;

· интерфейс: I2C (до 400 кГц).

На плате имеется 8 контактов:

· VCC — положительный контакт питания;

· GND — земля;

· SDA — линия данных I2C;

· SCL — линия синхроимпульсов I2C;

· INT — настраиваемое прерывание;

· AD0 — I2C адрес; по-умолчанию AD0 подтянут к земле, поэтому адрес устройства — 0x68; если соединить AD0 к контактом питания, то адрес изменится на 0x69;

· XCL, XDA — дополнительный I2C интерфейс для подключения внешнего магнитометра

Подключение MPU6050 к Ардуино


Рисунок 5. Подключения датчика к плате Arduino

 

Для работы программы потребуются библиотеки: MPU6050.

Загружаем программу на Ардуино и открываем окно графика. Поворачиваем датчик вокруг оси X на 90 градусов в одну сторону, потом на 90 в другую. Получится примерно такая картина.

Рисунок 6. Вывод информации от модуля гироскоп-акселерометра

 

На графике хорошо видно, что при наклоне оси Y вертикально, акселерометр выдает значения близкие к четырём тысячам. Откуда берется это число?

Дело в том, что датчик MPU6050 позволяет настраивать точность измерений. Можно выбрать один из четырех классов точности: ±2G, 4G, 8G и 16G, где 1G — это одна земная гравитация. Используемая нами библиотека по-умолчанию настраивает датчик на диапазон ±8G (прим. по ссылке внизу статьи библиотека по-умолчанию устанавливает ±2G).

С другой стороны, MPU6050 имеет 16 разрядный АЦП. 2 в степени 16 даст нам число 65 536. Поскольку датчик может измерять и отрицательное и положительное ускорение, то он будет выдавать нам числа от -32768 до +32768.

Сложив эти два факта вместе получаем, что при таких настройках 1G будет равен числу 4096 (ну а -1G равен числу -4096). Это вполне совпадает с наблюдаемыми на графике значениями!

Следующий шаг — преобразование этих странных чисел в привычные нам углы, измеряемые в градусах.


Рисунок 7. Обработанная информации от модуля гироскоп-акселерометра

 

Ну вот, мы получили уже что-то пригодное для дальнейшего использования. Видно, что датчик поворачивался сначала на 30 с лишним градусов в одну сторону, потом примерно на 60 в другую.

Для получения координат нужна будет библиотека - Kalman (Gy-521, mpu6050), которая преобразует показания координат X и Y.

Преимущества использования акселерометра:

1. Акселерометр позволяет замерять шаги. Акселерометр способен отслеживать резкие движения устройства, а в зависимости от его настройки и чувствительности, считать некоторые из них за шаг.

2. Измеряет поворот экрана. Здесь уже оба устройства работают в паре. Ведь когда вы поворачиваете смартфон набок, картинка должна изменить свою ориентацию для пользователя, и лишь с помощью гироскопа удаётся определить угол наклона, под которым ПО это должно будет сделать.

3. Компас, карты и навигация. Акселерометр с гироскопом позволяют определить ориентацию устройства в пространстве, что необходимо в различных приложениях для мобильной навигации.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2022-05-15 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: