0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

IoT向け小型センサ・ノード開発キット「STWIN」が予知保全に使える!?  スマホ編(基本)

Last updated at Posted at 2020-11-12

STマイクロエレクトロニクスのインダストリアルIoT向けワイヤレス・センサ・ノード用開発キット「STWIN」には、製造設備などの予知保全にも使える可能性のあるファームウェアが用意されています。今回はこのファームウェアをSTWINに入れて、振動状態をモニタしてみます。異常な振動を検知した場合には、アラートを出すことができるので、予知保全に応用できると思います。今回は、振動状態をスマートフォンのアプリでモニタするデモを試してみました。
・ハードウェアの組立て&ファームウェアの書き込み
・専用アプリのインストール(スマートフォン)
・動作確認
の手順で進めていきます。

01_stwin_overview.jpg

1.ハードウェアの準備

【用意するもの】

02_stwin_package_.png

搭載されているセンサ

03_stwin_sensors.jpg

STWINのセットアップ

同梱されているリチウムイオン・バッテリをボード裏側のコネクタに接続し、ケース内に入れて4か所ネジ止めします。
M3ネジ(12mm、3x12)

04_stwin_setup.jpg

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

STM32CubeProgrammerのインストール

(既にインストール済みであればスキップ)
初めてパソコンでSTM32マイコンの開発ボードを使用する場合、 STM32CubeProgrammer (旧ツール:ST Link Utility)をインストールしてCOMポート・ドライバなどを入れます。このツールはSTM32マイコンにファームウェア・プログラムを書き込む際に一般的に使いますが、今回は使用しません。後述しますように簡易書き込みで行います。
ダウンロードはこちらから:STM32CubeProgrammer
stweb_stm32cube.jpg

動作用ファームウェアの入手(FP-IND-PREDMNT1)

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

ダウンロードしたファイルを解凍すると、そのまま統合開発環境用の作業フォルダができあがります。以下のフォルダに今回使用するデモ用プログラム・ファイル(バイナリ・ファイル)が用意されているので、まずはファイルを確認します。
今回はベーシック版のBluetooth®のみ使いますので、“xxx_BLE”フォルダに入ります。また、そのまま書き込みして使えるようにするので、ファイル名に”BL”付き(boot loader版)のものを使用します。*1
ファイル保管場所(例):
Drive:_MySTM32Cube3\STM32CubeFunctionPack_PREDMNT1_V2.2.0\Projects\STM32L4R9ZI-STWIN\Demonstrations\Predictive_Maintenance_BLE\Binary
ファイル名:「STM32L4R9ZI-STWIN_PredictiveMaintenance_BL_v2.2.0.bin」

pc_explorer_binfile.jpg

FOTA機能(Firmware-Over-The-Air。スマートフォンなどからBluetooth LE経由でファームウェアを書き換える機能)と合わせてデザインされているため、ファームウェア本体(“BL”無しのバイナリ・ファイル)をそのままユーザ先頭アドレス(0x08000000~)に書き込んでも動きません。Bootloaderをまず先頭に配置し、プログラム・エリア(0x08004000~)にファームウェア本体を置くことで動作します。“BL”付きはBootloader部分と合わせたファイル構成となっているのでそのまま動きます。

STWINにファームウェアを書き込むための準備(パソコンと接続)

STWINスタータ・キットに同梱されている小さいボード(STLINK-B3MINI)とSTWINをケーブルで接続します。STWINボード側は単なる2列ヘッダ・ピンなので向きと列に注意してください(逆差し防止がありません)。ケーブルの赤側(pin1)をボードコネクタの“J2”表記に合わせます。その後STLINKボードのUSB-Microコネクタ経由でパソコンに接続します。また、ボードへの電源はボード本体のUSB-Microコネクタから供給が必要なので、こちらは適当なUSB電源アダプタを利用します(同じパソコンへの接続でもOK)

12_connection_FWdownload.png

両USBケーブルの接続が完了したらWindowsエクスプローラで確認します。
ボードを両USBケーブルで接続すると、 「STLINK_V3M」 といったUSBメモリ・デバイスのような形式で認識されます。
pc_STLINK_V3M.jpg

ファームウェアの書き込み

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

終了後、USBケーブルを2本とも外します。STWIN上のJ2コネクタも取り外します。

3.アプリのインストール

