Я не сильна в физике и, в связи с этим, у меня возник вопрос о том, как программно реализовать измерение магнитной индукции сенсорами мобильных устройств? В частности, как можно реализовать это на устройствах на базе 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).
Комментариев нет:
Отправить комментарий