セクションの複数ページをまとめています。 印刷またはPDF形式で保存...

もとのページに戻る

2024-05-14 現在

グラフ

グラフ画面の一覧
  • 加速度リアルタイムグラフ:加速度センサーのパケットをリアルタイムで表示します。周波数領域の表示や CSV ファイルの保存ができます。
  • センサーグラフ:TWELITE 各種センサーのデータを sqlite3 データベースに保存し、グラフを表示します。

1 - 加速度リアルタイムグラフ

加速度リアルタイムグラフ画面の操作説明

Windows   macOS   Linux   RasPi

デモデータの表示例

デモデータの表示例

概要

TWELITE CUETWELITE 動作センサーPAL から受信したパケットを参照します。加速度データをリアルタイムで表示できるほか、周波数解析や CSV 出力の機能があります。

CUE モード、MOTモード、2525 FIFO モードの3種類に対応しています。

連続したサンプルが一定数(解析窓)以上になると、XYZ軸を周波数解析した表示を行います。ただし 2525 FIFO モードでは常に連続していると仮定します。

パケットの区切りが明示的である場合(直前のパケットから3秒以上経過したとき、CUEモードは1パケットごと、MOTモードはパケットのシーケンス番号が不連続になった場合)には、4サンプル分のダミーデータを挿入しピンク色の背景色を表示します。

先着順に最大4ノードまでのデータを格納します。

操作

操作説明
右上部
(i)ID# ボタン
クリックするごとにIDの切り替えを行います。
(注:FIFOモードによる連続サンプルデータは、複数IDによる運用に向きません)
右上部
(f)SMP# ボタン
クリックするごとに解析窓サイズを 64,128,256 と変更します。
右下部
(c)表示データ保存 ボタン
log フォルダにCSV形式のデータ出力を行います。
バッファにある最も古いサンプルから、画面右端の最新のサンプルまでを出力します。
(注:出力数は常に 5120 サンプルであり、末尾のデータが最新です)
右下部
PAUSE( ) ボタン
表示更新を中断します。
(注:サンプルの取得は内部の一時サンプルバッファが一杯になるまで行います)
マウスドラッグ
(グラフ部分)
表示サンプルの位置を移動します。
マウスドラッグ
(下部スクロールバー)
より大きなステップで表示サンプルの位置を移動します。
カーソルキー
サンプルの表示領域を移動させます。
カーソルキー
サンプルの横軸を拡大・縮小(等倍 / 2倍 / 3倍 / 4倍)します。
(注:解析サンプル数 256 の場合は2倍まで)

サンプルレートの推定

サンプリングレートは、パケットの受信時間から計算しています。過去複数サンプルの受信時間を平均して1サンプル分としているため、パケットの飛びなどがある場合は誤差が大きくなります。 また、関連するログ記録のタイムスタンプ(T_SMPL)も同様に推測値であり、パケット取得時と比較して遅れたタイムスタンプになります。 なお、サンプルレートの推定が終わると、グラフ表示のスクロールをスムーズにします。

CUEグラフモードの起動時に開く

[STAGE 共通設定→起動アプリ指定]にて31を指定してください。

ログ出力(表示データ保存)

(c)表示データ保存 ボタンを押すことで、画面上の表示位置(右端サンプル)を起点とした最大 512 サンプル分のデータを出力できます。

ログファイル名は {logフォルダ}/acc_snap_{タイムスタンプ}.csv です。

  • データは、画面右端の一番新しいサンプルが 512 番目(ファイルの末尾)です。
  • 周波数解析実行時は、最後のサンプルから 周波数解析サンプル数分が対象です。
  • 周波数解析対象サンプルが記録されている行に周波数解析結果を追加しています(64 サンプルの場合は 449 番目から 32 行が結果で DC 成分から高周波成分までが並びます)。
