Контроль положения объектов с магнитометрами STMicroelectronics

15 октября

автомобильная электроникапотребительская электроникаинтернет вещейSTMicroelectronicsстатьядатчикисредства разработки и материалыМЭМСУмный домМагнитометрe-Compass

Константин Кузьминов (г. Заполярный)

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

Умный дом – это совокупность технологий, способная частично или полностью взять на себя некоторые обязанности, за которые раньше приходилось отвечать жильцу. Умная бытовая техника, автоматизированные двери и окна, учет ресурсов, системы охранной и пожарной безопасности – все это призвано сделать проживание более удобным и комфортным за счет реакций и действий вследствие сбора, обмена и обработки информации. В том числе – информации от датчиков.

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

Один из способов, сочетающий в себе простоту и надежность – использование магнитометров. Способность магнитометра оценивать величину и направление магнитных полей и генерировать событие в случае их изменения делает его удобным и экономичным датчиком для контроля положения объектов. Анализ показаний магнитометра совместно с данными от акселерометрического датчика минимизирует погрешность получаемых результатов измерений.

Компания STMicroelectronics представляет линейку e-Compass, состоящую как из совмещенных с акселерометром датчиков, так и отдельных магнитометров (таблица 1).

Таблица 1. Датчики линейки e-Compass

Наименование Корпус Ускорение, g Магнитная индукция, гаусс Питание, В Режимы потребления, мкА
Мин. Тип. Макс. Нормальный Пониженного потребления Энерго-сберегающий
IIS2MDC LGA 2X2X0.7 49 1,71 2,5 3,6 1130 25 1,5
ISM303DAC LGA 2X2X1 ±2, ±4, ±8, ±16 49,152 1,71 1,98 1180 25 2,5
LIS2MDL LGA 2X2X0.7 49,152 1,71 2,5 3,6 200 50 1,5
LIS3MDL VFLGA 2X2X1 16 1,9 3,6 270 40 1
LSM303AGR LGA 2X2X1 ±2, ±4, ±8, ±16 50 1,71 3,6 200 50 2
LSM303AH LGA 2X2X1 ±2, ±4, ±8, ±16 30 1,71 1,8 1,98 200 50 2,5

Все датчики e-Compass измеряют магнитное поле по трем осям, имеют цифровой интерфейс SPI/I2C и выход прерывания. Работают в температурном диапазоне -40…85°C. Несмотря на то, что корпуса исполнены в трех вариантах, количество выводов одинаково у всех микросхем – 12. Все, кроме LIS3MDL, соответствуют друг другу по основным сигналам, что позволяет в случае необходимости смены датчика минимизировать затраты на изменение проекта, а в некоторых случаях и вовсе исключить.

Что же позволяет магнитометрам эффективно оценивать магнитное поле? Обычный мост Уитстона для каждой оси измерения (рисунок 1). Однако он построен на анизотропной магниторезистивной технологии (AMR). Ее суть заключается в том, что внешнее магнитное поле вызывает изменение сопротивления элементов моста, изготовленных из ферромагнитного материала (сплав NiFe, или пермаллой). Изменение сопротивления зависит от направления магнитного поля, а не от его интенсивности, то есть расстояние до источника магнитного поля практически не имеет значения.

Рис. 1. Блок-схема магнитометра LIS2MDL

Рис. 1. Блок-схема магнитометра LIS2MDL

Вычисление наклона

Библиотека MotionFX, встроенная в программный пакет X-Cube-MEMS1, обеспечивает слияние данных магнитометра и акселерометра, ускоряет и упрощает вычисление ориентации микросхемы в пространстве, однако ее использование увеличивает объем программы, в сравнении с самостоятельной реализацией. Кроме того, ее исходный код недоступен и работает она лишь в семействе MCU STM32. Поэтому разберем возможность самостоятельного расчета на основе данных магнитометра и акселерометра.

Чтобы показать, как рассчитать изменение положения объекта в пространстве, например, угол, изменяющийся при открывании двери, вспомним некоторые базовые термины: крен, тангаж и рысканье. Чаще всего подобная терминология встречается в авиации, и это не случайно: летательный аппарат меняет свое положение относительно всех трех осей координат, и, если представить себя за штурвалом самолета, то поворот влево-вправо – это рысканье (угол Psi), наклон с одного крыла на другое – крен (угол Phi), и наклон вниз-вверх – тангаж (угол Theta).

