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. ログ関数を使用すると、すべての読み取り値のログ全体を確認できます。これらの関数は、ログ記録中、または停止後に使用できます。センサー タイプごとにログ関数が 1 つずつあります。

    accellog — ログ記録された加速度データ

    angvellog — ログ記録された角速度データ

    magfieldlog — ログ記録された磁場データ

    orientlog — ログ記録された方向データ

    poslog — ログ記録された位置データ (緯度、経度、速度、進路、高度、水平精度のデータ点を含む)

    デバイスを基準とした X 軸、Y 軸、Z 軸を示す図については、デバイスの向きを参照してください。

    ログ記録された方向データをオブジェクト m から取得するには、ログ記録された方向データを変数 o に、タイムスタンプを t に代入します。

    [o, t] = orientlog(m);

    これで、データをプロットできます。

    plot(t, o) 

    Data plotted in MATLAB

    この例では、数分間短い距離を移動したデバイスから方向データが取得されています。プロットは、時間 (t) に対する方向 (o) を示しています。

  11. ログは、データに再度アクセスするために保持するか、MATLAB セッションから破棄することができます。

    discardlogs(m)
  12. セッションが完了したら、オブジェクトを削除します。

    clear m

関連するトピック