ADXL372を使ったアプリケーション例
「ADXL372」はアナログ・デバイセズ社 (ADI) が提供している小型・超低消費電力の加速度センサです。
コイン電池で動作する加速度センサ「ADXL372」とは? でも紹介したように、システム全体の電力を抑える必要のあるアプリケーションに最適な製品です。
本記事では、ADXL372の超低消費電力を活かしたアプリケーション例として、物流における荷物輸送中の衝撃を検出できる装置を作り、デモンストレーションした様子をご紹介します。
大切な荷物が輸送される間、どんな衝撃・振動が加わったか、データをロギングします。
どんな結果が得られたか、ご期待ください。
わずか3つのボードでシステムを構成
ADXL372は、SPIとI2Cのインターフェースを持っていてデジタル出力が可能です。このため、汎用マイコンを使い簡単に接続することができます。今回は超低消費なシステムを実現させるためADuCM3029を選びました。また、ロギングしたデータをパソコンに表示するため、UART-USB変換ICを使用します。
これら3つのボードに加え、コイン電池1個あればシステムは完成です。
ハードウェアの構成
以下の様なデバイス(ボード)を使いシステムを実現しています。
- 加速度センサ:ADXL372(EVAL-ADXL372Z)
- 超低消費マイコン: ADuCM3029(UCB-ADUCM3029-B)
- UART-USB変換IC: CP2102N(CP2102N-MINIEK)
- コイン電池:CR2032
動作仕様検討
ハードウェアの接続
各ボード間は、
- 加速度センサ - マイコン間 SPI、割込み信号
- マイコン - UART-USB変換IC間 UART、割込み信号
で接続しています。
ソフトウェアの仕様
主なソフトウェア仕様は以下の通りです。
今回のデモンストレーションでは、対象物に与えられた衝撃を異なる方式(モード)で計測できるようにしています。
- マイコン(ADuCM3029)からADXL372を初期化
異なる方式(モード)を選択して設定- インスタント・オン・インパクト・ディテクションモード
- キャプチャリング・インパクト・イベントモード
- マイコン(ADuCM3029)をハイバネートモード(Deep Sleep モード)に遷移
このとき、以下の割込み要因を設定しておきます。- ADXL372からの外部割込み(INT1ピン)
- ADXL372からの外部割込み(INT2ピン)
- ADXL372からのUART RX割込み
この間、ADXL372は自律動作を行い、衝撃検知を行います。
(マイコンは、RTCのみ動作し、コアは"寝た"状態で待機)
ADXL372は衝撃検知を行うと、所定の割込み要因を発生させます。
- 割込み発生時の動作
マイコンは、所定の割込みを検知するとActiveモードに遷移し以下の処理を実施
2-1. のINT1割込みのとき、ADXL372のFIFOをReadして格納
2-2. のINT2割込みのとき、内蔵RTC(Real Time Clock)のデータを格納
2-3. のUART RX割込みのとき、マイコン内に格納したデータを出力
異なる2つの方式(モード)
ADXL372は異なる2つの方式(モード)で加速度データを取得することができます。
- インスタント・オン・インパクト・ディテクションモード
設定した閾値を超えてから設定したFIFOの数がフルになるまでデータを取得できます。 - キャプチャリング・インパクト・イベントモード
設定した閾値を超えてから、もうひとつ設定した閾値を下回るまでの一番高い衝撃度を取得出来ます。
装置を荷物と一緒に入れてデータロギング
完成した装置を大切な荷物と一緒に入れて、輸送される間、どんな衝撃・振動が加わったかデータをロギングします。
※今回は、わざと強い衝撃を加えたデータを掲載しています。
パソコンでデータを確認
届いた荷物の中から、装置を取り出しデータを確認してみます。
UART-USB変換ICを使っているので簡単にパソコンに取り込めます。今回はデモンストレーションすることもあり、一目で分かるような表示画面を作成しています。こちらは、用途に合わせて作成してください。
インスタント・オン・インパクト・ディテクションモードのロギング結果
グラフの縦軸は加速度、横軸は時間を表しており、閾値を超えた3回の強い衝撃をロギングするようにソフトウェアを作成しました。
3回目に検出した衝撃が最も強く、腰くらいの高さから落としたと思われる200Gの衝撃が加わり、次にバウンドしかたのような80Gの衝撃を検出したことが分かります。
このようにインスタント・オン・モードでは、設定した閾値を超えてから設定したFIFOの数がフルになるまでデータを取得するので、衝撃・振動の変化の様子が分かります。もちろん、マイコンのRTC機能を使っているので、衝撃を検出した時間も知ることができます。
キャプチャリング・インパクト・イベントモードのロギング結果
グラフの縦軸は加速度のピーク値を表します。
一度、閾値を下回ってから、再度、閾値を超えると横軸方向にプロットが追加されます。インスタント・オンモードと同時に計測しているのですが、トリガ後、約10ms経ってからロギングするため、最大の衝撃は130Gとなりました。こちらも衝撃を検出した時間を知ることができます。
最後に
今回の加速度センサ「ADXL372」を使った応用例は如何でしたか?
ネットショッピングの急増に伴い荷物輸送中のトラブルも増加しており、激しい衝撃や振動をモニタリングするという要望も高まってきていますので、是非、本記事を参考にアプリケーション開発をされては如何でしょうか?
おすすめ記事/資料はこちら
コイン電池で動作する加速度センサ「ADXL372」とは?
超低消費電力が最大の魅力 Arm® Cortex® -M3マイコン ADuCM3029