Main Content

기록된 센서 데이터 처리하기

이 예제에서는 모바일 기기에서 수집된 방향 데이터를 플로팅하는 방법을 보여줍니다. 기록된 센서 데이터는 수집 중에 또는 수집 후에 플로팅 및 기타 분석을 위해 사용할 수 있습니다.

이 예제에서는 모바일 기기에 MATLAB® Mobile™을 설치하여 설정한 후 이를 MathWorks Cloud에 연결했다고 가정합니다. 이 단계에 대한 자세한 내용은 기기에 MATLAB Mobile 설치하기클라우드에 로그인하기 항목을 참조하십시오.

  1. 모바일 기기에서 MATLAB Mobile을 시작합니다.

  2. 메시지가 표시되면 클라우드에 로그인합니다.

  3. 센서 화면에서 방향 센서를 누릅니다.

  4. 센서 설정에서 스트리밍 위치:를 누른 후 MATLAB을 선택합니다.

  5. 센서 데이터를 얻으려는 곳에 기기를 둡니다.

  6. MATLAB에서 mobiledev 객체 m을 만듭니다.

    m = mobiledev
    m = 
    mobiledev with properties:
    
                       Connected: 1
               Available Cameras: {'back' 'front'}
                         Logging: 0
                InitialTimestamp: ''
    
       AccelerationSensorEnabled: 0
    AngularVelocitySensorEnabled: 0
           MagneticSensorEnabled: 0
        OrientationSensorEnabled: 1
           PositionSensorEnabled: 0
                                                                    
    Supported functions

    객체를 만들 때 표시되는 결과에서 값 1은 활성화됨 또는 켜짐을 의미하고 0은 비활성화됨 또는 꺼짐을 의미합니다. 이 예에서는 기기와 클라우드는 연결되어 있으며 데이터는 아직 기록되지 않고 있는 것을 볼 수 있습니다. 기기에서 방향 센서를 선택했으므로 방향 센서가 활성화된 것으로 표시됩니다.

  7. Logging 속성을 설정하여 선택한 센서의 데이터 기록을 시작합니다.

    m.Logging = 1

    이 동작은 선택한 모든 센서에서 데이터 전송을 시작합니다. 기기의 MATLAB Mobile에서 시작 버튼을 눌러 전송을 시작할 수도 있습니다.

  8. disp 함수를 사용하여 객체 속성을 언제든지 표시할 수 있습니다. 데이터 기록을 시작했으므로 이제 더 많은 정보가 표시됩니다.

    disp(m)
    mobiledev with properties:
    
                       Connected: 1
               Available Cameras: {'back' 'front'}
                         Logging: 1
                InitialTimestamp: '06-08-2014 13:45:56.529'
    
       AccelerationSensorEnabled: 0
    AngularVelocitySensorEnabled: 0
           MagneticSensorEnabled: 0
        OrientationSensorEnabled: 1
           PositionSensorEnabled: 0
    
    Current Sensor Values:
                    Acceleration: [0x3 double]  (m/s^2)
                 AngularVelocity: [0x3 double]  (rad/s)
                   MagneticField: [0x3 double]  (microtesla)
                     Orientation: [1.8102 0.0101 -0.0418]  (degrees)
    
           Position Data: 
                        Latitude: [0x1 double]  (degrees)
                       Longitude: [0x1 double]  (degrees)
                           Speed: [0x1 double]  (m/s)
                          Course: [0x1 double]  (degrees)
                        Altitude: [0x1 double]  (m)
              HorizontalAccuracy: [0x1 double]  (m)
                                                                     
    Supported functions

    표시된 정보를 보면 기기와 클라우드가 연결되어 있고 데이터가 기록되고 있는 것을 알 수 있습니다. InitialTimestamp 값은 데이터의 첫 번째 패킷이 기록된 타임스탬프를 표시합니다. 현재 측정값을 나타내는 센서 값이 표시되어 있습니다.

  9. 필요한 만큼의 데이터를 수집한 후에 센서 데이터 기록을 중지합니다.

    m.Logging = 0
  10. 기록 함수를 사용하면 모든 측정값에 대한 전체 로그를 볼 수 있습니다. 이런 기록 함수는 데이터를 기록하는 중에, 또는 기록을 중지한 후에 사용할 수 있습니다. 센서 유형별로 기록 함수가 있습니다.

    accellog — 기록된 가속도 데이터

    angvellog — 기록된 각속도 데이터

    magfieldlog — 기록된 자기장 데이터

    orientlog — 기록된 방향 데이터

    poslog — 기록된 위치 데이터이며, 위도, 경도, 속력, 침로, 고도, 수평 정확도에 대한 데이터 점을 포함합니다.

    기기를 기준으로 한 X, Y, Z축을 보여주는 도식은 기기 방향 항목을 참조하십시오.

    객체 m에서 기록된 방향 데이터를 가져오려면 기록된 방향 데이터에 변수 o를 할당하고 타임스탬프에 t를 할당합니다.

    [o, t] = orientlog(m);

    그런 다음 데이터를 플로팅할 수 있습니다.

    plot(t, o) 

    Data plotted in MATLAB

    이 예제에서는 몇 분 동안 짧은 거리를 이동한 기기에서 방향 데이터를 가져왔습니다. 플롯은 방향(o) 대비 시간(t)을 보여줍니다.

  11. 데이터에 다시 액세스하기 위해 로그를 보관할 수도 있고, MATLAB 세션에서 삭제할 수도 있습니다.

    discardlogs(m)
  12. 세션을 마쳤으면 객체를 삭제합니다.

    clear m

관련 항목