(ここではAndroidスマートフォンを例に説明しますが、iPhoneでも同じアプリが用意されているので同様の操作で実行できます)
Google Playアプリにて“st ble”などで検索するとST BLE Sensorというアプリが見つかりますので、こちらをインストールしてください。STのセンサ・デモは大抵こちらのアプリに対応しています。センサ情報を無線(Bluetooth® Low Energy)でスマートフォンなどに送り、そのデータをアプリでモニタできるようになっています。
stble_app.jpg

4.動作確認 「予知保全」(Predictive maintenance)

起動について

起動方法は2つあります。
電源オン

  • バッテリ接続の場合: PWRスイッチ2秒程度長押し→5~7秒程度待った後、うっすらとLED1が点滅開始(Bluetooth 接続Ready状態)
  • USB接続の場合: 5~7秒程度待った後、うっすらとLED1が点滅開始(Bluetooth 接続ready状態)
    電源オフ
  • バッテリ接続の場合: PWRスイッチ2秒程度長押し(赤LEDが点灯継続)
  • USB接続の場合: 常時オン(電源オフ不可)

USBケーブル接続で5V電源が供給されている場合、常時オン状態となります(電源オフ不可)。USBケーブルを外しても電源オン状態は継続します。電源オフしたい場合は、USBケーブルを外した後PWRスイッチを長押しします。
バッテリー駆動の場合、スイッチ長押しでオン/オフできます。

ここではとりあえずUSBケーブル接続して電源オンします。

接続

STWINのUSB-MicroコネクタにPC等から接続して電源オンします。次にスマートフォンのST BLE Sensorアプリを立上げてBluetooth接続。接続方法は下図を参考ください。
stble_start.jpg

FFT確認画面

FFTAmplitude 画面に移動すると、振動状態を周波数ドメインで確認することができます。設定された時間(デフォルト=5秒)データを取得後、Bluetooth LEでデータを転送します。この画面を表示させている間は“データ取得&転送”動作を繰り返します。FFTパラメータに関する設定変更も可能です。下図を参照ください。
stble_fft.jpg

予知保全画面

左スワイプを何度か繰り返してこの画面へ移動。ファームウェア内に設定された数値を基準に、リアルタイムで以下項目において2段階の警告判定をしています。ステータスとしては、Good/Warning/Alertの3種類があり、Waring用しきい値を超えると”Warning”、さらにAlert用しきい値を超えると“Alert”が表示がされます。
・RMS速度(m/s)
・加速度ピーク(m/s^2)
・周波数サブレンジ毎加速度ピーク(m/s^2)
stble_predictive.jpg

ステータス・アップデートの時間間隔は、FFTAmplitude画面のFFTsettingsにて変更できます。また画面上のStart loggingをタップすることでスマートフォン内(STMicroelectonics>logsフォルダ内)にログファイルを残すことができます。

5.しきい値の設定

再度コンパイルが必要ですが、X、Y、Z軸それぞれに“Warning用”と“Alert用”といった2段階のしきい値を設定できます。
RMS速度の例

MotionSP_Threshold.h
static const sTimeDomainThresh_t TDSpeedRMSThresh = 
{/* Value in mm/s */
  5.65f,        //!< SPEED_RMS_THR_WARN_AXIS_X
  5.65f,        //!< SPEED_RMS_THR_WARN_AXIS_Y
  5.65f,        //!< SPEED_RMS_THR_WARN_AXIS_Z
  9.65f,        //!< SPEED_RMS_THR_ALARM_AXIS_X
  9.65f,        //!< SPEED_RMS_THR_ALARM_AXIS_Y
  9.65f,        //!< SPEED_RMS_THR_ALARM_AXIS_Z
}; 

他項目の加速度ピーク、周波数サブレンジ毎加速度ピークの設定も同じMotionSP_Threshold.hファイル内にて変更できます。設定変更後、再コンパイル&ビルドして出来上がったバイナリ・ファイル(もしくはHexファイル)をSTM32CubeProgrammerにてSTWINに書き込みした後試してみてください。

いかがでしたでしょうか?
今回使用した開発用ファームウェア・パッケージ「FP-IND-PREDMNT1」の中には、WiFiを使ってインターネットに接続し、クラウド上で振動状態をモニタできるバージョンも入っているようです。次回はこちらを試してみます。

IoT向け小型センサ・ノード開発キット「STWIN」が予知保全に使える!? クラウド編

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?