В моем приложении я хочу определить, насколько сильны окружающие магнитные/электромагнитные поля. То, что я хочу достичь, - измерить изменение магнитного поля, чтобы знать, если оно сильнее, чем в контрольных измерениях, или если оно ниже. Это мой код:Использование устройства iOS в качестве тесламетра (обсуждение магнитометра)
- (void)setupLocationManager {
self.locationManager = [[CLLocationManager alloc] init];
if ([CLLocationManager headingAvailable] == NO) {
self.locationManager = nil;
} else {
self.locationManager.headingFilter = kCLHeadingFilterNone;
self.locationManager.delegate = self;
[self.locationManager startUpdatingHeading];
}
}
// CLLocationManagerDelegate
- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)heading {
CGFloat magnitude = sqrt(heading.x * heading.x + heading.y * heading.y + heading.z * heading.z);
if (self.defaultMagnitudeValue == 0.f) {
self.defaultMagnitudeValue = magnitude;
}
self.curentMagnitudeValue = magnitude;
}
значение Магнитуда реагирует на магнитные поля, окружающие устройства, то проблема является то, что вам нужно быть ДЕЙСТВИТЕЛЬНО близко к источнику такого поля.
Итак, вопрос: есть ли возможность приложения iOS для измерения магнитных полей на расстояниях более 10-20 сантиметров? Если да, то как?
P.S .: Я также проверил Teslameter App от Apple, у него почти такой же код и все те же проблемы.
Дело в том, что я хочу измерить дельту величины магнитного поля, просто скажем, она стала сильнее или слабее. –
@IvanNesterenko право поэтому вопрос становится; какова наименьшая обнаруживаемая дельта в той величине, которую устройство может измерить и насколько близко это означает, что вам нужно быть источником? Когда я запускаю пример приложения Apple, я вижу компоненты, которые отличаются не менее +/- 1 microtesla. Вам будет очень сложно обнаружить изменения в 1 microtesla или меньше из-за вашего целевого поля. Учитывая силу поля, насколько близко вам нужно, чтобы устройство регистрировало хотя бы несколько изменений в microtesla? – Jonah