Presentation is loading. Please wait.

Presentation is loading. Please wait.

Sensor 활용. Contents 1.SensorManager 활용. 2. 센서 종류 3. 방향 센서 활용방법. 4. Mixare Sample Review.

Similar presentations


Presentation on theme: "Sensor 활용. Contents 1.SensorManager 활용. 2. 센서 종류 3. 방향 센서 활용방법. 4. Mixare Sample Review."— Presentation transcript:

1 Sensor 활용

2 Contents 1.SensorManager 활용. 2. 센서 종류 3. 방향 센서 활용방법. 4. Mixare Sample Review.

3 1. SensorManager 활용.  Sensor : 센서를 통해 하드웨어의 속성을 기술하는 데 사용됨.  하드웨어 관련된 Sensor.TYPE_ 의 형태로 정의되어 있음.  센서 메니저 레퍼런스 생성.  String service_name = Context.SENSOR_SERVICE; SensorManager sensorManager = (SensorManager)getSystemService(service_name);

4 2. 센서 종류  Sensor.TYPE_ACCELEROMETER 3 축 가속도 센서. 세 축에 대한 현재 가속도를 m/s2 으로 리턴한다.  Sensor.TYPE_GYROSCOPE 자이로스코프 센서. 세 축에 대한 기기의 현재 방향을 도 (°) 단위로 리턴한다.  Sensor.TYPE_MAGNETIC_FIELD 자기장 센서. 세 축에 대한 현재 자기장을 마이크 로테슬라 (μT) 단위로 측정한다.  Sensor.TYPE_ORIENTATION 방향 센서. 세 축에 대한 기기의 현재 방향을 도 (°) 단위 로 리턴한다.  Sensor.TYPE_PRESSURE 압력 센서. 기기에 가해진 현재 압력을 킬로파스칼 (kPa) 단위로 리턴한다.  Sensor.TYPE_PROXIMITY 근접 센서. 기기와 대상 물체 간의 거리를 미터 (m) 단위로 표시한다. 대상 물체를 선택하는 방법과 지원되는 거리는 근접 센서의 하드웨어 구현 에 따라 다르다. 보통 근접 센서는 사용자가 통화를 위해 기기를 귀에 가져다 댈 때, 자동으로 화면 밝기를 조절하거나 음성 명령을 실행하기 위한 용도로 쓰인다

5 3. 방향 센서 활용방법. 1.Device 에서 지원가능한 센서관련 목록을 레지스터에 등록하고, 이 등록된 이벤트를 처리하기 위해 센서 이벤트 리 스너를 생성하여 처리해 준다. 2. 센서 이벤트 리스너의 onSensorChanged(Event); 를 통해 해당 타입의 센서가 맞게 들어왔는지 검사를 해주며, 해당 이벤트에서 들어오는 센서값의 정보를 갱신시켜주면 된다. 3. 카메라 뷰를 이용해 화면내에서의 View 를 이용한 onDraw() 처리를 위해, AugmentedView.class 를 생성하였으며, onDraw() 내에서 Draw 하기 위한 모듈들을 추가해주고, 관련 센서값들은 전달해주면 된다. CameraViewer.class SensorManger instance 생성 ; registerListener(Sensor); SensorEventListener(Evnet); unregisterListener(Sensor); CameraPreview.class AugmentedView.class onDraw(){ CircleMaker.class ArrowMaker.class RaderMaker.class } SensorManager.class

6 3-1. 센서값 해석.  SensorEventListener AccelatorSensor = new SensorEventListener() { @Override public void onSensorChanged(SensorEvent event) { switch (event.sensor.getType()) { case Sensor.TYPE_ACCELEROMETER: mGravity = event.values; if(mAugment!=null) { mAugment.invalidate(); } break; } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { // TODO Auto-generated method stub } }; 1.- 센서 종류 : TYPE_ACCELEROMETER( 세 축에 대한 가속도 ), - 개수 : 3 - values[0] : X 축 (Lateral), values[1] : Y 축 (Logitudinal), values[2] : Z 축 (Vertical) 2. - 센서 종류 : TYPE_GYROSCOPE( 세 축에 대한 기기의 방향 ), - 개수 : 3 - values[0] : Z 축 (Azimuth), values[1] : X 축 (Pitch), values[2] : Y 축 (Roll)

7 3-2. 방향 측정.  Accelerometer 와 Magentic 을 이용한 계산 방식. if(mGravity != null && mMagentic != null) { float[] temp = new float[3]; float[] inR = new float[9]; float[] outR = new float[9]; // 중력과 자기장을 이용한 계산 SensorManager.getRotationMatrix(inR, null, mGravity, mMagentic); // the device as a mechanical compass in landscape mode SensorManager.remapCoordinateSystem(inR, SensorManager.AXIS_Y, SensorManager.AXIS_MINUS_X, outR); SensorManager.getOrientation(outR, temp); // convert from radians to degress. //Log.d(TAG, "temp = " + temp[0] + ", " + temp[1] + ", " + temp[2]); temp[0] = (float) Math.toDegrees(temp[0]); temp[1] = (float) Math.toDegrees(temp[1]); temp[2] = (float) Math.toDegrees(temp[2]); Log.d(TAG, "temp = " + temp[0] + ", " + temp[1] + ", " + temp[2]); mDegrees = temp; }

8 3-3. 방향 측정.  Orientation 을 이용한 방향 방식. Case Sensor.TYPE_ORIENTATION: // event.values[0] 방위값을 알려준다. mAzimuth = event.values;  Orientation  X 축 ( 방위각 Azimuth)  X 축을 중심으로 마주하는 방향으로서, 0/360 도는 북 `north, 90/360 도는 동 `east, 180/360 도는 남 `south, 270/360 도는 서 `west 다.  Y 축 ( 피치 Pitch)  피치는 Y 축을 중심으로 한 기기의 각도다. 180/-180 도를 나타낸다.  Z 축 ( 롤 Roll)  롤은 Z 축을 중심으로 한 기기의 측면 기울기로서 -90 도와 90 도 사이의 값.  참조 소스 : svn://Study/AugmentedReality/mixare_onycom

9 4. Mixare Sample Review. Compass.class SensorManger instance 생성 ; registerListener(Accelerometer); registerListener(Magentic); registerListener(Orientation); SensorEventListener(Evnets) { onSensorChanged(SensorEvent event) } unregisterListener(Accelerometer); unregisterListener(Magentic); unregisterListener(Orientation); MixVector.class - angle 값을 계산하기 위한 정점값들은 셋팅. PaintScreen.class onDraw(){ } Matrix.class Camera.class - 카메라 사이즈 속성관 련사항. MixUtils.class - 장면과 대상 오브젝트 의 각도 계산.

10 THANK YOU


Download ppt "Sensor 활용. Contents 1.SensorManager 활용. 2. 센서 종류 3. 방향 센서 활용방법. 4. Mixare Sample Review."

Similar presentations


Ads by Google