STMicroelectronics UM2193 MotionAR アクティビティ認識ライブラリ

導入
Motion AR は、X-CUBE-MEMS1 ソフトウェアのミドルウェア ライブラリの一部であり、STM32 上で動作します。ユーザーが実行したアクティビティの種類に関するリアルタイムの情報を提供します。次のアクティビティを区別できます: 静止、歩行、早歩き、ジョギング、自転車、運転。
このライブラリは、ST MEMS でのみ動作することを目的としています。
このアルゴリズムは静的ライブラリ形式で提供され、ARM® Cortex®-M32、ARM® Cortex®-M3、ARM® Cortex®-M33、または ARM® Cortex®-M4 アーキテクチャに基づく STM7 マイクロコントローラで使用できるように設計されています。
これは、さまざまな STM32 マイクロコントローラ間での移植性を容易にする STM32Cube ソフトウェア テクノロジに基づいて構築されています。
ソフトウェアにはsが付属していますampファイルの実装は、NUCLEO-F01RE、NUCLEO-L3RE、または NUCLEO-U4ZI-Q 開発ボード上の X-NUCLEO-IKS1A401 または X-NUCLEO-IKS152A575 拡張ボードで実行されます。
頭字語と略語
表1.頭字語のリスト
| 頭字語 | 説明 |
| 翻訳 | アプリケーションプログラミングインターフェース |
| BSPS の | ボードサポートパッケージ |
| グラフィカルユーザーインターフェイス | グラフィカルユーザーインターフェース |
| ハル | ハードウェアアブストラクションレイヤー |
| IDE | 統合開発環境 |
X-CUBE-MEMS1ソフトウェア拡張のモーションARミドルウェアライブラリ
モーションAR終了view
Motion AR ライブラリは、X-CUBE-MEMS1 ソフトウェアの機能を拡張します。
ライブラリは加速度計からデータを取得し、ユーザーが実行したアクティビティの種類に関する情報を提供します。
このライブラリは ST MEMS 専用に設計されています。他の MEMS センサーを使用した場合の機能とパフォーマンスは分析されていないため、ドキュメントに記載されているものと大幅に異なる可能性があります。
Sampファイルの実装は、NUCLEO-F01RE、NUCLEO-L3RE、または NUCLEO-U4ZI-Q 開発ボードに搭載された X-NUCLEO-IKS1A401 または X-NUCLEO-IKS152A575 拡張ボードで利用できます。
モーションARライブラリ
Motion AR API の機能とパラメータを詳しく説明した技術情報は、MotionAR_Package.chm でコンパイルされた HTML にあります。 file Documentation フォルダーにあります。
モーションARライブラリの説明
- Motion AR アクティビティ認識ライブラリは、加速度センサーから取得したデータを管理します。特徴は次のとおりです。
- 次のアクティビティを区別する可能性: 静止、ウォーキング、早歩き、ジョギング、サイクリング、運転
- 加速度計データのみに基づく認識
- 必要な加速度計データampリング周波数:16 Hz
- リソース要件:
- Cortex-M3: 8.5 KB のコードと 1.4 KB のデータ メモリ
- Cortex-M33: 7.8 KB のコードと 1.4 KB のデータ メモリ
- Cortex-M4: 7.9 KB のコードと 1.4 KB のデータ メモリ
- Cortex-M7: 8.1 KB のコードと 1.4 KB のデータ メモリ
- ARM Cortex-M3、Cortex-M33、Cortex-M4、およびCortex-M7アーキテクチャで利用可能
MotionAR API
MotionAR API は次のとおりです。
- uint8_t MotionAR_GetLibVersion(char *version)
- ライブラリのバージョンを取得します
- *version は 35 文字の配列へのポインタです
- バージョン文字列の文字数を返します
- void MotionAR_Initialize(void)
- MotionARライブラリの初期化と内部機構のセットアップを実行します
- STM32 マイクロコントローラの CRC モジュール (RCC ペリフェラル クロック イネーブル レジスタ内) は、
ライブラリを使用する前に有効にしてください
注記: この関数は、加速度センサー キャリブレーション ライブラリを使用する前に呼び出す必要があります。
- void MotionAR_Reset(void)
- アクティビティ認識アルゴリズムをリセットします
- void MotionAR_Update(MAR_input_t *data_in, MAR_output_t *data_out, int64_t
タイムストamp)- アクティビティ認識アルゴリズムを実行します
- *data_in パラメータは入力データを含む構造体へのポインタです
- 構造体タイプ MAR_input_t のパラメータは次のとおりです。
- acc_x は X 軸の加速度計センサー値 (g)
- acc_y は、Y 軸の加速度計センサー値 (g)
- acc_z は Z 軸の加速度計センサー値 (g)
- *data_out パラメータは、次の項目を含む enum へのポインタです。
- MAR_NOACTIVITY = 0
- MAR_STATIONARY = 1
- MAR_ウォーキング = 2
- MAR_早歩き = 3
- MAR_ジョギング = 4
- MAR_BIKING = 5
- MAR_DRIVING = 6
- タイムストamp は実際の の相対時間ですampミリ秒単位のファイル
- void MotionAR_ Set Orientation_ Acc(const char *acc_ Orientation)
- 加速度計のデータの向きを設定します
- 設定は通常、Motion AR_Initialize 関数呼び出しの直後に実行されます。
- *acc_orientation パラメータは、加速度計のデータ出力に使用される基準フレームの正の向きのそれぞれの方向を x、y、z の順序で示す 3 文字の文字列へのポインタです。有効な値は次のとおりです: n (北) または s (南)、w (西) または e (東)、u (上) または d (下)
- 以下の図に示すように、X-NUCLEO-IKS4A1 加速度センサーには SEU (x-South、y-East、z-Up) があるため、文字列は「seu」になります。
図 1. センサーの向き例ample

