グラフ描画スクリプト

説明動画 (再生時間:2分25秒)

TWELITE 2525A、TWELITE PAL + 動作センサーパル、TWELITE CUEで秒間100回(100Hz)の加速度計測ができます。

グラフ表示スクリプトを使用してTWELITE 2525A/PAL/CUEの動きをXYZ軸のグラフにし、パソコンに表示できます。CSV 形式でログを保存することもできます。

OTA

CR2032コイン型電池で50〜100時間程度連続動作します。(当社計算値による)

※ 本スクリプトは比較的、データの受信頻度が高いことが想定されるため、1台分のグラフのみ描画可能です。子機を複数使用したい場合は、子機と同数のMONOSTICKを用意していただき、それぞれ異なる通信チャネルを設定して、本スクリプトを親機の台数だけ起動してご使用ください。

ダウンロード

用意するもの

PCの準備

下記のインストール手順はOSがWindowsの場合の一例です。
各種ライブラリのドキュメントをご覧の上、必要なソフトウェアおよびライブラリをインストールしてください。

  1. 下記ページよりPythonの最新版をダウンロードしインストールする。
    https://www.python.org/downloads/

    その時、下図の枠で囲まれている部分にチェックを入れること
    もしくはPythonのインストール先にPathを通すこと。
  2. コマンドプロンプトを立ち上げ、下記コマンドを入力しpyserial、pyqt5、pyqtgraphをインストールする。

    > pip install pyserial
    > pip install pyqt5
    > pip install pyqtgraph
    

子機の準備

TWELITE 2525Aを使用する場合
100fpsで加速度のグラフを出力する
  1. TWELITE Rを使用してTWELITE 2525Aのアプリ(ファームウェア)をv2.0.2 以降にする。
  2. TWELITE Rを接続しインタラクティブモードもしくはOTAにて設定を下記のように Application ID を 67720102、Channels を 18、Option Bits を 0x00000001、SensorParameterを1024に変更する。
    --- CONFIG/App_Tag V2-00-2/SID=0x81027aae/LID=0x00/RC=9696 ---
     a: set Application ID (0x67720102)
     i: set Device ID ()
     c: set Channels (18)
     x: set Tx Power (13)
     b: set UART baud (38400)
     B: set UART option (8N1)
     k: set Enc Key (0xA5A5A5A5)
     o: set Option Bits (0x00000001)
     d: set Sleep Dur (500)
     w: set Sensor Wait Dur (0)
     m: set Sensor Mode (0x35)
     p: set Sensor Parameter (1024)
     P: set Sensor Parameter2 (  )
    ---
     S: save Configuration
     R: reset to Defaults
複数のセンサーを使う場合:ジャイロセンサ(L3GD20)と組み合わせる
  1. TWELITE R2を使用してTWELITE 2525Aのアプリ(ファームウェア)をv2.0.2 以降にする。
  2. TWELITE R2を接続しインタラクティブモードもしくはOTAにて設定を下記のように Application ID を 67720102、Channels を 18、Sleep Dur を 200、Option Bits を 0x00000001、Sensor Mode をD1、SensorParameter を 0、SensorParameter2 を 50 に変更する。
    --- CONFIG/App_Tag V2-00-2/SID=0x81027aae/LID=0x00/RC=9696 ---
     a: set Application ID (0x67720102)
     i: set Device ID ()
     c: set Channels (18)
     x: set Tx Power (13)
     b: set UART baud (38400)
     B: set UART option (8N1)
     k: set Enc Key (0xA5A5A5A5)
     o: set Option Bits (0x00000001)
     d: set Sleep Dur (200)
     w: set Sensor Wait Dur (30)
     m: set Sensor Mode (0xD1)
     p: set Sensor Parameter (0)
     P: set Sensor Parameter2 ( 50 )
    ---
     S: save Configuration
     R: reset to Defaults
  3. 電池を抜くもしくは電源を切り、下記のように配線する。

※ 本設定は5fpsでグラフのデータを更新します。加速度を100fpsで計測できないため注意してください。
また、送信間隔をより短く設定できますが、正しく動作しない可能性があります。

複数のセンサーを使う場合:温湿度センサ(SHT21)、気圧センサ(MPL115A2)と組み合わせる
  1. TWELITE R2を使用してTWELITE 2525Aのアプリ(ファームウェア)をv2.0.2 以降にする。
  2. TWELITE R2を接続しインタラクティブモードもしくはOTAにて設定を下記のように Application ID を 67720102、Channels を 18、Sleep Dur を200、Option Bits を 0x00000001、Sensor Mode をD1、SensorParameter を 0、SensorParameter2 を 15 に変更する。
    --- CONFIG/App_Tag V2-00-2/SID=0x81027aae/LID=0x00/RC=9696 ---
     a: set Application ID (0x67720102)
     i: set Device ID ()
     c: set Channels (18)
     x: set Tx Power (13)
     b: set UART baud (38400)
     B: set UART option (8N1)
     k: set Enc Key (0xA5A5A5A5)
     o: set Option Bits (0x00000001)
     d: set Sleep Dur (200)
     w: set Sensor Wait Dur (30)
     m: set Sensor Mode (0xD1)
     p: set Sensor Parameter (0)
     P: set Sensor Parameter2 ( 15 )
    ---
     S: save Configuration
     R: reset to Defaults

※ 本設定は5fpsでグラフのデータを更新します。加速度を100fpsで計測できないため注意してください。
また、送信間隔をより短く設定できますが、正しく動作しない可能性があります。

