AndroidWearの加速度センサーで取得した加速度をグラフ表示します。
加速度は時系列データです。
CSVファイルとして保存した加速度データを用い、読み込みます。
CSVは「hh:mm:ssssss,X-axis,Y-axis,Z-axis」というフォーマットにしました。
final DateFormat df = new SimpleDateFormat("HH:mm:ssSSS"); final Date date = new Date(System.currentTimeMillis()); String SEND_DATA = df.format(date)+","+x+","+y+","+z+","+sum+"\n";
CSVファイルの一部
13:30:08167,-0.016460137,0.24540567,9.58803 13:30:08210,-0.016460137,0.24540567,9.58803 13:30:08254,-0.02124854,0.20949265,9.621549 13:30:08272,-0.014065935,0.20470424,9.568876 13:30:08316,-0.009277532,0.25498247,9.657461 13:30:08353,-0.057161566,0.23343466,9.532963 13:30:08393,-0.042796355,0.23582886,9.674221 13:30:08433,-0.03561375,0.21906945,9.568876 13:30:08476,-0.028431145,0.25737667,9.607183 13:30:08518,-0.028431145,0.25737667,9.607183 13:30:08553,-0.07152677,0.19752164,9.621549 13:30:08593,-0.047584757,0.2669535,9.509021 13:30:08633,-0.016460137,0.22146365,9.645491
時間フォーマットを設定する.
加速度センサーの値をグラフにしたいため、Y軸は加速度,X軸は時間になります。
gnuplotはそのままでは時間データを扱えないため、gnuplotにX軸を時間として扱う設定をします。
#時間フォーマットの設定 set xdata time set timefmt "%H:%M:%s" set format x "%H:%M:%s" #秒のときは%S,エポックミリ秒のときは%sです.
扱える日付フォーマットはリファレンスを参考にしてください。
CSVフォーマットを設定する
今度はCSV形式のファイルが読み込めるように設定します。
#csvフォーマットの設定 set datafile separator ","
カンマ<“,”>以外にもタブ<“\t”>や任意の文字で区切ることができます。
ちなみにデフォルトはスペース<” “>区切りが設定されているようです。
プロットする
これで加速度データが入ったCSVファイルをグラフにプロットする準備ができました。
file_name="sensor.csv" plot file_name using 1:2 with linespoints, file_name using 1:3 with linespoints, file_name using 1:4 with linespoints;
実行すると加速度センサーのグラフが表示されました。
スマートウォッチを装着した状態で歩行したところ、綺麗に歩行ステップが検出できていることがわかります。(4歩分)
実際に加速度を使うときは高周波数域を取り除くローパスフィルターを用いることがります。