APIフロー文字
図 2. モーション AR API ロジック シーケンス

デモコード
次のデモ コードは、加速度センサーからデータを読み取り、アクティビティ コードを取得します。
[…] #define VERSION_STR_LENG 35 […] /*** 初期化 ***/ char lib_version[VERSION_STR_LENG]; char acc_orientation[] = "seu"; /* アクティビティ認識 API 初期化関数 */ MotionAR_Initialize(); /* オプション: バージョンの取得 */ MotionAR_GetLibVersion(lib_version); /* 加速度センサーの向きを設定します */ MotionAR_SetOrientation_Acc(acc_orientation); […] /*** アクティビティ認識アルゴリズムの使用 ***/ Timer_ OR_ Data Rate_ Interrupt_ Handler() {
MAR_input_t data_in; MAR_ 出力_ t アクティビティ; /* 加速度 X/Y/Z を取得 */ MEMS_Read_AccValue(&data_in.acc_x, &data_in.acc_y, &data_in.acc_z); /* 現在時刻をミリ秒単位で取得します */ TIMER_Get_TimeValue(×tamp_MS); /* アクティビティ認識アルゴリズムの更新 */ MotionAR_Update(data_in, data_out, timestamp_MS); }
アルゴリズムのパフォーマンス
アクティビティ認識アルゴリズムは加速度計からのデータのみを使用し、消費電力を削減するために低周波数 (16 Hz) で実行されます。
表 2. アルゴリズムのパフォーマンス
| 活動 | 検出確率(代表値)(1) | 最高のパフォーマンス | 影響を受けやすい | キャリーポジション |
| 文房具 | 92.27% | 手に持って大量のテキストメッセージを送信する | 全て:ズボンのポケット、シャツのポケット、後ろポケット、頭付近など。 | |
| ウォーキング | 99.44% | ステップレート ≥ 1.4 ステップ/秒 | ステップレート ≤ 1.2 ステップ/秒 | 全て |
| 早歩き | 95.94% | ステップレート ≥ 2.0 ステップ/秒 | 全て | |
| ジョギング | 98.49% | ステップレート ≥ 2.2 ステップ/秒 | 期間 < 1 分。速度 < 8 Km/h | ズボンのポケット、腕振り、手の内 |
| サイクリング | 91.93% | 屋外速度 ≥11 Km/h | 助手席、小物入れ | バックパック、シャツのポケット、ズボンのポケット |
| 運転 | 78.65% | 速度 ≥ 48 Km/h | 助手席、小物入れ | カップホルダー、ダッシュボード、シャツのポケット、ズボンのポケット |
- 代表的な仕様は保証されません
表 3. Cortex-M4 および Cortex-M3: 経過時間 (μs) アルゴリズム
| Cortex-M4 STM32F401RE(84 MHz) | Cortex-M3 STM32L152RE(32 MHz) | ||||
| 分 | 平均 | マックス | 分 | 平均 | マックス |
| 2 | 6 | 153 | 8 | 130 | 4883 |
表 4. Cortex-M33 および Cortex-M7: 経過時間 (μs) アルゴリズム
| Cortex-M33 STM32U575ZI-Q (160 MHz) | Cortex-M7 STM32F767ZI(96 MHz) | ||||
| 分 | 平均 | マックス | 分 | 平均 | マックス |
| < 1 | 2 | 74 | 5 | 9 | 145 |
Sampファイルアプリケーション
MotionAR ミドルウェアは簡単に操作してユーザー アプリケーションを構築できます。としてampファイルアプリケーションはアプリケーションフォルダーに提供されます。
X-NUCLEO-IKS401A152 または X-NUCLEO-IKS575A01 拡張ボードに接続された NUCLEO-F3RE、NUCLEO-L4RE、または NUCLEO-U1ZI-Q 開発ボード上で動作するように設計されています。
アプリケーションは、実行されたアクティビティをリアルタイムで認識します。データはGUIを介して表示できます。このアルゴリズムは、静止、歩行、早歩き、ジョギング、自転車に乗る、および運転のアクティビティを認識します。リアルタイムデータを監視するには、USB ケーブル接続が必要です。ボードには、USB 接続を介して PC から電力が供給されます。これにより、ユーザーは検出されたアクティビティ、加速度計データ、時刻を表示できます。amp 最終的には、MEMS-Studio GUI アプリケーションを使用して他のセンサー データをリアルタイムで収集します。
MEMS-Studio アプリケーション
Sampファイル アプリケーションは MEMS-Studio GUI アプリケーションを使用します。このアプリケーションは次からダウンロードできます。 詳しくはこちら.
ステップ1。 必要なドライバーがインストールされていること、および適切な拡張ボードを備えた STM32 Nucleo ボードが PC に接続されていることを確認してください。
ステップ2。 MEMS-Studio アプリケーションを起動して、メイン アプリケーション ウィンドウを開きます。
サポートされているファームウェアを備えた STM32 Nucleo ボードが PC に接続されている場合、適切な COM ポートが自動的に検出されます。接続ボタンを押してこのポートを開きます。
図 3. MEMS-Studio – 接続

