LoginSignup
0
0

IoT向け小型センサ・ノード開発キット「STWIN.box 」を使ってセンサ・データ収集① セットアップ & GUI操作

Last updated at Posted at 2024-03-01

STマイクロエレクトロニクスのインダストリアルIoT向けワイヤレス・センサ・ノード用開発キット「STWIN.box」(STEVAL-STWINBX1)を使って、センサ・データの収集(データ・ロギング)を試してみます。使用するソフトウェアは、データ収集用として用意されているFunction Pack「FP-SNS-DATALOG2」です。
STWIN.boxは、従来品である「STWIN」(STEVAL-STWINKT1B)の上位版です。STWINと同様に、予知保全や機械学習、産業機器用のデータ・センシングに利用できます。主な変更点としては、傾斜計向けの高精度加速度センサの追加や一部センサの変更の他、Wi-FiやNFCが追加されています。またプラスチックケースで基板全体をカバーすることで防塵対策されています。

000_overview_.png

操作方法についても、STWIN同様に大きく分けて2つ用意されています。データの保存先はPC内ストレージまたは、STWIN.box本体内のSDカードです。

  • PCへUSB経由保存(USBケーブル接続、コマンドやバッチファイルで操作)
  • 内蔵SDカードへ保存(スマートフォンとBluetooth LE接続または、本体スイッチによる操作)

FP-SNS-DATALOG2での追加機能: Python GUI

従来のファンクション・パックFP-SNS-DATALOG1では、データ取得やグラフプロット表示の際、主にPythonスクリプトをコマンド入力で操作していました。また、データのリアルタイム・プロット表示はできませんでした。FP-SNS-DATALOG2では、GUIで操作可能な hsdatalog_gui.py が追加され、この画面上で各センサのパラメータ設定やログスタート・停止の操作が行えます。またGUI画面上でグラフプロットのリアルタイム表示が可能です。前回のSTWIN記事の時と同じように今回もUSB接続による方法を実行してみますが、“2”で新しく追加されたGUIを使ってみます。

High Speed Datalog GUIコントロールウインドウ
001_GUI.png

参考資料
ユーザ・マニュアル: UM3106

  • 関連記事

IoT向け小型センサ・ノード開発キット「STWIN 」を使ってセンサ・データ収集①
IoT向け小型センサ・ノード開発キット「STWIN 」を使ってセンサ・データ収集② スタンドアロンで実行

1.ハードウェアの準備

【用意するもの】

  • STEVAL-STWINBX1:STWIN.box
  • スマートフォン(本記事ではAndroidを使用)
  • パソコン(本記事ではWindows PCを使用)
  • ST-LINK/V2 または STLINK-V3 + 接続用USBケーブル(Mini / Micro / Type-C)
  • キット本体用USB Tyep-Cケーブル
  • +ドライバー

キット本体用のUSB Type-Cケーブルですが、最初、手元にあった格安品を使用したところエラーが多発しました。別のUSBケーブル(スマートフォン付属品)に変えたところ問題無かったので、ケーブル品質に左右される可能性があります(USB 1.x接続ですが、仕様と比較すると比較的高速(6Mbit/s)で通信しています)。

1-1.搭載されているセンサおよびマイコン

基板 表面
100_STWINbox_board_up_.png

基板 裏面
101_STWINbox_board_doown_.png

1-2.STWIN.boxのセットアップ

今回はテスト的に使用するので、カバーケースへの組み付けはしません。基板スペーサなどを利用しても良いでしょう。下側の土台ケースだけ使って仮止めする場合、6mm程度の短めの木ネジを用意してください(同梱されているネジは上側カバーと一緒に組付け用の長さになっているおり、少し長いため)。

120_setup1_.png

121_setup2_.png

実使用時は、同梱されているリチウムイオン・バッテリをボード裏側のコネクタに接続し、上下ケース内に入れて同梱のネジで5ヵ所ネジ止めします。ケース内に取り付けた状態でSDカードの取り外しはできませんので注意してください(再度開封が必要)。なお、本記事内ではSDカードは使用しません。

2.ファームウェアの準備

2-1.STM32CubeProgrammerのインストール

※既にインストール済みであればスキップしてください。

初めてパソコンでSTM32マイコンの開発ボードを使用する場合、 STM32CubeProgrammer (旧ツール:ST Link Utility)をインストールしてCOMポート・ドライバなどを入れます。このツールはSTM32マイコンにファームウェア・プログラムを書き込む際に使う基本ツールです。

ダウンロードはこちらから:STM32CubeProgrammer

210_Programmer.png

