- 加速度リアルタイムグラフ:加速度センサーのパケットをリアルタイムで表示します。周波数領域の表示や CSV ファイルの保存ができます。
- センサーグラフ:TWELITE 各種センサーのデータを sqlite3 データベースに保存し、グラフを表示します。
セクションの複数ページをまとめています。 印刷またはPDF形式で保存...
グラフ
- 1: 加速度リアルタイムグラフ
- 2: センサーグラフ
1 - 加速度リアルタイムグラフ
Windows macOS Linux RasPi
概要
TWELITE CUE や TWELITE 動作センサーPAL から受信したパケットを参照します。加速度データをリアルタイムで表示できるほか、周波数解析や CSV 出力の機能があります。
CUE モード、MOTモード、2525 FIFO モードの3種類に対応しています。
連続したサンプルが一定数(解析窓)以上になると、XYZ軸を周波数解析した表示を行います。ただし 2525 FIFO モードでは常に連続していると仮定します。
パケットの区切りが明示的である場合(直前のパケットから3秒以上経過したとき、CUEモードは1パケットごと、MOTモードはパケットのシーケンス番号が不連続になった場合)には、4サンプル分のダミーデータを挿入しピンク色の背景色を表示します。
先着順に最大4ノードまでのデータを格納します。
工場出荷時の TWELITE CUE は TWELITE CUE モードに設定されています。
連続したデータを計測する場合は動作センサーパルモードに変更してください。
加速度リアルタイムグラフを使用する場合における動作センサーパルモードの代表的な設定を以下に記します。
- 連続的に約 25Hz で計測したいとき
t: set Transmission Interval (0)
p: set Sensor Parameter (03000000)
- 連続的に約 50Hz で計測したいとき
t: set Transmission Interval (0)
p: set Sensor Parameter (03000100)
- 連続的に約 100Hz で計測したいとき
t: set Transmission Interval (0)
p: set Sensor Parameter (03000200)
- 約10秒おきに 約 100Hz で128サンプル分計測したいとき
t: set Transmission Interval (10)
p: set Sensor Parameter (03000208)
- 約10秒おきに 約 100Hz で256サンプル分計測したいとき
t: set Transmission Interval (10)
p: set Sensor Parameter (03000210)
- 約10秒おきに 約 50Hz で64サンプル分計測したいとき
t: set Transmission Interval (10)
p: set Sensor Parameter (03000104)
- 約10秒おきに 約 200Hz で128サンプル分計測したいとき
t: set Transmission Interval (10)
p: set Sensor Parameter (03000308)
操作
操作 | 説明 |
---|---|
右上部(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 のように計算しています。 |
X | X軸の周波数解析計算値 | |
Y | Y軸の周波数解析計算値 | |
Z | Z軸の周波数解析計算値 | |
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 データベースに記録し、画面上にグラフ形式で表示します。データベースファイルは外部のアプリケーションから参照することも可能です。
同一実行形式名の TWELITE STAGE APP を複数起動して、センサーグラフを同時に使用することはできません。
データベースファイルは {MWSTAGEインストール}/log
フォルダに格納され、TWELITE STAGE APP の実行形式名をもとにファイル名が決まります。同一の実行形式名である場合は、同じデータベースファイルを参照してしまいます。TWELITE STAGE APP の実装では、複数のアプリが同時に同一のデータベースにデータを追加することを想定していません。また、場合によってはデータベースファイルのアクセスエラーとなり、TWELITE STAGE APP がクラッシュすることもあります。
例えば、MONOSTICK を PC に2台接続して、同時に複数の「センサーグラフ」を動作させたい場合には、別の実行形式名 (TWELITE_Stage_a.exe
, TWELITE_Stage_b.exe
) とした TWELITE STAGE アプリを複数実行します。このときのデータベースファイル名はそれぞれ log/TWELITE_Stage_a_WSns.sqlite
, log/TWELITE_Stage_b_WSns.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からの入力は画面左上部分に入力途上の文字列が表示されます。ENTER キーで入力中の文字列を確定します。 |
BS | 表示されている末尾の文字を削除します。 |
ENTER | 入力した文字列をデータベースに反映します。 |
IME入力時の操作方法は、システム環境に依存する場合があります。
また、IME入力時の操作によっては期待しない文字列が入力される場合があります。不要な文字列が入力エリアに表示された場合は BS
キーで不要部分を削除してください。
画面遷移
基本の画面は一覧、24時間、ライブの3種類に分けられます。
[一覧] <--> [24時間] <--> [ライブ]
↓↑
[年月日選択]
センサーグラフモードの起動時に開く
[STAGE 共通設定 → 起動アプリ指定] にて 32
を指定してください。
DBのテーブルについて
sensor_data
受信したデータを格納します。
カラム名 | 型 | 解説 |
---|---|---|
_uqid | INTEGER | データベースで使用する続き番号 |
sid | INTEGERint32_t | int32_t 型で格納しているシリアル番号です。例えば “8123abcd” というシリアル番号の場合は整数値で -2,128,368,691 の値が格納されます。 |
ts | INTEGERint64_t | システムがパケットを受信した時刻で、int64_t 型で格納されるタイムスタンプ値です。UNIX epoch (エポック、1970年からの経過秒) です。 |
ts_msec | INTEGER | タイムスタンプのミリ秒部分です。 |
year | INTEGER | タイムスタンプよりローカル時間の年部分です。 |
month | INTEGER | タイムスタンプよりローカル時間の月部分です。 |
day | INTEGER | タイムスタンプよりローカル時間の日部分です。 |
hour | INTEGER | タイムスタンプよりローカル時間の時部分です。 |
lid | INTEGER | ユーザにより割り当てられた LID などの識別値です。 |
lqi | INTEGER | 受信強度の目安値です (Link Quality Indicator) 。 |
pkt_seq | INTEGER | パケットの続き番号です。どのような値を取りうるのかはファームウェアによって異なります。 |
pkt_type | INTEGER | 無線パケットの種別です。2 PAL AMB 6 ARIA 1 PAL MAG *3 PAL MOT 5 CUE 0x101 App_Twelite *0x103 App_IO *現時点で非対応 |
value | REAL | 計測値です(パケット種別によって定義が異なります)。pkt_type-> 2,6: 温度[°C] 1: 磁石の判定有無 (00->磁石なし, 01->N極, 02->S極) 3,5: X軸加速度(パケット中に複数サンプル含まれる場合は平均値)[G] 0x101,103: 入力IOのビットマップ(val_dioの下位8ビットと同値) |
value1 | REAL | 計測値です(パケット種別によって定義が異なります)。pkt_type-> 2,6: 湿度[%] 1: 未使用 3,5: Y軸加速度(パケット中に複数サンプル含まれる場合は平均値)[G] 0x101: ADC1[V] 103: 未使用 |
value2 | REAL | 計測値です(パケット種別によって定義が異なります)。pkt_type-> 2: 照度[lx] 6: 未使用 1: 未使用 3,5: Z軸加速度(パケット中に複数サンプル含まれる場合は平均値)[G] 0x101: ADC2[V] 103: 未使用 |
value3 | REAL | 計測値です(パケット種別によって定義が異なります)。pkt_type-> 2: 未使用 6: 未使用 1: 未使用 3,5: 未使用 0x101: ADC3[V] 103: 未使用 |
val_vcc_mv | INTEGER | 電源電圧[mV] |
val_dio | INTEGERint32_t | b0..b7 : DI1..DI8 の値 (1 はLOW, 0 はHIGHレベル)b24..b25 : マグネット値 (b28 が1 の場合) 00 ->磁石なし, 01 ->N極, 10 ->S極b28 : 1 の場合マグネットデータがb24..b25 に格納されるb31 : 定期送信ビット(マグネットのみ) |
val_adc1_mv | INTEGER | pkt_type-> 1,2,3,0x101 : ADC1の計測値 |
val_adc2_mv | INTEGER | pkt_type-> 0x101 : ADC4の計測値 |
val_aux | INTEGER | その他データ格納目的 |
ev_src | INTEGER | イベント発生元 |
ev_id | INTEGER | イベントIDpal_type-> 5: サイコロ(1...6) 16→MOVE他 資料参照 |
ev_param | INTEGER | イベントパラメータ |
sensor_node
センサーノードにテキストメモ(付加情報)を格納します。
カラム名 | 型 | 解説 |
---|---|---|
sid | INTEGER | 上述のSID |
sid_text | TEXT | 可読性のためにSIDを16進数に変換した文字列 |
desc | TEXTUTF-8 | SIDに対応するメモ(補助情報)。一覧などで表示する |
sensor_last
最後に受信したタイムスタンプを管理します。
カラム名 | 型 | 解説 |
---|---|---|
sid | INTEGER | 上述のSID |
ts | INTEGER | 最後の受信したときのタイムスタンプ |
lid | 以下、最後に受信時のデータの抜粋 | |
lqi | ||
pkt_type | ||
value | ||
value1 | ||
value2 | ||
value3 | ||
val_vcc_mv | ||
val_dio | ||
ev_id |