ラベル項目名説明
#サンプル
番号
T_PKT[ms]パケット
受信時刻
1パケットに複数のサンプルが含まれるため、同じタイムスタンプのサンプルが並びます。
SEQパケット
続き番号
各パケットに付与されており、連続していればパケットの欠落がないと考えられます。
T_SMPL[ms]サンプル
時刻(仮想・推定)
パケットの受信時刻から生成した各サンプルのタイムスタンプです。
実際にサンプルが行われた時刻とは一致しません。
(注:サンプルレートをパケット受信間隔から推定しているため誤差が大きくなるほか、サンプル周期を都度加算しているため実際のサンプル時刻よりも1パケット周期分遅れたタイムスタンプを記録します)
X[G]X軸のサンプル値単位はGです。センサーの値に基づいています。
Y[G]Y軸のサンプル値単位はGです。センサーの値に基づいています。
Z[G]Z軸のサンプル値単位はGです。センサーの値に基づいています。
FD#周波数解析計算値の番号周波数解析サンプル数が 64 の場合は DC,1,2,...,31 の順で並びます。
Hz周波数解析計算結果の周波数軸の値推定の周波数です。(FD# / FD_Len) * FD_Freq のように計算しています。
XX軸の周波数解析計算値
YY軸の周波数解析計算値
ZZ軸の周波数解析計算値
Label追加情報名下表参照
Info追加情報下表参照

追加情報

情報名解説
ModuleSID送信側のシリアル番号
Tick[ms]ログファイルを開いたときのシステム時間
(注:TWELITE STAGEアプリ側)
Dateログファイルを開いたときの日付
Timeログファイルを開いたときの時刻
Time_Msec_partログファイルを開いたときの秒未満部分 [ms]
Samples有効サンプルデータ
FD_Len周波数解析サンプル数
FD_Start#周波数解析開始サンプル番号
FD_Freq周波数解析範囲の周波数推定値[Hz]
(注:サンプル受信間隔からの推定)

ログ出力(自動保存)

加速度リアルタイムグラフ画面を開き、データが入力された時点から自動的にログファイルを出力します。

ログファイル名は logフォルダ/accel_{シリアル番号}_{タイムスタンプ}.csv です。

ラベル項目名説明
#サンプル
番号
T_PKT[ms]パケット
受信時刻
1パケットに複数のサンプルが含まれるため、同じタイムスタンプのサンプルが並びます。
SEQパケット
続き番号
各パケットに付与されており、連続していればパケットの欠落がないと考えられます。
T_SMPL[ms]サンプル
時刻(仮想・推定)
パケットの受信時刻から生成した各サンプルのタイムスタンプです。
実際にサンプルが行われた時刻とは一致しません。
(注:サンプルレートをパケット受信間隔から推定しているため誤差が大きくなるほか、サンプル周期を都度加算しているため実際のサンプル時刻よりも1パケット周期分遅れたタイムスタンプを記録します)
X[G]X軸のサンプル値単位はGです。センサーの値に基づいています。
Y[G]Y軸のサンプル値単位はGです。センサーの値に基づいています。
Z[G]Z軸のサンプル値単位はGです。センサーの値に基づいています。
Label追加情報名下表参照
Info追加情報下表参照

追加情報

情報名解説
ModuleSID送信側のシリアル番号
Tick[ms]ログファイルを開いたときのシステム時間
(注:TWELITE STAGEアプリ側)
Dateログファイルを開いたときの日付
Timeログファイルを開いたときの時刻
Time_Msec_partログファイルを開いたときの秒未満部分 [ms]

2 - センサーグラフ

センサーグラフ画面の操作説明

Windows   macOS   Linux   RasPi

データの表示例

データの表示例

概要

各種センサーデータを SQLite データベースに記録し、画面上にグラフ形式で表示します。データベースファイルは外部のアプリケーションから参照することも可能です。

  • データベースには SQLite (sqlite3) を使用しており、{MW_STAGE Install}/log/{実行形式名}_WSns.sqlite というファイルに格納されます。
  • 画面遷移は [一覧(グラフプレビューあり)]>[24時間データ] >[ライブビュー]です。
    • [24時間データ] から更に [年] [月] [日(グラフプレビューあり)] 選択画面に遷移できます。
  • [ライブ]表示画面について
    • 一覧から特定のノードを選択します。
    • 1秒おきのリアルタイム表示を行い、過去 450 秒間のデータを表示します。
  • [24時間データ] 表示画面について
    • 特定の日のデータを表示します。
    • 1秒おきの更新とし、その間に複数のデータがあった場合は間引かれます。
    • 最大拡大時(1ピクセル1秒)以外は、各ピクセルの範囲における取得値の平均を表示します。
    • 値が画面よりはみ出す場合は、上下端に測定点を表示します。
    • 現在時刻が含まれる場合には、新着データで表示を更新します。
    • マウスホイールやカーソルキー の入力:時間軸の拡大・縮小
    • マウスポインタの移動:マウスポインタに対応した時間軸にある取得データを簡易表示します。
      • カーソルキー :隣の取得データに移動します。
    • マウスクリック&ドラッグ:スクロール(拡大時のみ)
    • 拡大時はスクロールバーによる操作も可能です。
    • [CSV出力] 機能では、データベースに含まれるすべての取得値を表示します。

操作

操作説明
マウスドラッグ
(グラフ部分)
拡大時に表示サンプルの位置を移動します。
マウスドラッグ
(下部スクロールバー)
表示サンプルの位置を移動します。
カーソルキー
サンプルの表示領域を移動させます。
カーソルキー
サンプルの横軸を拡大・縮小します。
[ライブ]1秒刻みで最新のデータを表示するビューに移動します。
[24時間データ]1日単位のグラフに移動します。
[<<一覧]一覧選択画面に移動します。
[年] [月] [日]年月日で、特定の日を選択します。
[最新]今日のデータに移動します。
[CSV出力]1日分のデータをCSVファイルに出力します。
一覧で[表示]リストの表示方式を変更します。
一覧で[ソート]リストの並び順を変更します。
一覧で[↑]リストの並び順を反転します。

センサーノードのメモ(補助情報)の編集

v1.3.9+

「24時間データ画面」で、画面右上のセンサーノードのメモ部分を左クリックすると、メモを編集するためのプロンプトを使用できます。

センサーノードのメモを編集する様子

センサーノードのメモを編集する様子(IMEオン)

キー説明
通常の半角文字通常の半角英数文字列を直接入力した場合は画面上にも表示されます。
IME による入力IMEからの入力は画面左上部分に入力途上の文字列が表示されます。
ENTERキーで入力中の文字列を確定します。
BS表示されている末尾の文字を削除します。
ENTER入力した文字列をデータベースに反映します。

画面遷移

基本の画面は一覧、24時間、ライブの3種類に分けられます。

[一覧] <--> [24時間] <--> [ライブ]
              ↓↑
          [年月日選択]

センサーグラフモードの起動時に開く

[STAGE 共通設定 → 起動アプリ指定] にて 32 を指定してください。

DBのテーブルについて

sensor_data

受信したデータを格納します。

カラム名解説
_uqidINTEGERデータベースで使用する続き番号
sidINTEGER
int32_t
int32_t 型で格納しているシリアル番号です。
例えば “8123abcd” というシリアル番号の場合は整数値で -2,128,368,691 の値が格納されます。
tsINTEGER
int64_t
システムがパケットを受信した時刻で、int64_t 型で格納されるタイムスタンプ値です。
UNIX epoch (エポック、1970年からの経過秒) です。
ts_msecINTEGERタイムスタンプのミリ秒部分です。
yearINTEGERタイムスタンプよりローカル時間の年部分です。
monthINTEGERタイムスタンプよりローカル時間の月部分です。
dayINTEGERタイムスタンプよりローカル時間の日部分です。
hourINTEGERタイムスタンプよりローカル時間の時部分です。
lidINTEGERユーザにより割り当てられた LID などの識別値です。
lqiINTEGER受信強度の目安値です (Link Quality Indicator) 。
pkt_seqINTEGERパケットの続き番号です。どのような値を取りうるのかはファームウェアによって異なります。
pkt_typeINTEGER無線パケットの種別です。
2 PAL AMB 6 ARIA 1 PAL MAG *3 PAL MOT 5 CUE 0x101 App_Twelite *0x103 App_IO
*現時点で非対応
valueREAL計測値です(パケット種別によって定義が異なります)。
pkt_type->
2,6: 温度[°C]
1: 磁石の判定有無 (00->磁石なし, 01->N極, 02->S極)
3,5: X軸加速度(パケット中に複数サンプル含まれる場合は平均値)[G]
0x101,103: 入力IOのビットマップ(val_dioの下位8ビットと同値)
value1REAL計測値です(パケット種別によって定義が異なります)。
pkt_type->
2,6: 湿度[%]
1: 未使用
3,5: Y軸加速度(パケット中に複数サンプル含まれる場合は平均値)[G]
0x101: ADC1[V]
103: 未使用
value2REAL計測値です(パケット種別によって定義が異なります)。
pkt_type->
2: 照度[lx]
6: 未使用
1: 未使用
3,5: Z軸加速度(パケット中に複数サンプル含まれる場合は平均値)[G]
0x101: ADC2[V]
103: 未使用
value3REAL計測値です(パケット種別によって定義が異なります)。
pkt_type->
2: 未使用
6: 未使用
1: 未使用
3,5: 未使用
0x101: ADC3[V]
103: 未使用
val_vcc_mvINTEGER電源電圧[mV]
val_dioINTEGER
int32_t
b0..b7: DI1..DI8の値 (1はLOW, 0はHIGHレベル)
b24..b25: マグネット値 (b281の場合) 00->磁石なし, 01->N極, 10->S極
b28: 1の場合マグネットデータがb24..b25に格納される
b31: 定期送信ビット(マグネットのみ)
val_adc1_mvINTEGERpkt_type->
1,2,3,0x101: ADC1の計測値
val_adc2_mvINTEGERpkt_type->
0x101: ADC4の計測値
val_auxINTEGERその他データ格納目的
ev_srcINTEGERイベント発生元
ev_idINTEGERイベントID
pal_type->
5: サイコロ(1...6)
16→MOVE他資料参照
ev_paramINTEGERイベントパラメータ

sensor_node

センサーノードにテキストメモ(付加情報)を格納します。

カラム名解説
sidINTEGER上述のSID
sid_textTEXT可読性のためにSIDを16進数に変換した文字列
descTEXT
UTF-8
SIDに対応するメモ(補助情報)。一覧などで表示する

sensor_last

最後に受信したタイムスタンプを管理します。

カラム名解説
sidINTEGER上述のSID
tsINTEGER最後の受信したときのタイムスタンプ
lid以下、最後に受信時のデータの抜粋
lqi
pkt_type
value
value1
value2
value3
val_vcc_mv
val_dio
ev_id