Приведенные ниже рисунок 2 и таблица 2 могут использоваться как справочная информация для определения выходных данных датчика при изменении углов крена, тангажа и рысканья.

Компания STMicroelectronics предлагает четыре шага для вычисления данных угла [1]:

Шаг 1. Вычисление угла крена Phi на основе данных акселерометра (Gx, Gy и Gz; единицы измерения не имеют значения; G принята как вектор гравитации, а не гравитационная постоянная) осуществляется по формуле 1:

Крен Phi = atan2 (Gy, Gz) (1)

Примечание. Если угол тангажа Theta = ±90о, то Gy и Gz близки к нулю и значение Phi нестабильно. В этом случае Gz можно заменить на Gz + Gx × ɑ, где ɑ = 0,01 – 0,05.

Шаг 2. Вычисление угла тангажа Theta на основе данных акселерометра (Gx, Gy и Gz; единицы измерения не имеют значения) выполняется по формуле 2:

Gz2 = Gy * sin (Phi) + Gz * cos(Phi)

Тангаж Theta = atan(-Gx / Gz2) (2)

Примечание. Если Theta = ±90о, то Gy и Gz стремятся к нулю, соответственно, Gz2 также стремится к нулю, а деление на ноль не должно выполняться. Theta = -90°, если Gx > 0, и Theta = +90°, если Gx <0; Gx не может быть нулевым.

Шаг 3. Вычисление угла рыскания Psi на основе данных магнитометра (Bx, By и Bz; единицы измерения не имеют значения) высчитывается по формуле 3:

By2 = Bz * sin(Phi) — By * cos(Phi)

Bz2 = By * sin(Phi) + Bz * cos(Phi)

Bx3 = Bx * cos(Theta) + Bz2 * sin(Theta)

Рыскание Psi = atan2(By2, Bx3) (3)

Примечание. Если Theta = ±90° и если значение Phi нестабильно, Psi также будет нестабильным. Если Phi сделать стабильным, как указано выше в примечании к Шагу 1, то Psi также будет стабильным. Независимо от этого, сумма Phi + Psi всегда будет стабильной. Это объясняется тем, что если Theta = ±90°, Phi и Psi будут описывать вращение вокруг одной и той же вертикальной оси (теряется одна степень свободы, это также известно как «блокировка кардана»). Psi + Phi будет корректно, когда Theta = -90°, а также Psi – Phi будет корректно, когда Theta = +90°.

Шаг 4 (не обязательный). Преобразование углов Эйлера в кватернионы высчитывается по формуле 4:

Qw = cos(Phi / 2) * cos(Theta / 2) * cos(Psi / 2) + sin(Phi / 2) * sin(Theta / 2) * sin(Psi / 2)

Qx = sin(Phi / 2) * cos(Theta / 2) * cos(Psi / 2) — cos(Phi / 2) * sin(Theta / 2) * sin(Psi / 2)

Qy = cos(Phi / 2) * sin(Theta / 2) * cos(Psi / 2) + sin(Phi / 2) * cos(Theta / 2) * sin(Psi / 2)

Qz = cos(Phi / 2) * cos(Theta / 2) * sin(Psi / 2) — sin(Phi / 2) * sin(Theta / 2) * cos(Psi / 2) (4)

Следует учесть, что данные акселерометра нельзя использовать для измерения наклона (Phi и Theta), если продолжается высокое ускорение. Данные акселерометра можно использовать только тогда, когда Gx2 + Gy2 + Gz2 = 1, где Gx, Gy и Gz выражаются в g.

Рис. 2. Углы наклона: крен, рысканье, тангаж

Рис. 2. Углы наклона: крен, рысканье, тангаж

Таблица 2. Выходные данные для углов наклона рисунка 2

Крен, градус Тангаж, градус Рысканье, градус Acc. (вект. грав.),
G = 1 g = 1000 мg
Mag (магнит. поле Земли),
B = 10..90 мкTл = 100..900 мГс
0 0 0 0 0 +G +B cos(i) 0 +B sin(i)
+90 0 0 0 +G 0 +B cos(i) +B sin(i) 0
0 +90 0 -G 0 0 -B sin(i) 0 +B cos(i)
0 0 +90 0 0 +G 0 -B cos(i) +B sin(i)
+90 +90 0 -G 0 0 -B sin(i) +B cos(i) 0

Общий угол наклона относительно горизонтальной плоскости может быть получен из формулы скалярного или векторного произведения текущего вектора ускорения и вектора силы тяжести, направленного вниз. Вектор гравитации имеет компоненты x = 0, y = 0, z = 1.