2-2.動作用ファームウェアの入手(FP-SNS-DATALOG2)

続いて、デモ用プログラム・ファイルをダウンロードします。
ダウンロードはこちらから:「FP-SNS-DATALOG2」

ダウンロードしたファイルを解凍すると、そのまま統合開発環境用の作業フォルダができあがります。以下のフォルダに今回使用するデモ用プログラム・ファイル(バイナリ・ファイル)が用意されているので、まずはファイルを確認します。
ファイル保管場所(例):Drive:...\STM32CubeFunctionPack_DATALOG2_V1.2.0\Projects\STWIN.box\Applications\DATALOG2\Binary
ファイル名:DATALOG2_Release.bin

220_BinaryFW.png

Project → STWIN.box用フォルダ下には以下2つのProjectフォルダが用意されていますが、今回はDATALOG2を使います。

  • DATALOG2(データロギング用)
  • UltrasoundFFT(超音波FFT用)

2-3.STWIN.boxにファームウェアを書き込む

書き込み方法はいくつかあります。
STWIN.box含め、STM32マイコン・ベースの評価キットのファームウェアを書き換えるためには、基本的にST-LINKと呼ばれるデバッグ・ツールが必要です。前モデルのSTWINキットにはSTLINK-V3(STLINK-V3MINI / STLINK-V3MINIE)が同梱されていましたが、STWIN.boxキットには同梱されていません。持っていない場合、別途購入して用意してください。ST-LINKは何種類か存在しますが、「STLINK-V3xxx」を推奨します。

    STLINK-V3ツールもしくはNucleo-64ボードを利用して書き込み
    最も標準的で簡単な方法です。
    ST-LINK/V2ツールで書き込み
    STM32CubeProgrammerを利用すれば、ST-LINK/V2でも書き込み可能です。
    STWIN.boxをDFUモード(USBモード)で起動し、USBで直接書き込み
    デバッグ作業は出来ませんが、簡易的な書き込みとして利用できます。ST-LINKツール(上記方法①&②)を使う場合、基板上の専用コネクタに接続する必要があるためケースに入れた状態ではアクセスできません。基板をケースに入れてしまった後でファームウェアを変更したい場合、こちらの方法で書き換え可能です。
    ④ スマートフォンとBluetooth LEで接続後、FOTA(Firmware update Over The Air)で書き込み
    スマートフォンから無線で書き換えることもできますが、ここでは省略します。

ここでは、①STLINK-V3ツールを使った方法をメインに説明しますが、後半に②と③についても簡単に紹介します。

書き込み方法① STLINK-V3 / STM32 Nucleo-64ボード

以下のいずれかを用意してパソコンと接続

  • STLINK-V3MINI*(Micro USB Type-B)
  • STLINK-V3MINIE(USB Type-C)
  • 標準的なSTM32 Nucleo-64ボード(どのSTM32マイコンでも可)

*生産終了のため、新規購入不可

ボード本体のUSB Type-Cコネクタから本体側への電源供給が必要なので、こちらは適当なUSB電源アダプタを利用します(同じパソコンへの接続でもOK)

  • STLINK-V3VMINI使用時の接続
    230_STLINKV3_.png

標準的なSTM32マイコン・ボードであるSTM32 Nucleo-64ボードを持っている場合、キット付属の変換基板を使うことで同じようにアクセスできます。STM32 Nucleo-64ボードのST-LINK部分だけ利用するので、CN2ヘッダ・ピンにある2つのジャンパは外します(SWDライン(TMS, TCK)の切り替え)。

  • STM32 Nucleo-64ボード使用時の接続
    232_STLINK_Nucleo_.png

古いSTM32 Nucleo-64ボードでは正常に認識されない可能性があります。その場合はSTM32CubeProgrammerを利用してST-LINKのファームウェアをアップグレードしてみてください(アップグレード時はSTM32 Nucleo-64ボードのみPCと接続)

STM32CubeProgrammer → Firmware upgrade
235_STLINK_FWupgrade_.png

Debug Mode

*プログラム開発環境で実行する場合の注意事項です。通常使用の場合スキップしてください

STWIN.boxに搭載されているSTM32U5マイコンはDual Bank機能を備えているため、Option Byte > User Configuration > SWAP_BANK設定により、Flashエリア内BANKを切り替えることができます(BANK1 / BANK2)。STM32CubeIDEなどのプログラム開発環境上でDebug Modeから実行する場合には、BANK1にプログラムを置く必要があります。STM32CubeProgrammerツールのSWAP_BANK設定から、チェックが外れているかどうか確認してください(Unchekcedにセット)

