Страницы

Поиск по вопросам

среда, 5 декабря 2018 г.

Измерение магнитной индукции сенсорами смартфона

Я не сильна в физике и, в связи с этим, у меня возник вопрос о том, как программно реализовать измерение магнитной индукции сенсорами мобильных устройств? В частности, как можно реализовать это на устройствах на базе Windows Phone и Windows 10 Mobile?


Ответ

К магнитометру на Windows 10 Mobile можно легко получить доступ с помощью такого простого кода:
var magnetometer = Windows.Devices.Sensors.Magnetometer.GetDefault(); if (magnetometer != null) { magnetometer.ReportInterval = 500; magnetometer.ReadingChanged += (Magnetometer sender, MagnetometerReadingChangedEventArgs args) => { System.Diagnostics.Debug.WriteLine("X: {0} Y: {1} Z:{2}", args.Reading.MagneticFieldX, args.Reading.MagneticFieldY, args.Reading.MagneticFieldZ); }; }
Как из данного вектора получить гауссы или теслы, оставлю для исследования Вам.
Проверял на Lumia 950, подносил неодимовый магнит (достаточно мощный), магнитометр начинает реагировать на него сантиметров с 15, но данные меняются немного стохастически (но меняются 100%).
С большой степенью вероятности, будет работать и на других W10M телефонах.
Касательно же точности и чувствительности сенсора, встроенного в телефон, я не уверен (нет данных); если есть потребность в высокой точности, то, боюсь, придется использовать внешний высокоточный сенсор с микрокопьютером типа RaspberyPi (а связь с телефоном организовать через TCP/IP или BT).

Комментариев нет:

Отправить комментарий