Скалярное произведение двух векторов A и B, образующих угол Θ, вычисляется по формуле 5:

AB = |A| |B| cos(Θ) = AxBx + AyBy + AzBz (5)

Если A – текущее ускорение (Gx, Gy, Gz), а B – вектор гравитации, направленный вниз (x = 0, y = 0, z = 1), |G|cos(Θ) = Gz, то угол наклона = acos(Gz / |G|). Таким образом, через скалярное произведение векторов угол наклона высчитывается по формуле 6:

Угол наклона = acos(Gz / sqrt(Gx2 + Gy2 + Gz2)) (6)

Векторное произведение двух векторов A и B, образующих угол Θ, высчитывается, исходя из следующих значений:

C = AxB = |A| |B| N sin(Θ), где N – единичный вектор, ортогональный обоим векторам A и B.

Cx = AyBz – AzBy, Cy = AzBx – AxBz, Cz = AxBy – AyBx. Если A – текущее ускорение (Gx, Gy, Gz), а B – вектор гравитации, направленный вниз (x = 0, y = 0, z = 1), |C| = |G| sin(Θ) = sqrt(Gx2 + Gy2), поэтому угол наклона = asin (|C|/|G|). Из произведения векторов получаем формулу 7: 

Угол наклона = asin(sqrt(Gx2 + Gy2) / sqrt(Gx2 + Gy2 + Gz2)) (7)

Принимая во внимание шум измерения, функция asin более точна, если угол маленький (-45 < угол < +45), в то время как функция acos точнее, когда угол большой (-45 > угол > +45). Чтобы получить максимальную точность значений для всех углов, можно использовать функции atan или atan2 (формулы 8 и 9):

Угол наклона = atan(sqrt(Gx2 + Gy2) / Gz), если Gz = 0, atan (± бесконечность) = ± 90 (8)

Угол наклона = atan2(sqrt(Gx2 + Gy2), Gz), нет необходимости проверять Gz = 0 (9)

Если на микроконтроллере доступен блок с плавающей запятой (FPU), например, на Cortex-M4 в STM32F4 или STM32L4, то вычисления с векторами могут быть ускорены.

Если на микроконтроллере доступно однократное умножение, например, на Cortex-M3 в STM32F1, STM32L1 и STM32F3, то будет эффективным использование полиномиального приближения методом Хорнера. Наконец, простейшие микроконтроллеры могут выиграть от реализации CORDIC – только просмотра таблицы и операций сдвига и добавления. Грубо говоря, алгоритм CORDIC требует столько итераций, сколько битов точности. Также одновременно вычисляются две функции: sin&cos, atan2 и модуль.

Калибровка

Для магнитометров необходимо учитывать эффекты «твердого/мягкого» железа и наличие магнитных аномалий. Данные магнитометра нельзя использовать, если эти эффекты не компенсируются и/или присутствуют аномалии.

Эффекты твердого железа создаются постоянными магнитами или постоянно намагниченными ферромагнитными материалами на печатной плате. Это могут быть, например, реле, вибромоторы, аудиодинамики. Также обычно размагниченные конструкции из ферромагнитных материалов, такие как стальные элементы корпуса и крепеж, могут постоянно намагничиваться находящимися поблизости постоянными магнитами. Эти эффекты не зависят от времени. Поскольку все эти магнитные компоненты и соответствующие им магнитные поля неподвижны относительно печатной платы, их влияние на датчик будет постоянным, и показания магнитометра не изменятся от изменения его положения в пространстве. Для компенсации эффекта «твердого» железа достаточно определить смещения, которые необходимо вычесть из данных Bx/By/Bz.

Эффекты «мягкого» железа обычно появляются в результате образования геомагнитным полем временных магнитных полей в магнитомягких материалах конструкции, а также в результате движения тока в проводниках. Эти эффекты будут варьироваться, в зависимости от вращения датчика относительно внешних магнитных полей: геомагнитного и иных постоянных.

Поскольку влияние эффектов «мягкого» железа на измерения магнитометра зависит от его вращения, это означает, что для определенных направлений максимальное значение магнитного поля будет больше чем для других направлений. Эффекты «мягкого» железа должны быть компенсированы методом умножения матриц.

Ошибка установки и влияние эффекта «твердого» железа

