|
|||
Навигация при помощи модуля гироскоп-акселерометра (MPU-6050) ⇐ ПредыдущаяСтр 2 из 2 Навигация при помощи модуля гироскоп-акселерометра (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 к Ардуино
Для работы программы потребуются библиотеки: 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. Компас, карты и навигация. Акселерометр с гироскопом позволяют определить ориентацию устройства в пространстве, что необходимо в различных приложениях для мобильной навигации.
|
|||
|