237_STLINK_OptionByte.png

238_STLINK_OptionByte_swapbank.png

ファームウェア書き込み

接続準備が完了したら、先ほど確認した「DATALOG2_Release.bin」というバイナリ・ファイルを、「STLINK_***」へドラッグ & ドロップ。これだけでSTM32 マイコンへのファームウェア書き込みは完了です。
「容量が足りなくて書き込めない」といったメッセージが出た場合、ST-LINK側のUSBコネクタを抜き差ししてみてください。

240_Program_FW_.png

ST-LINK接続ケーブルを外して、本体のUSBコネクタとPCを接続した状態で再起動します(中央ボタンでリセット)。
緑LEDが約2秒周期で点滅した状態であれば正常です。
書き込みが終了したら2-4.Pythonライブラリモジュールのインストールに進んでください。

書き込み方法② ST-LINK/V2

ST-LINK/V2でも書き込み可能ですが、ドラッグ & ドロップによるファイル書き込みができないため、STM32CubeProgrammerから直接操作します。

以下をパソコンと接続

ST-LINK/V2(Mini USB Type-B)

同梱の変換基板を経由して、ST-LINK/V2と接続します。ボード本体のUSB Type-Cコネクタから本体側への電源供給が必要なので、こちらは適当なUSB電源アダプタを利用します(同じパソコンへの接続でもOK)

250_STLINKV2_.png

STM32CubeProgrammerによるファームウェア書き込み

パソコンへの接続が完了したらSTM32CubeProgrammerを起動し、以下手順で書き込みします。なお、STM32CubeProgrammerはSTM32マイコン用の基本ツールなので、STLINK-V3なども共通で使えます。

252_STLINKV2_CubeProg1_.png

さきほど確認したバイナリ・ファイルをオープン
ファイル名:DATALOG2_Release.bin

254_STLINKV2_CubeProg2.png

Downloadボタンで書き込み実行

256_STLINKV2_CubeProg3_.png

書き込みが終了したら2-4.Pythonライブラリモジュールのインストールに進んでください。

書き込み方法③ DFUモード

ST-LINKを使用せず、USBから直接書き込む方法です。最初にSTWIN.boxをDFUモードで起動させる必要があります。

パソコンと接続 & DFUモード設定

パソコンとUSBケーブルで接続後、以下操作によりDFUモードで起動させます。

260_DFUmode_.png

ファームウェア書き込み

次にSTM32CubeProgrammerを起動し、“USB”を選択して“Connect”クリックします。その後の手順は②のST-LINK/V2と同じです。STM32CubeProgrammerによる書き込み方法を参照ください。

261_DFUmode_CubeProg1.png

書き込み終了したら次に進みます。

2-4.Pythonライブラリ・モジュールのインストール(パソコン)

今回、GUI環境であるhsdatalog_gui.pyを実行しますが、このscriptを使うためには、別途pythonライブラリ・モジュールをパソコンにインストールする必要があります。

インストール用バッチファイルが用意されているので、コマンドプロンプト(ここではAnacondaプロンプト使用)から実行します。社内ネット環境などでproxyサーバが設定されている場合、そのhttp proxyを指定してインストールします。
バッチファイル場所:
D:...\STM32CubeFunctionPack_DATALOG2_V1.2.0\Utilities\HSDPython_SDK

HSDPython_SDK_install.bat
HSDPython_SDK_install.bat
@ECHO OFF
:: This batch file is used to install all Python packages needed to use the HSDPython_SDK and its examples
ECHO HSDPython_SDK Installer
ECHO.
ECHO [NOTE]: If you are using a proxy launch this script passing your proxy string as a parameter.
ECHO -- e.g.: HSDPython_SDK_install.bat http://usr_name:password@proxyserver_name:port#
ECHO.
set proxy_string=%1
:: Section 1: st_pnpl
ECHO ===========================================
ECHO installing st_pnpl...
ECHO ===========================================
if "%proxy_string%"=="" (python -m pip install st_pnpl\dist\st_pnpl-1.1.0-py3-none-any.whl) else (python -m pip install st_pnpl\dist\st_pnpl-1.1.0-py3-none-any.whl --proxy %proxy_string%) 
:: Section 2: st_dtdl_gui
ECHO ===========================================
ECHO installing st_dtdl_gui...
ECHO ===========================================
if "%proxy_string%"=="" (python -m pip install st_dtdl_gui\dist\st_dtdl_gui-1.1.0-py3-none-any.whl) else (python -m pip install st_dtdl_gui\dist\st_dtdl_gui-1.1.0-py3-none-any.whl --proxy %proxy_string%) 
:: Section 3: st_hsdatalog (GUI version)
ECHO ===========================================
ECHO installing st_hsdatalog (GUI version)...
ECHO ===========================================
if "%proxy_string%"=="" (python -m pip install st_hsdatalog\dist\GUI\st_hsdatalog-2.1.0-py3-none-any.whl) else (python -m pip install st_hsdatalog\dist\GUI\st_hsdatalog-2.1.0-py3-none-any.whl --proxy %proxy_string%) 
:: Section 4: asciimatics needed from hsdatalog_cli.py example script
ECHO ===========================================
ECHO installing asciimatics...
ECHO ===========================================
if "%proxy_string%"=="" (python -m pip install asciimatics) else (python -m pip install asciimatics --proxy %proxy_string%) 
PAUSE

