Main Content

加速度計データのログ記録

この例では、スマートフォンまたはタブレットの加速度計からのデータを操作および可視化する方法を説明します。

加速度計は、速度の変化率、つまり加速度を測定するセンサーです。3 次元直交座標系を使用し、以下の図に示す軸ごとの加速度値を返します。

加速度計データは、MATLAB Mobile で [センサー] メニューを使用して簡単に取得できます。

加速度計データをログ記録するには、以下の手順を使用します。

  1. [ストリーム先: ログ] を選択します。

  2. サンプル レートを調整します (既定は 10 Hz)。

  3. [加速度] スイッチをオンにします。

  4. [開始] をタップします。

データの収集後、次を行います。

  1. [停止] をタップします。

  2. 保存するファイル名を入力します (既定の名前が提供されます)。

  3. [自動アップロード] オプションがオンになっている場合、ファイルは、MATLAB Drive の設定済みの [アップロード フォルダー] (既定は MATLAB Drive/MobileSensorData) に、.mat ファイルとしてアップロードされます。

この例では、次の活動を含む記録済みのセッションを使用します。

  • 直立

  • 歩行

  • ジョギング

  • 全力疾走

データの収集は、スマートフォンを縦にし、画面を前方に向けてアスリートの胸部に取り付けて行いました。

データを可視化するために、まず取得したセンサー データの .mat ファイルを読み込みます。

load fieldActivities.mat

データを変数 xyz に、タイムスタンプを timestamp に読み取ります。

x = Acceleration.X;
y = Acceleration.Y;
z = Acceleration.Z;
timestamp = Acceleration.Timestamp;

読み込まれた変数内の加速度値を使用して、3 軸を組み合わせたベクトルの大きさを計算します。

combinedAccel = sqrt(x.^2+y.^2+z.^2);

ベクトル t をゼロで初期化します (パフォーマンス向上のために推奨)。

t = zeros(size(timestamp));

開始時を参照として設定して、絶対時間を相対値に変換します。

for n = 1 : length(timestamp)
  t(n) = seconds(timestamp(n) - timestamp(1));
end

最後に、plot コマンドを使用して結果を表示します。

plot(t, combinedAccel)
xlabel('Time (s)')
ylabel('Acceleration (m/s^2)')

4 つの異なる活動をグラフで簡単に識別できます。直立姿勢 (加速度は 9.8 m/s^2 (重力) でほぼ一定) からスタートし、活動が歩行、ジョギング、全力疾走と進むにつれて、振幅と周波数の両方が増加します。

各軸の個々の結果を表示する場合は、下のライブ コントロールを使用します。

軸を選択すると、その方向の加速度値が表示されます。

plot (t,x)
title('Acceleration during 4 activities')
xlabel('Time (s)')
ylabel('Acceleration (m/s^2)')