Использование измерительной системы МРи 6050 для определения угловых скоростей и линейных ускорений
Д.С.Федоров, А.Ю. Ивойлов, В.А. Жмудь, В.Г. Трубин ФГБОУВПО НГТУ, Новосибирск, Россия
Аннотация: В настоящее время широкое распространение получили микроэлектромеханические системы (МЭМС). Типичными примерами МЭМС являются акселерометры и гироскопы. В данной статье рассматриваются особенности работы МЭМС гироскопа, являющегося частью измерительной системы МРЦ6050, и получения данных с датчиков нее. Данная система обладает цифровым интерфейсом 12С. Для работы с МРШ050 была использована отладочная плата
STM32VLDISCOVERY с установленным на ней микроконтроллером STM32Fl00RBT6B. Система МРШ050 подключена к 12С-модулю микроконтроллера. Датчик является ведомым устройством, а микроконтроллер - ведущим. Работа с датчиком осуществляется путем записи данных в управляющие регистры и считывания данных из информационных регистров. Запрос на запись или чтение данных инициируется микроконтроллером. По стандарту интерфейса 12С любой обмен данными включает следующие этапы: генерация старт-условия ведущим
устройством, отправка адреса ведомого устройства, считывание данных из ведомого устройства или запись в него, генерация ведущим устройством условия остановки. В целом, подключение устройств к шине ?С является стандартной задачей в инженерии, однако иногда трудности все же возникают. Связано это, как правило, с особенностями реализации 1гС интерфейса на конкретном устройстве. Например, в случае с микроконтроллером STM32F100RBT6B особенность работы 12С состоит в том, что при считывании генерировать условие остановки необходимо не после приема последнего байта, как следует из логики работы 12С, а перед ним. Тогда микроконтроллер выставит условие остановки в нужный момент, иначе произойдет зависание линии. После отладки связи с МРЦ6050 по 12С были произведены измерения ускорения и угловой скорости датчика. Эти данные были использованы для определения угла наклона. Данные акселерометра имели существенные выбросы и искажения, связанные с действием боковых ускорений. Данные гироскопа так же имеют существенный недостаток: угловая скорость после остановки гироскопа не равна нулю, а имеет некоторое смещение. Как
следствие - постепенное «уплывание» угла после интегрирования угловой скорости. Таким образом, отдельно друг от друга акселерометр или гироскоп не может быть использован для получения угла наклона. Для получения корректных данных необходимо применять специальные фильтры и использовать данные обоих датчиков.
Ключевые слова: гироскоп, акселерометр МРЦ6050, STM32, STM32F100RBT6B.
ВВЕДЕНИЕ
В настоящее время широкое распространение получили микроэлектромеханические системы (МЭМС). Это стало возможным благодаря их миниатюрности, большой функциональности, высокой надежности, низкого энергопотребления и невысокой стоимости.
Типичными примерами МЭМС являются акселерометры и гироскопы, которые есть в каждом смартфоне, планшетном компьютере и т.д. Первые используются для измерения линейных ускорений, а вторые - угловых скоростей. Совместное использование акселерометра и гироскопа позволяет определить движение тела в трехмерном пространстве.
В данной статье будут рассмотрены особенности работы МЭМС гироскопа, являющегося частью МРи6050 и получения данных с датчиков этой измерительной системы.
1. ПРИНЦИП РАБОТЫ ГИРОСКОПА
МЭМС устройства изготавливают на кремниевой подложке аналогично технологии производства однокристальных интегральных микросхем, поэтому их размеры варьируются от нескольких десятков микрон до нескольких миллиметров.
Существует несколько разновидностей МЭМС гироскопов, различающихся внутренним устройством, но всех их объединяет то, что их работа основана на использовании силы Кориолиса. В каждом из них есть рабочее тело, совершающее возвратно-поступательные движения. Если вращать подложку, на которой находится это тело, то на него начнет действовать сила Кориолиса, направленная перпендикулярно оси вращения и направлению движения тела. На Рис. 1 представлен механизм работы этой силы.
Рис. 1. Механизм работы силы Кориолиса: V -вектор угловой скорости, V - вектор линейной скорости, Ре - сила Кориолиса
Зная линейную скорость и силу Кориолиса можно определить угловую скорость.
Одна из возможных реализаций гироскопа имеет следующую структуру: закрепленная на гибких подвесках рамка, внутри которой совершает поступательные колебательные движения некая масса [1]. Структура такого сенсора представлена на Рис.2.
Рис. 2. Внутренняя структура гироскопа: 1 - крепление массы, 2 - рабочая масса, 3 - крепление внутренней рамки, 4 - сенсоры перемещения внутренней рамки, 5 -внутренняя рамка, 6 - подложка
Колебания рабочей массы происходят вдоль оси X и генерируются электростатически, а колебания внутренней рамки возможны только вдоль оси У. Между внутренней рамкой и подложной расположены обкладки плоских конденсаторов (сенсоры перемещения), таким образом, измеряя их емкость, можно фиксировать движение рамки относительно подложки.
На Рис. 3 представлена структура гироскопа при его вращении в плоскости ХУ по часовой стрелке.
-\AMAArT~i
ЛАМААН
ЧАМА/У
V Рс
Рис. 3. Структура гироскопа при вращении: V -вектор угловой скорости, V - вектор линейной скорости, Ре - сила Кориолиса
Но колебания внутренней рамки могут вызываться не только силой Кориолиса, но и линейными ускорениями, которые действуют вдоль оси У. Проблема решается путем размещения на одной подложке двух рамок, в каждой из которых находится рабочая масса. Обе массы колеблются в противофазе, следовательно, в конкретный момент времени сила Кориолиса, воздействующая на первую массу, направлена противоположно силе, воздействующей на вторую. Сигналы, генерируемые силой Кориолиса, будут складываться, а синфазная составляющая, порожденная линейным ускорением, - вычитаться.
Ниже представлены технические
характеристики МРи 6050 и встроенного гироскопа [2].
2. ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ МОДУЛЯ МРи 6050 И ГИРОСКОПА
2.1. Технические характеристики модуля:
• 3-х осевой гироскоп;
• 3-х осевой акселерометр;
• Термодатчик;
• Напряжение питания 2.375У-3.46У;
• ИБО-буфер объемом 1024 байт;
• Программируемые пользователем цифровые фильтры для гироскопа, акселерометра и термодатчика;
• Интерфейс 12С для записи и чтения регистров устройства, работающий на частоте до 400кГц.
2.2. Технические характеристики гироскопа:
• Программируемый пользователем диапазон измерений: ±250, ±500,
±1000, и ±2000 °/с;
• Встроенный 16-разрядный АЦП;
• Цифровой программируемый ФНЧ;
• Ток в режиме работы - 3,6 мА;
• Ток в режиме ожидания 5 мкА.
3. ПОЛУЧЕНИЕ ИЗМЕРЕННЫХ ДАННЫХ
Модуль МРи 6050 был подключен к /2С модулю микроконтроллера 8ТМ32Р100КБТ6Б для отправки команд и считывания из регистров необходимых данных. После отправки модулю команды о начале измерений происходит постоянная оцифровка показаний со всех осей гироскопа, акселерометра и термодатчика. Остается только считывать байты из необходимых регистров. Частота записи новых данных в эти регистры аналогово-цифровым преобразователем зависит от выбранной пользователем чувствительности сенсора и, следовательно, диапазона измерений.
Подключение датчика к микроконтроллеру осуществляется по интерфейсу /2С. Данный интерфейс обладает рядом особенностей: имеет архитектуру ведущий - ведомый, то есть одно устройство (ведущее) производит запрос на чтение или запись ведомых устройств. В нашем случае ведомым является МРи 6050, а ведущим /2С модуль, находящийся на микроконтроллере. Для связи используется две двунаправленные линии: тактирования и данных. Ведомое устройство имеет свой адрес, который на данной линии должен быть уникальным (в нашем случае это 0*Б0). Линии должны быть подтянуты к уровню логической единицы. Как правило, устройства подключаются к линиям через выводы с открытым коллектором (стоком). Фактически, устройства подключены по схеме «монтажное И». Преимуществом является возможность подключения большого количества ведомых устройств, а также сравнительно высокая дальность передачи данных. Но при увеличении дальности фактическая скорость передачи данных снижается. Это связано с тем, что фронты сглаживаются из-за увеличения емкости проводов.
На Рис. 4 представлен алгоритм программы, осуществляющей считывание данных из регистров МРи 6050. Она составлена с учетом особенностей протокола для датчика и контроллера.
Стоит обратить внимание на некоторые особенности, связанные с работой этого алгоритма. Во-первых, необходимость чтения регистра БК2 там, где это указано в блок-схеме. Считывание содержимого этого регистра приводит к сбросу некоторых битов-флагов в нем.
Если этого не сделать, модуль МРи 6050 не сможет перейти к следующей стадии работы и произойдет зависание программы. Вторая особенность связана с завершением сеанса связи при чтении данных из регистров МРи 6050. Сигналом завершения обмена данных является установка стоп-условия на линии данных. В случае с микроконтроллером 5ТМ32М00 команду на генерацию стоп-условия для него необходимо отдать после прочтения предпоследнего байта. В случае если принимается один байт, то после получения подтверждения принятия адреса от ведомого устройства. Если это сделать после прочтения последнего байта, микроконтроллер будет ожидать прием еще одного байта, которого не будет, и программа зависнет.
На блок-схеме представлен алгоритм для чтения или записи одного байта, однако он легко может быть дополнен для прочтения или записи нескольких байт. После чтения или записи в регистр, МРи6050 автоматически увеличивает адрес регистра на один, что позволяет за один сеанс связи считывать или записывать данные в несколько регистров подряд.
4. РЕЗУЛЬТАТЫ ЭКСПЕРИМЕНТА
Считывание данных из регистров датчика производилось с периодичностью 10 раз в секунду. Показания гироскопа интегрировались микроконтроллером для определения угловых скоростей относительно всех трех осей. Результаты представлены на Рис. 5-7. На Рис. 7 видно, как вследствие интегрирования происходило накопление ошибки, так называемый дрейф нуля: датчик находится в неподвижном состоянии, а значение угла увеличивается с одной и той же скоростью. На Рис. 5 видно, что показания акселерометра зашумлены высокочастотной помехой, что приведет к ошибкам при вычислении углов отклонения путем использования обратных тригонометрических функций.
Таким образом, МРи 6050 является функциональной измерительной системой, включающей в себя гироскоп и акселерометр, которые позволяют отследить движение тела в пространстве: определить угловую скорость и линейные ускорения. Определение угла путем интегрирования угловой скорости является неточным из-за накопления ошибки (низкочастотный шум). Акселерометр же вносит высокочастотную помеху. Решением является использование данных с обоих датчиков и обработка их альфа-бета фильтром или фильтром Калмана. При этом будут устранены недостатки акселерометра и гироскопа.
Рис. 4. Блок-схема алгоритма записи и считывания данных из регистров МРиб050.
Рис. 5. Показания по осям акселерометра
300 Time,s
Рис. 6. Показания по осям гироскопа
200 г
300 Гите, я
Рис. 7. Данные об углах поворота, полученные интегрированием показаний гироскопа
ЗАКЛЮЧЕНИЕ
Работа выполнена при финансовой поддержке Минобрнауки России по государственному заданию №2014/138, тема проекта «Новые структуры, модели и алгоритмы для прорывных методов управления техническими системами на основе наукоемких результатов интеллектуальной деятельности».
ЛИТЕРАТУРА
[1] МЭМС-гироскопы - единство выбора [Электронный ресурс]. - Режим доступа: http://www.electronics.ru/journal/article/512
[2] MPU-6050 Datasheet (PDF) - List of Unclassifed Manufacturers [Электронный ресурс]. - Режим доступа: http: //www. alldatasheet. com/datasheet-pdf/pdf/517744/ETC1 /MPU-6050. html
Федоров Дмитрий Сергеевич
Магистрант кафедры Автоматики факультета АВТ НГТУ E-mail: fds0303@mail.ru
Ивойлов Андрей Юрьевич -
магистрант кафедры Автоматики факультета АВТ НГТУ E-mail: iau13hv@mail.ru
Вадим Аркадьевич Жмудь -
заведующий кафедрой Автоматики НГТУ, профессор, доктор технических наук. E-mail: oao nips@bk.ru
Виталий Геннадьевич Трубин -
зав. лаб. кафедры Автоматики НГТУ, директор ООО «КБ Автоматика». E-mail: trubin@ngs.ru
Using of Measuring System MPU6050 for the Determination of the Angular Velocities and Linear Accelerations
D.S. FEDOROV, A.Y. IVOYLOV, V.A. ZHMUD, V.G. TRUBIN
Abstract: At present, the micro-electromechanical systems (MEMS) are widely used. Typical examples of MEMS are accelerometers and gyroscopes. This paper discusses the features of MEMS-gyroscope, which is part of the measuring system MPU6050. It also discusses the receiving of the data from its sensors. This system has a digital interface I2C. Work with MPU6050 demands the use of STM32VLDISCOVERY evaluating board with microcontroller STM32F100RBT6B stated on it. System MPU6050 is connected to the I2C-module of the microcontroller. The sensor is a slave and microcontroller is master. The work with the sensor is the recording of the data into controlling registers or reading of the data from the information register. The microcontroller initiates the request to read or write of the data. According the standard I2C interface, any communication involves the following steps: generation of start-conditions by the master; sending of the address of the slave device; reading data from the slave or write to it; the generation by the master device of the stop condition. In general,
the connection of devices to the I2C bus is a standard problem in engineering, but sometimes problems do occur. This is typically due to implement features of I2C interface at the specific device. For example, with the microcontroller STM32F100RBT6B the specific of the operation of I2C is that when reading it is necessary generate the stop condition is necessary not after receiving the last byte, as it follows from the logic of the I2C working, but before it. Then the microcontroller will put a stop condition signal at the right time, otherwise the line will hang. After debugging of connection with MPU6050 on the I2C measurements of acceleration and angular velocity of the sensor were made. These data were used to determine the angle of inclination. Accelerometer data had significant emissions and distortion due to the influence of lateral acceleration. These data of gyroscope as well has a significant disadvantage: after stopping the angular velocity of the gyroscope is not zero, but has some displacement. Therefore, there is gradual deift of angle after integrating of the angular velocity. Thus, the accelerometer or the gyroscope separately from each other cannot be used to obtain the inclination angle. To obtain the correct data it is necessary to use special filters and to use the data of th both sensors.
Keywords: gyroscope, accelerometer MPU6050, STM32, STM32F100RBT6B.
REFERENCES
[1] MEMS-giroskopy - edinstvo vybora (In Russian) [Electronic resurs]. - URL: http://www.electronics.ru/journal/article/512
[2] MPU-6050 Datasheet (PDF) - List of Unclassifed Manufacturers [Electronic resurs]. - URL: http://www.alldatasheet.com/datasheet-
pdf/pdf/517744/ETC1 /MPU-6050. html