MATLAB オブジェクト プロパティを使用したセンサー データのストリーミング
この例では、WiFi 接続またはセルラー接続を使用して、MathWorks® Cloud 上またはコンピューター上で実行されている MATLAB® にモバイル デバイス データをストリーミングする方法を説明します。モバイル デバイスと通信してセンサーからデータを取得するには、MATLAB で mobiledev
オブジェクトを作成します。オブジェクトを作成するまで、センサー データをログ記録することはできません。
センサー データのストリーミングの有効化
プロンプトが表示された場合は、MathWorks Cloud にサインインします。
センサー データを取得する場所にデバイスを配置します。
MATLAB で、
mobiledev
オブジェクトm
を作成します。m = mobiledev
mobiledev with properties: Connected: 1 Available Cameras: {'back' 'front'} Logging: 0 InitialTimestamp: '' AccelerationSensorEnabled: 1 AngularVelocitySensorEnabled: 1 MagneticSensorEnabled: 1 OrientationSensorEnabled: 1 PositionSensorEnabled: 1 Supported functions
オブジェクトの作成時に表示される画面の項目は次のとおりです。
0
- 無効、オフ、またはこのデバイスでセンサーが使用できない。1
- 有効またはオン。
この例では、デバイスと
mobiledev
オブジェクトは接続されているものの、センサーは無効 (センサーのすべての値が0
) で、データがまだログ記録されていない (InitialTimestamp
プロパティが空) ことがわかります。ご利用のデバイスに特定のセンサーが含まれていない場合、そのセンサーには常に0
が表示されます。InitialTimestamp
は、mobiledev
が受信した最初のデータ点のタイムスタンプです。すべてのセンサーのその他すべてのタイムスタンプは、InitialTimestamp
を基準とします。1 つ以上のセンサーを有効にします。
m.MagneticSensorEnabled=1
位置センサーを使用している場合は、デバイスの [設定] で MATLAB の位置情報へのアクセスをオンにします。
mobiledev
オブジェクトのLogging
プロパティを有効にすることにより、選択したセンサーからのデータのログ記録を開始できます。m.Logging = 1
この操作により、選択したすべてのセンサーからのデータ送信が始まります。
データのログ記録を開始した後、データの取得のために 1 秒待ってから、オブジェクトを表示して最新のセンサーの値を確認します。
pause(1) m
mobiledev with properties: Connected: 1 Available Cameras: {'back' 'front'} Logging: 1 InitialTimestamp: '06-08-2014 13:45:56.529' AccelerationSensorEnabled: 1 AngularVelocitySensorEnabled: 1 MagneticSensorEnabled: 1 OrientationSensorEnabled: 1 PositionSensorEnabled: 1 Current Sensor Values: Acceleration: [0.27 0.23 -10.19] (m/s^2) AngularVelocity: [-0.22 0.07 0.06] (rad/s) MagneticField: [3.56 1.56 -48.19] (microtesla) Orientation: [85.91 -27.1 0.35] (degrees) Position Data: Latitude: 41.29 (degrees) Longitude: -72.35 (degrees) Speed: 25 (m/s) Course: 83.6 (degrees) Altitude: 200.1 (m) HorizontalAccuracy: 9.0 (m)
この画面で、デバイスとクラウドが接続していて、データのログ記録中であることが確認できます。さらに、
InitialTimestamp
プロパティの値とセンサーの値が表示され、オブジェクトを作成した時点の測定値が示されます。mobiledev
プロパティを使用してデバイス センサーの取得を制御します。センサー データのストリーミングを停止するには、
Logging
プロパティをリセットするか、mobiledev
オブジェクトを削除します。clear m
センサーの取得の制御
MATLAB Mobile™ には、現在のセンサー値の表示、センサーの有効と無効の切り替え、ログのオンとオフの切り替え、サンプル レートの設定、および接続ステータスとログのステータスの表示を行うプロパティがあります。
以下のプロパティを mobiledev
オブジェクトと共に使用できます。
プロパティ | 説明と値 |
---|---|
Connected | MATLAB Mobile と MATLAB の
|
Logging | デバイスから MATLAB へのデータ転送のステータスを表示および制御します。使用可能な値は
ログのオンとオフを切り替えるには、以下のようにします。
|
InitialTimestamp | 最初のデータ点がデバイスから
|
SampleRate | デバイスからの取得のサンプル レート (Hz 単位)。値は double で、0 ~ 100 Hz の範囲でなければなりません。既定のサンプル レートは 10 Hz です。特定の数値を設定する他に、文字ベクトル値
|
Acceleration |
加速度は、 |
AngularVelocity |
角速度は、 |
Orientation |
方向は、 方位角とは、正の Y 軸と磁北の間の角度であり、範囲は -180 ~ 180 度です。 正のロールは、デバイスが表面上に平らに置かれていて、正の Z 軸が正の X 軸のほうに傾いている場合に定義され、範囲は -180 ~ 180 度です。 正のピッチは、デバイスが表面上に平らに置かれていて、正の Z 軸が正の Y 軸のほうに傾いている場合に定義され、範囲は -90 ~ 90 度です。 |
MagneticField |
磁場は、 |
Latitude | 赤道を基準とした現在の緯度の読み取り値 (度単位)。正の値は北緯を示します。 |
Longitude | 基準子午線を基準とした現在の経度の読み取り値 (度単位)。正の値は東経を示します。 |
HorizontalAccuracy | 経度と緯度を中心とする円によって定義される現在の水平精度 (メートル単位)。 |
Altitude | 現在の高度の読み取り値 (海抜メートル単位)。 |
Course | 真北を基準とする現在の進路の読み取り値 (度単位)。 |
Speed | 現在の速度の読み取り値 (m/s (メートル毎秒) 単位)。 |
AccelerationSensorEnabled | 加速度センサーのオンとオフを切り替えます。 センサーのオンとオフを切り替えるには、以下のようにします。
|
AngularVelocitySensorEnabled | 角速度センサーのオンとオフを切り替えます。 センサーのオンとオフを切り替えるには、以下のようにします。
|
MagneticSensorEnabled | 磁場センサーのオンとオフを切り替えます。 センサーのオンとオフを切り替えるには、以下のようにします。
|
OrientationSensorEnabled | 方向センサーのオンとオフを切り替えます。 センサーのオンとオフを切り替えるには、以下のようにします。
|
PositionSensorEnabled | 位置センサーのオンとオフを切り替えます。 センサーのオンとオフを切り替えるには、以下のようにします。
|
オブジェクト プロパティ
Connected
プロパティは読み取り専用であり、MATLABMobile と MATLAB の mobiledev
オブジェクトとの間の接続ステータスを表示します。使用可能な値は、0
(接続なし) と 1
(接続あり) です。
mobiledev
オブジェクト m
の接続のステータスを表示するには、以下のように指定します。
m.Connected
Logging
プロパティは、デバイスから MATLAB へのデータ転送のステータスを表示します。使用可能な値は 0
(ログなし) と 1
(ログあり) です。
mobiledev
オブジェクト m
のログのステータスを表示するには、以下のようにします。
m.Logging
Logging
プロパティも、ログを有効または無効にするために使用します。選択したセンサーからのデータのログ記録を開始するには、このプロパティを有効にします。
m.Logging = 1
この操作により、選択したすべてのセンサーからのデータ送信が始まります。MATLAB Mobile で [開始] ボタンをタップして送信を開始することもできます。
選択したセンサーからのデータのログ記録を停止するには、Logging
プロパティを無効にします。
m.Logging = 0
この操作により、選択したすべてのセンサーからのデータの送信が停止します。MATLAB Mobile で [停止] ボタンをタップして送信を停止することもできます。
センサー読み取り値のプロパティ
センサー読み取り値のプロパティを使用して、センサーの現在の読み取り値を表示します。ログ記録されているどのセンサーに関しても、現在の読み取り値をいつでも表示できます。Acceleration
、AngularVelocity
、Orientation
、MagneticField
の各プロパティは、それぞれのセンサーの現在の読み取り値を表示します。位置センサーがログ記録している場合は、Latitude
、Longitude
、Speed
、Course
、Altitude
、HorizontalAccuracy
の各プロパティを使用して、個々の位置の読み取り値を取得できます。
センサーから現在の値を取得するには、<objectname>.<propertyname>
を使用します。たとえば、オブジェクト m
から加速度の読み取り値を取得するには、以下のようにします。
m.Acceleration
位置センサーから経度の読み取り値を取得するには、以下のようにします。
m.Longitude
デバイスを基準とした X
軸、Y
軸、Z
軸を示す図については、デバイスの向きを参照してください。
センサー制御プロパティ
MATLAB Mobile には、センサーを制御するための 5 つのプロパティがあります。MATLAB Mobile でセンサー ボタンを選択するか、選択解除することによって同じアクションを実行することもできます。制御プロパティにはそれぞれ 2 つの値があります。オンまたは有効の場合は 1
、オフまたは無効の場合は 0
です。
たとえば、加速度センサーをオンにするには、以下のようにします。
m.AccelerationSensorEnabled = 1
加速度センサーをオフにするには、以下のように指定します。
m.AccelerationSensorEnabled = 0
サンプル レート プロパティ
このプロパティは、デバイスからのデータ取得のサンプル レート (Hz 単位) です。値は double で、0 ~ 100 Hz の範囲の正の数値でなければなりません。既定のサンプル レートは 10 Hz です。
特定の数値を設定する他に、文字ベクトル値 'high'
、'medium'
および 'low'
を使用することもできます。これらの設定では以下の値を使用します。
high
: 100 Hzmedium
: 10 Hzlow
: 1 Hz
サンプル レートは、データのログ記録を開始後でも変更できます。たとえば、mobiledev
オブジェクト m
に関してサンプル レートを特定の値 (Hz 単位) に変更するには、以下のようにします。
m.SampleRate = 100
サンプル レートをいずれかの文字ベクトル値に変更するには、以下のようにします。
m.SampleRate = 'low'
R2016a 以降は、文字ベクトル値を使用するか、数値を指定することができます。