2010-11-27 4 views
4

에서 정보 및점점 내가 센서 값에 대해 듣고있어 자기 센서

if (event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD) { 
     for (i=0;i<3; i++) mag[i] = event.values[i]; 

내 처리기에서 확인을 받고이 문서는 Sensor.TYPE_MAGNETIC_FIELD 말할 개발자는 당신이 얻을 : "모든 값은 마이크로에 테슬라 (uT)를 측정하고 X, Y 및 Z 축의 주변 자기장을 측정합니다. "

어떻게 정보를 방위각, 피치 및 롤로 바꿀 수 있습니까? 어떻게 그것을 나침반 자기 방향으로 변환합니까?

ORIENTATION 센서에서 얻을 수있는 정보와 매트릭스 변환을 수행 한 후 ACCELEROMETER 센서에서 얻는 정보 만 제공합니까? 당신이 가속도계에 액세스 할 수있는 경우

답변

3

, 당신은 두 개의 센서에서 결정하고, getRotationMatrix() 방법을 통해 계산 된 방위각, 피치 및 롤을 반환 getOrientation() 방법을 사용할 수 있습니다. 의견에

응답을 편집

... 난 지금 당신의 질문을 참조하십시오. 죄송합니다. 3 축 자력계 만 있으면 장치가지면과 평행을 이룰 때를 제외하고는 방위각, 피치 및 롤을 정확하게 얻을 수 없습니다. 바늘 나침반을 사용하고 a) 스핀들을 사용하여 기울기를보고 수동으로 보정 할 수 있도록하거나 b) 액체로 밀봉하여 버블 레벨을 중앙으로 가져갈 수 있습니까? 방위각을 얻으려면 :

이제 휴대 전화를 기울이면 x/y 평면 감지의 오류가 커질 수 있습니다. 이제 (가속도계로) 기울기를 파악한 다음 Z 축 자기장을 측정 한 다음 3 가지를 사용하여 보정해야합니다. 이것은 본질적으로 getRotationMatrix() 및 getOrientation()으로 알고 있습니다.

Sensor.TYPE_ORIENTATION이 (가) API 8에서 더 이상 사용되지 않는 이유 중 하나는 그 자체 인이 없기 때문입니다. 자기장과 가속도 감지의 조합입니다.

내가 모든 것을 덮는 발굴 좋은 용지 :

http://www.ssec.honeywell.com/position-sensors/datasheets/sae.pdf

+0

이해했다. 제 질문은 "X, Y 및 Z 축의 주변 자기장에 유용한 값을 어떻게 사용합니까?" –

+0

당신은 !! 휠을 다시 발명하는 대신 오리엔테이션 센서 및 회전 매트릭스를 사용하면됩니다. – TheCodeArtist