STマイクロエレクトロニクスのインダストリアルIoT向けワイヤレス・センサ・ノード用開発キット「STWIN」には、製造設備などの予知保全にも使える可能性のあるファームウェアが用意されています。今回はこのファームウェアをSTWINに入れて、振動状態をモニタしてみます。異常な振動を検知した場合には、アラートを出すことができるので、予知保全に応用できると思います。今回は、振動状態をスマートフォンのアプリでモニタするデモを試してみました。
・ハードウェアの組立て&ファームウェアの書き込み
・専用アプリのインストール(スマートフォン)
・動作確認
の手順で進めていきます。
1.ハードウェアの準備
【用意するもの】
- STWINスタータキット:STEVAL-STWINKT1B
- USBケーブルx2(USB-Micro)
- パソコン (Windows7/10)
搭載されているセンサ
STWINのセットアップ
同梱されているリチウムイオン・バッテリをボード裏側のコネクタに接続し、ケース内に入れて4か所ネジ止めします。
M3ネジ(12mm、3x12)
2.ファームウェアの準備
STM32CubeProgrammerのインストール
(既にインストール済みであればスキップ)
初めてパソコンでSTM32マイコンの開発ボードを使用する場合、 STM32CubeProgrammer (旧ツール:ST Link Utility)をインストールしてCOMポート・ドライバなどを入れます。このツールはSTM32マイコンにファームウェア・プログラムを書き込む際に一般的に使いますが、今回は使用しません。後述しますように簡易書き込みで行います。
ダウンロードはこちらから:STM32CubeProgrammer
動作用ファームウェアの入手(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」
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)
両USBケーブルの接続が完了したらWindowsエクスプローラで確認します。
ボードを両USBケーブルで接続すると、 「STLINK_V3M」 といったUSBメモリ・デバイスのような形式で認識されます。
ファームウェアの書き込み
先ほど確認した「STM32L4R9ZI-STWIN_PredictiveMaintenance_BL_vx.x.x.bin」というバイナリ・ファイルを、この「STLINK_V3M」へドラッグ&ドロップ。
これだけでSTM32 マイコンへのファームウェア書き込みは完了です。
「容量が足りなくて書き込めない」といったメッセージが出た場合、STLINK側のUSBコネクタを抜き差ししてみてください。
終了後、USBケーブルを2本とも外します。STWIN上のJ2コネクタも取り外します。
3.アプリのインストール
(ここではAndroidスマートフォンを例に説明しますが、iPhoneでも同じアプリが用意されているので同様の操作で実行できます)
Google Playアプリにて“st ble”などで検索するとST BLE Sensorというアプリが見つかりますので、こちらをインストールしてください。STのセンサ・デモは大抵こちらのアプリに対応しています。センサ情報を無線(Bluetooth® Low Energy)でスマートフォンなどに送り、そのデータをアプリでモニタできるようになっています。
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接続。接続方法は下図を参考ください。
FFT確認画面
FFTAmplitude 画面に移動すると、振動状態を周波数ドメインで確認することができます。設定された時間(デフォルト=5秒)データを取得後、Bluetooth LEでデータを転送します。この画面を表示させている間は“データ取得&転送”動作を繰り返します。FFTパラメータに関する設定変更も可能です。下図を参照ください。
予知保全画面
左スワイプを何度か繰り返してこの画面へ移動。ファームウェア内に設定された数値を基準に、リアルタイムで以下項目において2段階の警告判定をしています。ステータスとしては、Good/Warning/Alertの3種類があり、Waring用しきい値を超えると”Warning”、さらにAlert用しきい値を超えると“Alert”が表示がされます。
・RMS速度(m/s)
・加速度ピーク(m/s^2)
・周波数サブレンジ毎加速度ピーク(m/s^2)
ステータス・アップデートの時間間隔は、FFTAmplitude画面のFFTsettingsにて変更できます。また画面上のStart loggingをタップすることでスマートフォン内(STMicroelectonics>logsフォルダ内)にログファイルを残すことができます。
5.しきい値の設定
再度コンパイルが必要ですが、X、Y、Z軸それぞれに“Warning用”と“Alert用”といった2段階のしきい値を設定できます。
RMS速度の例
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を使ってインターネットに接続し、クラウド上で振動状態をモニタできるバージョンも入っているようです。次回はこちらを試してみます。