Когда акселерометр и магнитометр идеально выравнены, компенсация наклона точна и выходной сигнал датчика соответствует истине. Это можно проверить, вращая платформу вместе с акселерометром и магнитометром вокруг вертикальной оси: крен и тангаж равны 0, рысканье соответствует значениям таблицы 2. Однако при любой ошибке установки магнитометра, например, при ненулевых кренах и дистанции магнитометра по отношению к акселерометру, значения рысканья не будут верны.

Важно отметить, что когда нет ошибки установки, выходные данные магнитометра X и Y изменяются по окружности, лежащей в горизонтальной плоскости (выход Z неизменен). Кроме того, если нет эффектов «жесткого» железа, центр окружности совпадает с осью Z. И наоборот, если магнитометр неидеально выровнен с акселерометром, данные магнитометра будут описывать круг, лежащий в наклонной плоскости (выход Z магнитометра изменяется). Кроме того, если магнитометр добавляет ложное смещение, данные магнитометра будут описывать окружность, центр которой не будет являться осью Z (рисунок 3).

Рис. 3. 2D-калибровка в горизонтальной плоскости (вращение вокруг вертикальной оси)

Рис. 3. 2D-калибровка в горизонтальной плоскости (вращение вокруг вертикальной оси)

открыть картинку в полном формате

На рисунке 3 ось вращения и данные акселерометра обозначены синим цветом, эталонная ошибка отсутствует. Данные магнитометра отображаются черным цветом, те значения, на которые влияют ошибки – красным, а с компенсацией ошибок – желтым. Если компенсация прошла успешно, значения действительно соответствуют идеальным справочным данным (изображения желтого и черного цветов совпадают).

В большинстве случаев будут присутствовать обе ошибки (ошибка установки и эффекты «твердого» железа). Алгоритм сначала компенсирует ошибку установки, пересчитав данные магнитометра таким образом, чтобы вышеупомянутая окружность находилась в горизонтальной плоскости, затем он компенсирует эффекты «твердого» железа, вычитая смещение так, чтобы центр окружности совпал с осью Z. Если ось вращения, обнаруженная акселерометром, не вертикальна, алгоритм дополнительно «повернет» данные магнитометра к необходимой плоскости, соответствующей идеальному случаю без ошибок (рисунок 4).

Рис. 4. 2D-калибровка в наклонной плоскости (ось вращения не вертикальна)

Рис. 4. 2D-калибровка в наклонной плоскости (ось вращения не вертикальна)

открыть картинку в полном формате

Возможности и ограничения алгоритма

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

Когда калибровка выполняется в двумерной наклонной плоскости (ось вращения не вертикальна), необходимы данные акселерометра. Акселерометр должен быть уже настроен и правильно установлен [2].

Магнитометр должен быть откалиброван [3], а его данные должны иметь компенсацию эффектов «твердого/мягкого» железа. Однако представленный здесь алгоритм может работать с несовершенными данными магнитометра (рисунок 5).

Рис. 5. 2D-калибровка в присутствии всех ошибок: ошибок установки, наличия эффектов «твердого» железа (смещение неизвестно) и «мягкого» железа (усиление известно)

Рис. 5. 2D-калибровка в присутствии всех ошибок: ошибок установки, наличия эффектов «твердого» железа (смещение неизвестно) и «мягкого» железа (усиление известно)

  • Если неизвестны эффекты «твердого» железа (смещения осей), то, зная напряженность магнитного поля Земли B и угол наклона, алгоритм может вычислить и компенсировать смещения. Даже если эффекты «жесткого» железа уже скомпенсированы, 2D-калибровка все равно может использоваться для уточнения компенсации. Это полезно, когда, например, после окончательного монтажа устройства 3D-калибровка становится невозможной).
  • Если влияние эффектов «мягкого» железа известно, но матрица данных эффектов должна быть диагональной: коэффициенты вне диагонали (коэффициенты усиления по поперечной оси) должны быть равны нулю и коэффициенты по диагонали (усиления по оси) должны быть известны. Это означает, что на данные магнитометра не должно влиять паразитное вращение, вызванное перекрестными помехами осей в датчике. Алгоритм, представленный в данной статье, должен иметь возможность правильно масштабировать каждую ось, чтобы изменить эллипсоид, который нельзя вращать, до сферы.

Генерация смоделированных данных и проверка производительности