実行例(http以下は環境依存):
(base) D:\...\Utilities\HSDPython_SDK>hsdpython_sdk_install.bat http://172.29.52.82:80

以上で準備完了です。

Note:

  • 標準Pythonインストール環境の場合(= Windowsコマンドプロンプトから実行)、実行前にWindowsの環境変数にpython.exeのPATHが設定されていることを確認してください。
  • 標準Pythonのバージョンが3.12以上の場合、モジュールのインストール時にエラーになる可能性があります(FP-SNS-DATALOG2 v1.2.1内バッチファイルでは、Python 3.12.0環境でエラーとなる)。その場合、Python 3.11.xを再インストールしてください。
  • FP-SNS-DATALOG2ファームウェアのバージョンを更新する場合、上記のPythonライブラリ・モジュールも同じパッケージ(FP-SNS-DATALOG2内Utilities\HSDPython_SDKフォルダ)に入っているバージョンに合わせるようにしてください。この後実行するGUIが正常動作しない可能性があります。その場合、使用するバージョン内Utilitiesフォルダに入っているバッチファイルを実行して再インストールしてください。(例: V1.2.0 → V1.2.1への変更の際など)

3.グラフ・プロット用GUIの操作

パソコンにSTWIN.boxを接続した状態で進めます。

3-1.hsdatalog_guiを実行

(2-4.Pythonライブラリ・モジュールのインストールから継続の場合、同じコマンドプロンプトで実行可能です)
Utilities下のHSDPython_SDK\examplesフォルダに移動し、 hsdatalog_gui.py を実行します。

(base) D:\...\Utilities\HSDPython_SDK\examples>python hsdatalog_gui.py

スタート画面が起動します。Connectをクリックするとメイン画面が表示されます。

310_gui_start_.png

メイン画面の左側は各センサの設定用です。
Start Logボタンをクリックするとログ開始します。右側はログ取得中リアルタイムにグラフ描画されます。Stop Logボタンをクリックで停止です。
このGUI上から操作する場合、ログ・データはSDカードではなく、PC内ストレージに保存されます。

311_gui_main_.png

各センサの下矢印をクリックするとパラメータを確認できます。変更できるパラメータに関してはプルダウン・メニューで選択、もしくは直接数値を入力できます。

312_gui_sensor_.png

取得したデータは同じexampleフォルダ内に自動でフォルダが作成され、その中に保存されます。

3-2.プロット表示

ログ取得終了後、各センサ・データをPythonグラフ描画できます。これはFP-SNS-DATALOG1で用意されているPythonスクリプトと同じ機能です(hsdatalog_plot.py)。FP-SNS-DATALOG2では、この機能をGUIから呼び出せます。Plot the last acquisitionをクリックするとPythonグラフ・ウインドウが新たに開きます。デフォルトのallを選択した状態では全てのセンサ・データのグラフが表示されるため、限定したい場合はComponent Nameからセンサを指定します。

320_gui_plot_select_.png

例)IIS3DWBのグラフ・プロット

3-3.その他

センサの選択

GUI起動時、デフォルトでは機械学習コア(MLC)以外の全センサがアクティブになっているので、PC内に保存されるデータ量が大きくなりがちです。特に音声データはサイズが大きくなります。特定のセンサ・データだけ記録したい場合、センサ左側のボタンをクリックすることでオン / オフできます(緑丸表示 = オン)

330_gui_sensorSelect_.png

オートモード

FP-SNS-DATALOG1ではSDカード内のConfigurationファイルに設定することでオートモードを利用できましたが、DATALO2ではGUI上から操作します。

331_gui_automode_.png

以上、今回はSTWIN.boxを使ってデータ・ロギングをGUIで操作するツールを試してみました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0