TWELITE CUEを使用する場合

TWELITE CUEは加速度以外のセンサーに接続できないため、加速度のグラフのみ出力可能です。

100fpsで加速度のグラフを出力する

TWELITE R2を接続してインタラクティブモードもしくはOTAにて下記のように Transmission Interval を 0、Senser Parameter を 13000200 に設定する。

--- CONFIG/App_CUE V1-00-2/SID=0x810ba765/LID=0x01 ---
 a: set Application ID (0x67720102)
 i: set Device ID (--)
 c: set Channels (18)
 x: set Tx Power (13)
 b: set UART baud (38400)
 B: set UART option (8N1)
 k: set Enc Key (0xA5A5A5A5)
 o: set Option Bits (0x00000001)
 t: set Transmission Interval (0)
 p: set Senser Parameter (0x13000200)
---
 S: save Configuration
 R: reset to Defaults
TWELITE PAL + 動作センサーパルを使用する場合

TWELITE PAL + 動作センサーパルは加速度以外のセンサーに接続できないため、加速度のグラフのみ出力可能です。

100fpsで加速度のグラフを出力する

TWELITE R2を接続してインタラクティブモードで下記のように Application ID を 67720102、Channels を 18、Transmission Interval を 0、Senser Parameter を 10000200 に設定する。

--- CONFIG/App_PAL V1-04-0/SID=0x82011cef/LID=0x01 ---
 a: set Application ID (0x67720102)
 i: set Device ID (--)
 c: set Channels (18)
 x: set Tx Power (13)
 b: set UART baud (38400)
 B: set UART option (8N1)
 k: set Enc Key (0xA5A5A5A5)
 o: set Option Bits (0x00000001)
 t: set Transmission Interval (0)
 p: set Senser Parameter (0x10000200)
 e: set Event Parameter(s) (0180002A0208002A0300802A0488002A0580802A0608802A0880000A1008000A)
---
 S: save Configuration
 R: reset to Defaults

MONOSTICKの準備

MONOSTICKには親機・中継機アプリ(App_Wings)を書き込んで使用します。

親機・中継機アプリの初期設定を使用するため、改めて設定する必要はありません。

スクリプトの実行方法

MONOSTICKのCOMポートがCOM6の場合、Anaconda Promptで下記コマンドを実行すると図のようなグラフが描画されます。(Teratermが接続された状態では起動できません。)

> cd C:\Graph
> python Graph.py -t COM6

スクリプトの引数

スクリプト実行時に以下の引数を使用できます。

引数:-h

機能:コマンドライン引数の一覧を表示
使用例:python Graph.py -h

引数:-t

機能:MONOSTICKが使用するポート名を指定
設定項目:MONOSTICKのポート名
初期値:Windowsの場合:COM3、Linuxなどの場合:/dev/ttyUSB0
使用例:python Graph.py -t COM6

引数:-b

機能:MONOSTICKが使用するポートのボーレートを指定
設定項目:MONOSTICKのボーレート
初期値:115200
使用例:python Graph.py -t COM6 -b 115200

引数:-s

機能:MONOSTICKからの入力書式を指定
設定項目:Ascii書式 or Binary書式
初期値:Ascii
使用例:python Graph.py -t COM6 -s Ascii

引数:-n

機能:グラフに表示する横軸の長さを指定
設定項目:サンプル数(1秒100サンプル)
初期値:128
使用例:python Graph.py -t COM6 -n 1000(10秒分に設定)

引数:-r

機能:グラフのY軸の幅の絶対値を指定
設定項目:Y軸のレンジ
初期値:2
使用例: python Graph.py -t COM6 -r 6(±6gに設定)

引数:-a

OTA

機能:CSV形式のログを出力
使用例:python Graph.py -t COM6 -a
備考:同一ディレクトリ内にCSVファイルが生成される。
ファイル名はAppTag_シリアル番号_センサ名_YYYYMMDD.csv

CSVファイルの読み方は下記表の通りです。

見出し 値の説明 単位
EndDeviceSID 子機のシリアルナンバー -
LQI LQI -
Power 電源電圧 mV
Temperature 温度
Humidity 湿度 %
Pressure 大気圧 hPa
AccelerationX 加速度(X軸) g
AccelerationY 加速度(Y軸) g
AccelerationZ 加速度(Z軸) g
Roll 角速度(ロール軸) dps
Pitch 角速度(ピッチ軸) dps
Yaw 角速度(ヨー軸) dps

引数:-v

機能:電源電圧のグラフを表示
使用例:python Graph.py -t COM6 -v

引数:-l

機能:LQI(電波強度)のグラフを表示
使用例:python Graph.py -t COM6 -l

引数:-A

機能:ADCのグラフを表示
使用例:python Graph.py -t COM6 -A

引数:-o

機能:受信したデータの詳細情報をプロンプトに出力
使用例:python Graph.py -t COM6 -o

引数:-p

機能:本スクリプトで作成したログファイルを再生
使用例:python Graph.py -p -t AppTag_1021745_ADXL34x_20170530.csv
備考:ログ中の取得時間は使用しない。更新頻度は-fで指定する。

引数:-f

機能:ログ再生モードのグラフの更新頻度を指定
設定項目:グラフの更新頻度(fps)
初期値:100
使用例:python Graph.py -a -t AppTag_1021745_ADXL34x_20170530.csv -f 200

Y軸のレンジを自動で変化させたい場合

グラフが出力されている状態で下図で示す部分をクリックすると、グラフに出力されている加速度に応じてY軸の範囲が変化するようになります。