【加速度センサー入門】タップ検出機能を使ってみよう

【加速度センサー入門】シリーズでは、アナログ・デバイセズ社の加速度センサーを中心に、基本的な使い方や応用方法を解説します。前回の記事では、加速度センサー「ADXL345」 と「Arduino」を使い、「アクティビティ・インアクティビティ検出機能」をご紹介しました。本記事では、ADXL345に搭載されている「セルフテスト機能」をご紹介します。

【加速度センサー入門】シリーズ一覧はこちらから

セルフテスト機能とは

一般にメカニカルな部分を持つMEMS加速度センサーでは自己診断機能としてセルフテスト機能が備わっています。セルフテスト機能を使うことで、IC内部のセンサー素子と信号処理回路の動作確認をおこなうことができます。

ADXL345はセルフテスト機能を有効にすると、センサー素子に静電気力が働きます。この静電気力は加速度が入力された場合と同様にセンサー素子を移動させ、 x 軸、y軸、z 軸の出力変化が起こります。この出力変化がデータシートの電気的特性に規定されている「SELF-TEST」値に入っているかを確認することで、自己診断機能として活用することが可能となります。

一般的に加速度センサーは、許容加速度値の上限(絶対定格)をデータシートで規定してあり、過大な衝撃を加えると、ICにダメージが加わる可能性があります。セルフテスト機能は、意図的に衝撃や力を加える必要はなく、電気信号の制御だけで自己診断機能が行るため、製造時・出荷時のテスト工程などでセルフテスト機能が活用されています。

センサー構成やICの動作原理については下記プリケーションノートをご参考ください。
ANJ-0005: 加速度センサーとは?

・Sonic Nirvana: Using MEMS Accelerometers as Acoustic Pickups in Musical Instruments

参考までにADXL335のセルフテスト機能を有効にした場合の波形をのせておきます。アナログ出力タイプの加速度センサーなので加速度変化がオシロスコープで確認できます。ST端子に電圧を加えると、その期間はセルフテスト機能がONになり、出力が変化している様子が確認できます。

 

セルフテスト機能の動作確認
アクティブ機能&インアクティブ機能の動作イメージ図

セルフテスト機能を使ってみよう

加速度センサー「ADXL345」とハードウェアのオープンプラットフォームである「Arduino」を使い「セルフテスト機能」のサンプルプログラムを作成していきます。

 

準備するもの

今回、加速度センサーを評価するうえで準備したものはこちらです。

 

・Arduino IDE がインストール済みの PC (Arduino IDE のダウンロードはこちらから)

Arduino Nano 互換品ボード 

加速度センサー ADXL345 

・その他(USB ケーブル (Arduino と PC 接続用)、ブレッドボード、ワイヤー)

 

上記の部品を組み合わせて、下図のように回路を組んでいきます。Arduino Nano への電源は、PC からの USB バスパワーで供給します。ADXL345は、SPI インターフェースとI2C インターフェースに対応していますが、今回はI2C インターフェースを使用します。また割り込みピンのINT1ピンを使用します。

接続図
接続図

プログラムの内容

セルフテスト機能は、DATA_FORMAT レジスタ(アドレス 0x31)のSELF_TEST ビットを有効にすることで、動作が開始されます。
今回のプログラムでは、振動や動きが加わらない安定した状態に基板を置きます。その後、セルフテスト機能が無効の状態で加速度データを取得を行い、次にセフルテスト機能を有効にした際の加速度データを取得し、その差分を求めます。差分が規定値に入っている場合は、動作が正常ということで"self test pass!" とシリアルコンソール上に表示します。

なおセルフテストを行う上ではいくつか注意事項があります。
・セルフテストを実施する場合は、外部から振動がかからない安定した状態で測定を実施すること
・十分なダイナミックレンジをとるため、Gレンジ設定に注意して測定を行うこと
・電源電圧により変動するためデータシート記載のスケールファクタ―を考慮して行うこと
・Self-TestのModeをONにした場合、出力が安定するまでに一定の時間がかかること
 (データシートに式が規定してあり、「4×τ(τ=1/ODR)」より100Hzの場合は、4*0.01=40msecとなります)
・ADXL345ではセルフテスト時の推奨ODRを100~800Hz、3200Hzとしている

詳細はデータシートおよびApplicationNote”ADXL345 Quick Start Guide “を参照ください。
Arduino IDE で作成したプロジェクトファイルはダウンロードできますので、ご興味のある方は下記「資料ダウンロード」より入手ください。

 

 

動作確認

作成したプログラムで動作確認をしてみます。デバイスを机上に置いておきセルフテスト機能が実行され、コンソール上に"self test pass!" の表示が確認できました。動画では、見やすくするために、セルフテストにかかる時間を調整をしています。実際にセルフテストに要する時間は、データ取得の平均回数や、データレートに依存しますので、その点は評価でご確認ください。

 

今回検証したサンプルコードのダウンロード

今回実施したArduino のプロジェクトファイルを提供しています。こちらからお申し込みの上、ぜひお試しください。

加速度センサー ADXL345 について

今回使用したADXL345 は、3軸のデジタル出力加速度センサーです。主な特長は下記の通りです。

・ADC、演算機能ブロック、FIFO 内蔵で、非常に使いやすいスタンダードな加速度センサー
・加速度データは、デジタルシリアル方式で一般的なI2C/SPIを採用
・3軸タイプのセンサーは直交座標 (X, Y, Z) で、それぞれの軸に働く加速度を取得可能
・最大検出加速度を2g~16gの範囲で設定ができ、サンプリングも~3.2kHzと幅が広いので、衝撃、傾き、モーション検知など様々な用途に応用可能
・消費電流を減らすためのフレキシブルなモードを採用

ADXL345 の詳細は、データシートをご参照ください。また、この加速度センサーは非常に使いやすいので、これから加速度センサーを評価してみたいという方は、ぜひ評価ボードでお試しください。

 

最後に

本記事の内容に関してのご質問、または加速度センサーの選定や使い方にお困りのことがありましたら、以下からお問い合わせください。



アナログ・デバイセズ メーカー情報Topへ

アナログ・デバイセズ メーカー情報Topに戻りたい方は以下をクリックしてください。