ステップ3。 サポートされているファームウェアを備えた STM32 Nucleo ボードに接続すると、[ライブラリ評価] タブが開きます。
データストリーミングを開始および停止するには、適切なスイッチを切り替えます。
始める /
外側の垂直ツールバーにある停止ボタン。
接続されたセンサーからのデータは、 view内側の垂直ツール バーで [データ テーブル] タブを選択します。
図 4. MEMS-Studio – ライブラリ評価 – データ テーブル
図5. MEMS-Studio – ライブラリ評価 – アクティビティ認識

ステップ5。 保存先を選択します File 内側の垂直ツールバーのタブをクリックして、データログ設定ウィンドウを開きます。ログに保存するセンサーとアクティビティ データを選択します file。対応する開始/停止ボタンをクリックすると、保存を開始または停止できます。
図 6. MEMS-Studio – ライブラリ評価 – 保存先 File

参考文献
次のリソースはすべて、次のサイトで無料で利用できます。 詳しくはこちら.
- UM1859: STM1Cube 用 X-CUBE-MEMS32 モーション MEMS および環境センサー ソフトウェア拡張の概要
- UM1724: STM32 Nucleo-64 ボード (MB1136)
- UM3233: MEMS-Studio の概要
改訂履歴
表5. 文書の改訂履歴
| 日付 | バージョン | 変更点 |
| 10年2017月XNUMX日 | 1 | 初回リリース。 |
| 26年2018月XNUMX日 | 2 | セクション 3 S を更新ampファイルアプリケーション。 NUCLEO-L152RE 開発ボードと表 3. 経過時間 (μs) アルゴリズムへの参照を追加しました。 |
| 19年2018月XNUMX日 | 3 | 概要、セクション 2.1 モーション AR を更新view およびセクション 2.2.5 アルゴリズムのパフォーマンス。 |
| 14年2019月XNUMX日 | 4 | 図 1 を更新しました。例のセンサーの向きampファイル、表 3. 経過時間 (μs) アルゴリズムおよび図 3. STM32 Nucleo: LED、ボタン、ジャンパー。 X-NUCLEO-IKS01A3 拡張ボードの互換性情報を追加しました。 |
| 20年2019月XNUMX日 | 5 | セクション 2.2.2 モーション AR API を更新、図 3. MEMS-Studio – 接続、図 4. MEMS-Studio – ライブラリ評価 – データ テーブル、図 5. MEMS-Studio – ライブラリ評価 – アクティビティ認識、および図 6. MEMS-Studio – ライブラリの評価 – 保存先 File. |
| 04年2024月XNUMX日 | 6 | アップデート セクションの紹介, セクション 2.1: MotionAR の終了view, セクション 2.2.1: MotionAR ライブラリ 説明、MotionAR API、 セクション 2.2.4: デモ コード, セクション 2.2.5: アルゴリズムのパフォーマンス, セクション3:Sampファイルアプリケーション そして セクション 4: MEMS-Studio アプリケーション. |
重要なお知らせ – よくお読みください
STMicroelectronics NV およびその子会社 (以下「ST」) は、ST 製品および/またはこのドキュメントを予告なしにいつでも変更、修正、拡張、修正、および改善する権利を留保します。購入者は、注文を行う前に ST 製品に関する最新の関連情報を入手する必要があります。ST 製品は、注文確認時に適用される ST の販売条件に従って販売されます。
ST 製品の選択、選択、使用については購入者が単独で責任を負い、ST は購入者の製品の適用支援や設計については一切責任を負いません。
ST は、明示的か黙示的かを問わず、いかなる知的財産権のライセンスも付与しません。
ここに記載されている情報と異なる規定を伴う ST 製品を再販した場合、当該製品に対して ST が付与した保証は無効になります。
STおよびSTロゴはSTの商標です。ST商標に関する追加情報については、 www.st.com/商標その他すべての製品名またはサービス名は、それぞれの所有者の財産です。
このドキュメントの情報は、このドキュメントの以前のバージョンで以前に提供された情報に優先し、置き換えられます。
© 2024 STマイクロエレクトロニクス – 無断転載を禁じます

ドキュメント / リソース
![]() |
STMicroelectronics UM2193 MotionAR アクティビティ認識ライブラリ [pdf] ユーザーマニュアル UM2193 MotionAR アクティビティ認識ライブラリ, UM2193, MotionAR アクティビティ認識ライブラリ, アクティビティ認識ライブラリ, 認識ライブラリ, ライブラリ |