Для генерации и проверки данных используется скрипт, созданный для MATLAB [4]. Предполагается, что данные акселерометра нормализованы путем деления на 1 g, так что вектор гравитации, измеренный датчиком, равен 1, а также данные магнитометра нормализованы делением на B, так что модуль магнитного поля Земли, измеренный датчиком, равен 1. Единственный параметр для данных магнитометра – это угол наклона магнитного поля Земли по отношению к горизонтальной плоскости (в скрипте mi = 60⁰).

Параметры для ошибок: крен и тангаж для ошибки установки (Rerr = 20⁰, Perr = 30⁰), эффекты «твердого» железа (HI = [0,1, -0,2, 0,3]) и эффекты «мягкого» железа (SI = [0,5, 1,2, 0,9]).

Параметры для 2D-калибровки: ось вращения (вращение = [0, 0,9, 0,9], не вертикально), количество точек в моделировании (N = 50) и углы поворота (0…315⁰, неполный круг).

На основе указанных параметров вычисляются три вектора: данные акселерометра (av), эталонные данные безошибочного магнитометра (mv) и данные магнитометра, подверженного ошибкам (mve). Сначала применяется вращение матрицы, затем обрабатываются эффекты «мягкого» железа и, наконец, эффекты «твердого» железа. Можно добавить некоторый гауссовский шум (10 мg RMS (среднеквадратичное значение шума) и 5 мГс RMS в примере скрипта). Если шум отсутствует, предполагаемая ошибка установки и эффекты железа будут идеально соответствовать параметрам моделирования.

2D-калибровка и компенсация ошибок

Описание алгоритма 2D-калибровки и компенсаций идет от самого простого к самому сложному случаю условий:

  • в горизонтальной плоскости (вертикальная ось вращения) и с компенсацией ошибки установки магнитометра (крен и тангаж) – это самый простой случай, притом данные акселерометра не нужны, но могут быть полезны;
  • то же, что и выше, но добавляется компенсация эффектов твердого железа, данные акселерометра не нужны, но могут быть полезны;
  • то же, что и в предыдущем случай, но плоскость наклонная (ось вращения под любым углом) – это наиболее сложный случай, и здесь данные акселерометра необходимы.

Оценка оси вращения

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

Ось вращения перпендикулярна плоскости данных акселерометра (na). Нормаль вычисляется функцией аппроксимации плоскости.

Доступны три различные функции аппроксимации плоскости, каждая из которых отличается надежностью и сложностью:

  • planefitls – на основе метода наименьших квадратов;
  • planefiteig – на основе собственных чисел;
  • planefiteig_simple – упрощенная.

Когда ось вращения вертикальна, данные акселерометра будут сгруппированы вокруг одной точки [0, 0, 1]. В этом случае следует игнорировать результат функции подгонки плоскости. Если среднее расстояние между центром масс и точками данных меньше значения среднеквадратичного шума, это означает, что ось вращения вертикальна. Когда ось вращения не вертикальна, вычисляется соответствующая матрица антивращения (derotM) и применяется к данным акселерометра (av).

Можно проверить качество аппроксимации плоскости, проверив, что данные повернутого акселерометра (avc) действительно находятся в горизонтальной плоскости: диапазон значений Z должен быть намного меньше диапазона значений X и Y.

2D-калибровка в горизонтальной плоскости, компенсация погрешности установки

Первым шагом является определение плоскости, соответствующей данным магнитометра, путем применения одной из вышеупомянутых функций аппроксимации плоскости. Как упоминалось выше, для данных акселерометра, если среднее расстояние от центра масс и точек данных меньше чем среднеквадратичный шум, точки данных группируются, и выходные данные функций аппроксимации плоскости не могут использоваться. Когда эти выходные данные считаются надежными, вычисляется соответствующая матрица антивращения (derotM) и применяется к данным магнитометра (mv).

Так же, как и для акселерометра, можно проверить качество аппроксимации плоскости, проверив, что данные повернутого магнитометра (mvc) действительно находятся в горизонтальной плоскости.

На этом этапе, если ось вращения вертикальна, ошибка установки полностью компенсируется.

2D-калибровка в горизонтальной плоскости, компенсация ошибок установки и эффектов «твердого» железа

Следующий шаг – определить центр окружности/эллипса, описанной данными повернутого магнитометра (mvc). Предоставляются две разные функции 2D-аппроксимации с разными возможностями, надежностью и сложностью:

  • ellipsoid_2D_fit – для окружности, эллипса или повернутого эллипса;
  • ellipsoid_2D_robust – только для повернутого эллипса.

