2016-03-15 61 views
3

在我的應用程序中,我想檢測周圍的磁場/電磁場有多強。我想要實現的是測量磁場變化,以瞭解它是否比控制測量更強或者更低。這是我的代碼:使用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,它有幾乎相同的代碼和完全相同的問題。

回答

2

當然可以,磁場必須非常強大!

您的第一個限制可能是硬件。如In iOS, what is the difference between the Magnetic Field values from the Core Location and Core Motion frameworks?所述,這些原始值的範圍可能是有限的。在某些硬件和iOS版本中,將其限制爲-128至+128微圖。在iPhone 6上,我可以在該範圍之外獲得microtelsa讀數,但這不一定有幫助。蘋果公司似乎沒有提供任何關於磁力計讀數精度的參考,我們可以測量出nanotela的值,但我們得到的結果可能是無意義的噪音。

地球表面的磁場爲25 to 65 microteslas。你希望測量的任何場都需要比期望的測量距離明顯更強。你想測量什麼?它是否足夠強大,可以將羅盤針移動到您想要測量的距離?

+0

事情是我想測量磁場的大小的三角洲,只是讓我們說它變得更強或更弱。 –

+1

@IvanNesterenko對了,問題就變成了;該設備可測量的最小可檢測增量是多少?這意味着您需要達到多遠?當我運行蘋果的示例應用程序時,我看到組件的差異至少爲+/- 1微特技拉。由於您的目標領域,您將很難檢測到1 microtesla或更少的變化。考慮到該領域的實力,您需要多長時間才能讓該設備註冊至少幾微microtes更改? – Jonah

相關問題