- Измерение угла поворота вала акселерометром
- Точное измерение наклона объекта с помощью специализированных MEMS-датчиков ST
- Введение
- Линейка промышленных акселерометров ST
- Теория измерения углов наклона
- Источники ошибок и калибровка
- Специализированные промышленные MEMS-инклинометры ST
- Инструменты для работы с инклинометрами
- Библиотеки для измерения углов наклона MotionTL, MotionTL2, MotionDI
- Заключение
Измерение угла поворота вала акселерометром
К нам обратился предприниматель с просьбой помочь в восстановлении гибочного станка. Он приобрел б/у станок, но на нем сломано устройство для съема данных с вала по углу, на который требуется гнуть металл (в центре).
Ниже фото без данного устройства.
Фирменный немецкий съемник имел емкостный счетчик поворота, и фирменный контроллер, подобные схемы применяются в электронный штангенциркулях. Конечно разбираться в чужой схеме довольно сложно и не всегда для этого есть основания (где достать испорченные компоненты?). Поэтому решили заменить устройство на то, что можем сделать самостоятельно. Для этого возможно применить двунаправленный инкрементальный энкодер, который будет снимать информацию с вала.
Инкрементальные энкодеры, независимо от типа (у нас оптический), бывают с одним фотоэлементом и с двумя. Если у энкодера один фотоэлемент, то нет возможности определить, в какую сторону присходит движение/вращение, подобные энкодеры можно применять в тех случаях, когда вращение/движение однонаправленное. В нашем случае вращение может осуществляться в обе стороны, следовательно используется двунаправленный энкодер (с двумя фотоэлементами, разнесенными на половину ширины щели диска). С него, используя «хитрую» программу, можно получить данные о направлении вращения, скорости, величине перемещения.
Состояние углового положения может быть выражено не в абсолютной форме, а относительно предыдущего положения (состояния) энкодера. Зная предыдущее состояние пары фотодатчиков и получив новое, можно говорить о движении на одну позицию вала в определенную сторону. Подсчет этих позиций и дает информацию о текущем положении вала. Рисунок ниже демонстрирует, как будут изменяться состояния фотодатчиков (A и B) при вращении вала с диском, допустим датчики находятся в состоянии «3» , а затем перешли в состояние «2», значит требуется отнять «1» от накопленного перемещения, а если из состояния «3» фотодатчики (A и B) перешли в состояние «4» следует прибавить «1» к накопленному перемещению. Если нужно перевести относительные единицы в абсолютные, потребуется умножение на коэффициент, который зависит, в том числе и от количества отверстий в диске.
Схематично энкодер и его подключение к контроллеру изображено на рисунке ниже. Фотоэлемены представлены в виде пары фототранзисторов Q1 и Q2, которые подсвечиваются светодиодом. Между ними и светодиодом вращается диск к прорезями, что приводит к изменению состояний фотоэлементов. Состояния фотоэлементов подаются на входы D8 и D9 контроллера, а затем программно дешифруется в состояние угла поворота.
Для визуализации результата используется дисплей на основе микросхемы HT1621, его подключение соответствует рисунку:
Основная программа использует встроенную библиотеку EEPROM и два локальных модуля encoder.h — обработка энкодера, ht1621_m.h — работа с дисплеем.
EEPROM служит для чтения записи данных в энергонезависимую память, для этого реализованы две функции void load_from_EEPROM () — читает информацию из энергонезависимой памяти, а button2_check ( ) — пишет при необходимости данные в энергонезависимую память.
Источник
Точное измерение наклона объекта с помощью специализированных MEMS-датчиков ST
Софья Букреева (г. Протвино)
Для измерения углов наклона в промышленности и в жестких условиях эксплуатации, а также при наличии дополнительных ускорений, обычных акселерометров недостаточно. Для этих целей компания STMicroelectronics выпускает специальные датчики – MEMS-инклинометры, 2- и 3-осевые – для статических измерений, и 6-осевые, с программируемым ядром машинного обучения и термокомпенсацией – для динамических.
Введение
Датчики наклона, также называемые инклинометрами, используются для измерения углов наклона относительно вектора гравитации Земли. Такие измерения востребованы в самых разных областях: от игровых контроллеров до сложных геодезических задач. В геофизике инклинометры используются для мониторинга вулканов и для измерения глубины и скорости оползней, их также используют при разведке полезных ископаемых. В строительстве инклинометры широко применяются для измерения сдвигов в стенах и земле, с помощью инклинометров определяют угол наклона и прогиб стрелы строительных кранов. Инклинометры помогают контролировать состояния опор мостов и транспортных магистралей, а также определять отклонения столбов уличного освещения, дорожных знаков и светофоров. Индикация тангажа и крена важна в эксплуатации морских судов и летательных аппаратов.
В медицине по показаниям инклинометров изучаются движения в суставах тела. Кроме того, инклинометры встраиваются в противоугонные системы транспортных средств, крепятся к упаковке товаров при транспортировке, позволяют регулировать положение солнечных панелей и имеют много других применений.
Важными характеристиками, которые следует учитывать при выборе инклинометра, являются диапазон угла наклона и количество осей измерения, которые, как правило, ортогональны. По технологиям, используемым для оценки наклона, датчики делятся на емкостные, наполненные жидкостью, с пузырьками газа в жидкости, электролитические, MEMS-акселерометры и инерционные IMU (Inertial Measurement Unit). MEMS-инклинометры завоевали популярность благодаря компактному размеру, низкой стоимости и простоте интеграции. Последние усовершенствования MEMS-технологии позволяют таким датчикам выигрывать также по шумовым характеристикам и показателям энергоэффективности.
Инклинометры можно разделить на две категории в зависимости от используемых алгоритмов:
- Статические инклинометры используются в основном для статических применений, таких как антенны, манипуляторы, системы мониторинга состояния конструкций, активная защита от опрокидывания в сельскохозяйственном оборудовании, регулировка и отслеживание положения солнечных панелей, выравнивание шасси для промышленных станков и инструменты для точного нивелирования. Статические инклинометры измеряют наклон по отношению к вектору ускорения свободного падения. В перечисленных задачах внешнее ускорение может быть только кратковременным, и среднее ускорение остается близким к земному (g = 9,81 м/с²), поэтому статический инклинометр сможет обеспечить достаточную точность в определении угла наклона. Любое внешнее ускорение (движение, вибрация и т. д.) приведет к ошибкам при измерениях.
- Динамические инклинометры – это решение для измерения наклона, когда объект не является статическим и подвергается быстрым перемещениям, вибрации или ударам. Проблема влияния внешних ускорений решается использованием гироскопа в дополнение к акселерометру. Такие устройства, объединяющие датчики, используют специальные алгоритмы (например, фильтры Калмана) для обработки сигналов от акселерометра и гироскопа и называются динамическими инклинометрами или IMU.
На рисунке 1 представлены категории инклинометров и области их применения.
Рис. 1. Статические и динамические инклинометры и области их применения
Линейка промышленных акселерометров ST
Для определения наклона могут быть использованы акселерометры, измеряющие линейное ускорение. Промышленные акселерометры компании ST обладают расширенной функциональностью и идеально подходят для приложений с ультранизким потреблением. Они имеют режим пониженного энергопотребления, функцию автоматического пробуждения и буфер FIFO, который можно использовать для хранения данных, что снижает нагрузку на основной процессор и уменьшает энергопотребление системы в целом. Вся линейка оснащена последовательным цифровым интерфейсом (SPI и/или I 2 C) и функцией самодиагностики, которая позволяет проверить работоспособность датчика в готовом устройстве. Датчики могут генерировать сигналы прерывания по пробуждению, свободному падению и по положению.
Акселерометр идеален для статического инклинометра, где внешнее ускорение незначительно. Однако если объект вращается и испытывает значительные внешние ускорения, для стабилизации выходного сигнала наклона потребуются дополнительные измерения с помощью гироскопа. Для таких применений компания ST предлагает 6-осевые IMU iNEMO™, которые объединяют в компактном корпусе акселерометр, гироскоп и магнитометр и, кроме того, могут включать в себя специальное ядро машинного обучения.
В таблице 1 приведены основные параметры промышленных MEMS-акселерометров и 6-осевых IMU компании ST. Напряжение питания датчиков составляет от 1,71 до 3,6 В (от 2,1 В для IIS3DWB и IIS328DQ). Во все модели, за исключением акселерометра IIS328DQ, встроен температурный датчик.
Таблица 1. Основные параметры промышленных акселерометров и IMU компании ST
Название | Диапазон измерений | Ток потребления | Темп. диапазон, °C | FIFO | Корпус, размеры |
---|---|---|---|---|---|
IIS2DH 3-осевой акселерометр | Ускорение*: (±2g, ±4g, ±8g, ±16g) | 2 мкА – при частоте выходных данных 1 Гц; 11 мкА – при частоте выходных данных 50 Гц | -40…85 | 32 10-битных ячейки памяти | LGA-12 2x2x0,7 мм |
IIS2DLPC 3-осевой акселерометр | Ускорение: (±2g, ±4g, ±8g, ±16g) | 120 мкА | -40…85 | 32 14-битных ячейки памяти | LGA-12 2x2x0,7 мм |
IIS2ICLX 2-осевой инклинометр | Ускорение: (±0,5g, ±1g, ±2g, ±3g) | 420 мкА | -40…105 | 3 кбайта | CC LGA-16 5x5x1,7 мм |
IIS328DQ 3-осевой акселерометр | Ускорение: (±2g, ±4g, ±8g) | 250 мкА | -40…105 | Отсутств. | QFN24 4x4x1,8 мм |
IIS3DHHC 3-осевой инклинометр | Ускорение: (±2,5g) | 2500 мкА | -40…85 | 32 16-битных ячейки памяти | CC LGA-16 5x5x1,7 мм |
IIS3DWB 3-осевой акселерометр | Ускорение: (±2g, ±4g, ±8g, ±16g) | 1100 мкА | -40…105 | 3 кбайта | LGA-14L 2,5x3x0,83 мм |
ISM330DLC 6-осевой IMU | Ускорение: (±2g, ±4g, ±8g, ±16g) Угловая скорость**: (±125 dps, ±250 dps,±500 dps, ±1000 dps, ±2000 dps) | 500 мкА при использовании гироскопа и акселерометра | -40…85 | 4 кбайта | LGA-14L 2,5x3x0,83 мм |
ISM330DHCX 6-осевой IMU | Ускорение: (±2g, ±4g, ±8g, ±16g) Угловая скорость: (±125 dps, ±250 dps, ±500 dps, ±1000 dps, ±2000 dps, ±4000 dps) | 700 мкА при использовании гироскопа и акселерометра | -40…105 | 9 кбайт | LGA-14L 2,5x3x0,83 мм |
*– 1g = 9,81 м/с 2 **– 1 dps = 1°/сек |
Теория измерения углов наклона
Измерение угла наклона акселерометром основано на измерении проекции вектора силы тяжести на ось измерения. Стоит иметь в виду, что акселерометр измеряет не только ускорение свободного падения, но и другие параметры: постоянное ускорение устройства, центростремительное ускорение за счет вращения устройства, вибрации. Эти дополнительные ускорения также проецируются на оси датчиков акселерометра и не могут быть легко отделены от ускорения свободного падения, что приводит к ошибке измерения. Поэтому для получения достоверных результатов необходимо проводить измерения только в статических или квазистатических условиях. Для других применений требуется использование динамических инклинометров и других методов измерений.
В статических или квазистатических условиях можно использовать три метода определения наклона в зависимости от количества осей измерения:
1. Использование одной оси акселерометра
При таком измерении датчик вращается вокруг одной фиксированной оси, ортогональной вектору силы тяжести (рисунок 2):
Рис. 2. Вращение датчика вокруг одной оси
Значение на выходе акселерометра будет равняться синусу угла наклона α – угла между горизонтальной плоскостью и осью измерения. Таким образом, угол наклона можно рассчитать по формуле:
где AX – выходное значение акселерометра (проекция ускорения на ось измерения), g – ускорение свободного падения (9,81 м/с 2 ).
При измерении угла таким методом проявляются два недостатка: во-первых, величина чувствительности не является постоянной во всем диапазоне углов, а во-вторых, невозможно охватить полный угол в 360°. На рисунке 3 продемонстрировано изменение чувствительности измерения при изменении наклона. Видно, что чувствительность максимальна при наклоне около 0° и уменьшается с его увеличением.
Рис. 3. Изменение выходных данных акселерометра при изменении угла наклона
Проблема с охватом полного угла 360° при одноосном методе вызвана тем, что выходной сигнал акселерометра одинаков для угла α и угла π — α (рисунок 4). Следовательно, диапазон измерения составляет от -90° до 90°.
Рис. 4. Измерение углов α и π — α при одноосном методе
2. Использование двух осей акселерометра
Пример ориентации датчика при таком методе измерения представлен на рисунке 5:
Рис. 5. Измерение угла наклона по двум осям
Выходные значения по осям X и Y равны: AX= g×sin(α) и AY = g×cos(α). Как и в первом методе, можно вычислить обратный синус и обратный косинус, чтобы получить угол наклона, однако лучше использовать соотношение обоих показаний акселерометра, что соответствует тангенсу угла, и угол наклона вычислять с помощью арктангенса:
Преимущество использования такого расчета состоит в том, что чувствительность во всем диапазоне углов остается постоянной (рисунок 6).
Рис.6. Чувствительность при измерении наклона по двум осям
Кроме того, появляется возможность проводить измерения в полном диапазоне 360°, так как ориентацию можно распознать по полярности двух осей измерения, как показано на рисунке 7.
Рис. 7. Определение квадранта угла по двум осям
Таким образом, двухосный метод позволяет преодолеть недостатки первого метода измерений.
3. Использование трех осей акселерометра
Трехосное измерение наклона используется для измерения тангажа и крена во всем диапазоне 360° (рисунок 8).
Рис. 8. Использование трех осей при измерении наклона
Соотношения выходных сигналов трехосевого акселерометра и углов наклона α, β и γ представлены ниже:
$$A_
При использовании этих формул появляются те же недостатки, что и при измерении по одной оси, поэтому рекомендуется использовать при вычислении функцию арктангенса:
Источники ошибок и калибровка
Как и в любой электромеханической системе, на качество измерений акселерометров влияют такие факторы как шум, вибрация, смещение, дрейф температуры и т.д. Шум акселерометра возникает вследствие шума электроники, колебаний напряжения, ошибок АЦП и прочего. Естественный белый шум представлен плотностью шума в спецификации датчика. Даже при отсутствии собственного шума датчик может испытывать внешнюю вибрацию, которая портит сигнал. Точность измерений можно улучшить путем усреднения выходных данных по N выборкам, однако увеличение количества выборок увеличит задержку измерений.
От времени и температуры может меняться чувствительность датчика, ошибка чувствительности указывается в спецификации в процентах от младшего значащего разряда (LSB). Кроме этого, отклонения чувствительности характеризуют нелинейность датчика, которая указывается в спецификации как процент по отношению к полной шкале измерений: например, шкала ±2g и нелинейность 0,5% означают, что максимальная ошибка составляет 0,5% от 4g, то есть 2 mg. В случае неортогональных осей измерения может быть существенной ошибка кросс-осевой или поперечной чувствительности, возникающая, когда при ускорении по одной оси датчик измеряет некоторую часть ускорения и на другой оси. Ухудшать точность измерения наклона может также и некорректное расположение датчика: поворот корпуса акселерометра относительно печатной платы, т.е. несоосность датчика в конечном устройстве.
Смещение (постоянный уровень сигнала акселерометра при отсутствии ускорения) может меняться вследствие термических напряжений во время пайки, изменения температуры, старения и других факторов. С увеличением смещения ошибка измерений хотя бы по одной оси при разных углах будет возрастать, что приведет к увеличению общей ошибки, поэтому рекомендуется выполнять калибровку акселерометра.
В спецификациях указывается отклонение смещения при изменении температуры. MEMS-датчики компании ST имеют стабильные характеристики при изменении температуры, обычно не требуют температурной компенсации и хорошо откалиброваны при комнатной температуре (25°C). В отдельных случаях можно применить простую процедуру компенсации смещения: для этого нужно измерить сигнал с датчика в зафиксированном положении при двух разных температурах, отличающихся хотя бы на 10°C, вычислить коэффициент наклона прямой, полученной по двум значениям, и использовать вычисленное значение как поправочный коэффициент.
Для уменьшения ошибки смещения и повышения точности измерений можно выполнить заводскую калибровку датчика с использованием программных библиотек ST. Для таких применений как поворот экрана или обнаружение открытия/закрытия ноутбука дополнительная калибровка, как правило, не требуется. Однако в системах контроля уровня или автомобильных системах оповещения, когда нужна точность лучше 1°, рекомендуется калибровать акселерометр после его сборки в конечном устройстве.
Калибровка может осуществляться двумя методами: компенсацией смещения и усиления и методом наименьших квадратов. Первый метод наиболее прост и основан на установке датчика в нескольких положениях (рисунок 9).
Рис. 9. Расположение датчика при калибровке
Датчик необходимо размещать таким образом, чтобы вектор силы тяжести проецировался одновременно на одну измерительную ось. Затем это повторяется для всех осей в положительной и отрицательной ориентации. Это обеспечивает n*2 позиций, где n – количество осей. По показаниям датчика во время такой процедуры можно вычислить ошибки и учитывать их в виде поправочных коэффициентов.
Специализированные промышленные MEMS-инклинометры ST
Применение акселерометра для измерения наклона может быть целесообразным в некоторых приложениях, чувствительных к стоимости, но в промышленности, в жестких условиях эксплуатации, необходимо использовать специально предназначенные для измерения угла устройства – инклинометры. Кроме того, акселерометры подходят только для измерений в статических условиях, в случае дополнительных ускорений необходимо использовать динамические инклинометры.
Компания ST выпускает промышленные MEMS-инклинометры IIS2ICLX, IIS3DHHC для статических измерений и динамические инклинометры ISM330DHCX, ISM330DLC. Основные параметры этих датчиков и их особенности приведены в таблице 2.
Таблица 2. Параметры и особенности промышленных инклинометров компании ST
Название, корпус и размеры | Диапазон измерений | Чувствительность | Частота выходных данных (ODR) | FIFO | Особенности |
---|---|---|---|---|---|
IIS2ICLX 2-осевой инклинометр CC LGA-16 5x5x1,7 мм | ±0,5g | 0,015 mg | 12,5…833 Гц | 3 кбайта |
|
±1g | 0,031 mg | ||||
±2g | 0,061 mg | ||||
±3g | 0,122 mg | ||||
IIS3DHHC 3-осевой инклинометр CC LGA-16 5x5x1,7 мм | ±2,5g | 0,076 mg | 1,1 кГц | 32 16-битных ячейки памяти |
|
±2g | 0,061 mg | ||||
±4g | 0,122 mg | ||||
±8g | 0,244 mg | ||||
±16g | 0,488 mg | ||||
Угловая скорость | 12,5…6664 Гц | ||||
±125 dps | 4,375 mdps | ||||
±250 dps | 8,75 mdps | ||||
±500 dps | 17,5 mdps | ||||
±1000 dps | 35 mdps | ||||
±2000 dps | 70 mdps | ||||
ISM330DHCX 6-осевой IMU LGA-14L 2,5x3x0,83 мм | Ускорение | 1,6…6667 Гц |
| ||
±2g | 0,061 mg | ||||
±4g | 0,122 mg | ||||
±8g | 0,244 mg | ||||
±16g | 0,488 mg | ||||
Угловая скорость | 12,5…6667 Гц | ||||
±125 dps | 4,375 mdps | ||||
±250 dps | 8,75 mdps | ||||
±500 dps | 17,5 mdps | ||||
±1000 dps | 35 mdps | ||||
±2000 dps | 70 mdps | ||||
±4000 dps | 140 mdps |
При выборе подходящего инклинометра необходимо обращать внимание в первую очередь на диапазон измерений и разрешение (чувствительность). Диапазон измерений следует выбирать с запасом так, чтобы минимальный и максимальный углы наклона, которые планируется замерять, оставались в границах диапазона измерения датчика. Например, если применение требует измерения диапазона наклона от -90 до 90°, рекомендуется выбрать датчик с минимальной шкалой измерений 2g. Важен также и минимально возможный диапазон датчика, когда требуется получить максимальную чувствительность и измерять угол с высоким разрешением.
Уровень шума – один из главных ограничивающих факторов при определении разрешения. Датчик будет распознавать изменения только в том случае, если амплитуда измеряемого движения выше уровня шума датчика. Таким образом, сначала необходимо определиться с нужной полосой пропускания, а затем подобрать подходящий по частоте дискретизации (Output data rates, ODR) и разрешению датчик. Шум датчика или разрешение, которое можно получить от него при определенной частоте дискретизации, вычисляется как плотность шума (из спецификации), умноженная на √ПП, где ПП – полоса пропускания, обычно вдвое ниже частоты ODR. Как правило, чтобы минимизировать среднеквадратичный шум, выбирается узкая полоса пропускания, однако более высокая частота дискретизации обеспечит быстрый отклик и даст возможность дополнительного усреднения шума основным процессором.
Точность измерений инклинометра определяется отклонением смещения и чувствительности, а также стабильностью по температуре. Несмотря на то, что смещение и ошибку чувствительности можно устранить заводской калибровкой, необходимо следить за этими параметрами в течение срока службы (в спецификации указаны изменения параметров датчика после выполнения однократной калибровки).
В таблице 3 приведены основные параметры точности из спецификаций датчиков. Здесь указаны максимальные значения, типичные значения, как правило, несколько ниже.
Таблица 3. Параметры точности инклинометров ST
Параметр/Наименование | IIS2ICLX | IIS3DHHC | ISM330DLC | ISM330DHCX |
---|---|---|---|---|
Ошибка чувствительности (% от LSB) | ±2% | ±7% | ±3%* ±3%** | ±2%* ±2%** |
Изменение чувствительности с температурой | ±0,012 %/°C | ±1,35 %/°C | ±0,024 %/°C* ±0,048 %/°C** | ±0,01 %/°C* ±0,015 %/°C** |
Смещение нулевого уровня | ±8 mg | ±35 mg | ±85 mg* ±2 dps** | ±65 mg* ±3 dps** |
Отклонение смещения нулевого уровня с температурой | ±0,075 mg/°C | ±0,4 mg/°C | ±0,1 mg/°C* ±0,015 dps/°C** | ±0,5 mg/°C* ±0,015 dps/°C** |
Плотность шума | 30 µg/√Гц | 65 µg/√Гц | 230 µg/√Гц* 11 mdps/√Гц** | 100 µg/√Гц* 8 mdps/√Гц** |
Нелинейность (% от шкалы измерений) | 0,1% | 2% | 2%* (для ±8g)±0,07%** (для ±2000 dps) | Не указана |
* – Для линейного ускорения ** – Для угловой скорости |
Инклинометры IIS2ICLX и ISM330DHCX (с буквой Х в конце названия) имеют ядро машинного обучения (рисунок 10), которое позволяет интегрировать часть вычислительных алгоритмов в датчик, снижая тем самым нагрузку на основной процессор. Ядро машинного обучения сравнивает полученные датчиком данные с шаблонами, заданными пользователем. Так датчик может самостоятельно распознавать сильные вибрации, сложное движение, обнаружить активность и т.д. Входными данными могут быть показания внешних устройств (от внешнего гироскопа или дополнительного инклинометра, датчика температуры или давления), подключенных по интерфейсу SPI. Датчики IIS2ICLX и ISM330DHCX позволяют настроить до восьми одновременных и независимых потоков, каждый и которых может генерировать до 256 результатов и может служить источником прерывания. Результаты обработки ядром машинного обучения доступны в специальных выходных регистрах, которые можно прочитать с помощью процессора в любое время.
Рис. 10. Обработка данных ядром машинного обучения датчиков IIS2ICLX и ISM330DHCX
Для генерации прерываний в этих двух инклинометрах может использоваться программируемый конечный автомат, с помощью которого можно запрограммировать 16 независимых прерываний. В качестве данных для проверки условий прерывания могут быть использованы как показания самого датчика, так и показания внешних устройств. Прерывание генерируется при достижении конечного состояния или при выполнении определенной команды.
Инструменты для работы с инклинометрами
Для работы с MEMS-датчиками компания ST разработала материнскую плату STEVAL-MKI109V3 (рисунок 11) с микроконтроллером ARM Cortex-M4 STM32F401VE. Датчики подключаются к этой плате с помощью специальных плат-адаптеров DIL24 (рисунок 12):
В качестве программной поддержки можно использовать пакет Unico GUI, доступный для операционных систем Windows, Mac и Linux (Debian). Unico GUI – это графический интерфейс пользователя, взаимодействующий с платой STEVAL-MKI109V3 и позволяющий быстро и легко настроить датчики, а также полностью настроить все регистры и дополнительные функции (такие как ядро машинного обучения, конечный автомат, шагомер и т.д.). Unico GUI визуализирует выходные данные датчиков как в графическом, так и в числовом формате и позволяет пользователю сохранять и управлять данными, поступающими с датчиков.
Рис. 11. Материнская плата STEVAL-MKI109V3
Рис. 12. Платы-адаптеры DIL24 с датчиками IIS2ICLX, IIS3DHHC, ISM330DLC, ISM330DHCX (слева направо)
Другой вариант работы с MEMS-датчиками – это комбинация микроконтроллерной платы STM32 Nucleo с платой расширения для MEMS-датчиков (рисунок 13). В этом случае для аппаратной конфигурации можно использовать программный пакет X-CUBE-MEMS1, который содержит все библиотеки анализа движения и управления датчиками, а также множество примеров реализованных программ. Для визуализации данных предлагается многофункциональное приложение Unicleo GUI, доступное только для операционных систем Windows. Основная цель Unicleo GUI – продемонстрировать функциональность датчиков и алгоритмов ST.
Рис. 13. Микроконтроллерная плата NUCLEO-F401RE (слева) и плата расширения X-NUCLEO-IKS01A2 (справа)
Для IoT-применений компания выпустила специальную отладочную плату STEVAL-STWINKT1 с установленными Bluetouth-модулем и различными MEMS-датчиками, в числе которых ISM330DHCX, IIS3DWB, IIS2DH.
Библиотеки для измерения углов наклона MotionTL, MotionTL2, MotionDI
Библиотеки MotionTL, MotionTL2 и MotionDL, входящие в состав программного пакета X-CUBE-MEMS1, предназначены для анализа данных с инклинометров и предоставляют информацию об углах наклона в режиме реального времени через графический интерфейс Unicleo, а также позволяют выполнять калибровку датчиков. Эти библиотеки разработаны на основе библиотек STM32Cube и могут быть использованы для ARM-микроконтроллеров STM32 семейств Cortex-M3, Cortex-M4, Cortex-M7 и Cortex-M0+.
Библиотека MotionTL используется для трехосевых акселерометров и имеет два режима предоставления данных:
- вычисление тангажа, крена и наклона относительно вектора гравитации (рисунок 14);
- вычисление углов наклона theta, psi и phi (рисунок 15).
Для мониторинга данных в реальном времени требуется подключение через USB-кабель. Это позволяет пользователю отображать в реальном времени рассчитанные углы наклона, данные акселерометра, отметки времени и другие данные датчиков с помощью графического интерфейса пользователя Unicleo. При необходимости библиотека также может выполнять 6-позиционную калибровку акселерометра. Параметры калибровки (смещение и усиление для всех трех осей) отображаются в графическом интерфейсе пользователя Unicleo и сохраняются во flash-памяти микроконтроллера. Сохраненные калибровочные коэффициенты автоматически загружаются и используются при следующем включении платы.
Рис. 14. Окно расчета тангажа (Pitch), крена (Roll) и наклона относительно вектора гравитации (Gravity Inclination) с помощью библиотеки MotionTL в графическом интерфейсе Unicleo
Рис. 15. Окно расчета углов наклона theta, psi и phi с помощью библиотеки MotionTL в графическом интерфейсе Unicleo
MotionTL2 реализует алгоритм вычисления наклона для оценки ориентации одной или двух осей в пространстве. Библиотека имеет настройку снижения воздействия вибрации, в ней имеются два режима вычисления:
- Одноплоскостной режим: измеряется угол оси X по отношению к горизонтальной плоскости против часовой стрелки. Наклон и плоскость датчика всегда должны быть в одной плоскости (рисунок 16).
Рис. 16. Одноплоскостной режим измерения с помощью библиотеки MotionTL2 в графическом интерфейсе Unicleo
- Двухплоскостной режим: вычисляется угол между осью X, осью Y и горизонтальной плоскостью, а также вычисляется угол между горизонтальной плоскостью и плоскостью осей X, Y датчика (рисунок 17).
Рис. 17. Двухплоскостной режим измерения с помощью библиотеки MotionTL2 в графическом интерфейсе Unicleo
Библиотека MotionDI (рисунок 18) использует данные от акселерометра и гироскопа и выполняет вычисления вектора вращения, кватернионов, углов Эйлера и линейного ускорения. Кроме калибровки акселерометра, библиотека предоставляет возможность калибровки гироскопа.
В библиотеке MotionDI применяется цифровой фильтр, основанный на теории фильтра Калмана, для объединения данных с нескольких датчиков и компенсации ограничений каждого из них. Например, поскольку дрейф данных гироскопа может повлиять на оценку ориентации, акселерометр можно использовать для получения информации об абсолютном угле наклона.
Рис. 18. Окно расчета тангажа и крена с помощью библиотеки MotionDI в графическом интерфейсе Unicleo
Рис. 19. Окно расчета вектора ориентации с помощью библиотеки MotionDI в графическом интерфейсе Unicleo
В таблице 4 приведены сводные параметры трех библиотек. Стоит отметить, что компания ST также разработала ряд других программных библиотек, входящих в состав пакета X-CUBE-MEMS1 и упрощающих разработку программного кода обработки данных с MEMS-датчиков: MotionAC для калибровки акселерометров, MotionAR для обнаружения активности, MotionID для определения интенсивности движения и другие.
Таблица 4. Сводные характеристики библиотек
Библиотека | MotionTL | MotionTL2 | MotionDI |
---|---|---|---|
Назначение | Трехосевые инклинометры | Двухосевые инклинометры | Динамические инклинометры |
Требуемые ресурсы: микроконтроллер и память программ | Cortex-M0+ 4,0 кбайта Cortex-M3 3,6 кбайта Cortex-M4 3,3 кбайта Cortex-M7 3,2 кбайта | Cortex-M0 + 1,9 кбайта Cortex-M3 1,9 кбайта Cortex-M4 1,8 кбайта Cortex-M7 1,7 кбайта | Cortex-M3 56,1 кбайта Cortex-M4 48,7 кбайта Cortex-M7 46,5 кбайта |
Память данных | 0,1 кбайта | 0,1 кбайта | 6,2 кбайта |
Поддерживаемые платы | NUCLEO-F401RE, NUCLEO-L476RG, NUCLEO-L152RE, NUCLEO-L073RZ платы расширения, X-NUCLEO-IKS01A2, X-NUCLEO-IKS01A3 | NUCLEO-F401RE, NUCLEOL476RG, NUCLEO-L152RE, NUCLEO-L073RZ, платы расширения STEVAL-MKI209V1K | NUCLEO-F401RE, NUCLEO-L476RG, NUCLEO-L152RE, платы расширения X-NUCLEO-IKS01A2, X-NUCLEO-IKS01A3 |
Заключение
В статье рассмотрены MEMS-акселерометры и инклинометры компании ST и их основные характеристики. Компания предлагает различные варианты программных и аппаратных средств, которые позволяют оценить возможности датчиков и сократить затраты на их интеграцию в готовую продукцию. Кроме этого, на все рассмотренные датчики действует программа 10-летней гарантии выпуска.
Источник