Если ошибки установки нет, координаты X и Y центра окружности/эллипса (o2) представляют собой смещение, которое необходимо вычесть. Если ошибка установки есть или нужно вычислить также смещение Z (которое нужно вычесть), то для вычисления всех координат центра (o3) необходим опорный магнитный вектор mref, который зависит от угла «mi». Три вычитаемых смещения вычисляются путем обратного поворота центра (o3) – это оценка эффектов твердого железа (HIE).

На этом этапе, если ось вращения вертикальна, ошибка установки, а также эффекты «твердого» железа полностью компенсируются. 

2D-калибровка в наклонной плоскости, компенсация ошибок установки и эффектов твердого железа

Третий и последний шаг нужен только в том случае, если ось вращения не вертикальна. В этом случае данные магнитометра следует дополнительно повернуть, чтобы они находились в правильной плоскости (в той же плоскости, что и данные акселерометра). Дополнительное отклонение от вращения приведет к ложному повороту (рысканью), который необходимо вычислить и компенсировать. Для поиска поправочного коэффициента (Ycorr) используется метод Ньютона. Метод был изменен для конкретно этого приложения, чтобы завершить вычисление даже в случае стационарных точек и отклонить недопустимые решения.

На этом этапе, даже если ось вращения не вертикальна, ошибка установки, а также эффекты «твердого» железа полностью компенсируются.

Быстрый старт с магнитометром

Чтобы оценить возможности магнитометров, компания STMicroelectronics предлагает для STM32 Nucleo два варианта плат расширения:

Рис. 6. Плата расширения X-NUCLEO-IKS01A3

Рис. 6. Плата расширения X-NUCLEO-IKS01A3

Особенности X-NUCLEO-IKS01A3:

  • магнитометр LIS2MDL;
  • акселерометр и гироскоп LSM6DSO;
  • акселерометр LIS2DW12;
  • барометр LPS22HH;
  • датчик относительной влажности и температуры HTS221;
  • датчик температуры STTS751.

Особенности X-NUCLEO-IKS01A2:

  • магнитометр и акселерометр LSM303AGR;
  • акселерометр и гироскоп LSM6DSL;
  • барометр LPS22HB;
  • датчик относительной влажности и температуры HTS221.

Рис. 7. Плата расширения X-NUCLEO-IKS01A2

Рис. 7. Плата расширения X-NUCLEO-IKS01A2

Обе платы имеют:

  • DIL 24-контактный разъем для дополнительных адаптеров с датчиками;
  • бесплатную библиотеку для разработки программ и примеры, совместимые с STM32Cube, для всех датчиков;
  • функции концентратора (hub) I²C на датчике LSM6DSх;
  • совместимость с платами STM32 Nucleo;
  • разъем Arduino UNO R3;
  • соответствие RoHS и WEEE.

Подведем итог

Впервые эффект изменения электрического сопротивления материала в магнитном поле был обнаружен Уильямом Томсоном в 1856 году, немногим ранее (в 1843 г.) Чарльз Уитстон предложил мостовую схему измерения сопротивления. Но лишь появление полупроводников и MEMS-технологий позволило через полтора века совместить эти технологии в уже привычные нам магнито- и акселерометрические датчики.

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

Литература

  1. DT0058 Computing tilt measurement and tilt-compensated eCompass
  2. DT0053 6point tumble sensor calibration
  3. DT0076 Compensating for accelerometer installation error: zeroing pitch and roll for a reference orientation
  4. DT0103 Compensating for magnetometer installation error and hard-iron effects using accelerometer-assisted 2D calibration
  5. Voigt Josefin. Angular positioning of a door or window – using a MEMS accelerometer and a magnetometer
•••

Наши информационные каналы

О компании ST Microelectronics

Компания STMicroelectronics является №1 производителем электроники в Европе. Компоненты ST широко представлены в окружающих нас потребительских товарах – от iPhone до автомобилей разных марок. Лидеры индустриального рынка выбирают компоненты ST за их надежность и выдающиеся технические параметры. В компании ST работает 48 000 сотрудников в 35 странах. Производственные мощности расположены в 12 странах мира. Более 11 тысяч сотрудников заняты исследованиями и разработками – инновационное лидерство ...читать далее

Товары
Наименование
IIS2MDCTR (ST)
X-NUCLEO-IKS01A3 (ST)
X-NUCLEO-IKS01A2 (ST)
LIS2MDLTR (ST)
LIS2MDL (ST)
LIS3MDLTR (ST)
LSM303AHTR (ST)