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

【加速度センサー入門】シリーズでは、アナログ・デバイセズ社の加速度センサーを中心に、基本的な使い方や応用方法を解説します。本記事では、加速度センサー「ADXL345」 と「Arduino」を使い動作の確認を行います。デジタル出力タイプの加速度センサー「ADXL345」は内部にデータ処理・イベント割り込み機能が内蔵されています。そのためホスト(マイコン)側の負荷を下げることが可能となります。今回は、以前ご紹介したモーション検出機能のひとつである「アクティブ・インタクティブ検出機能」を使わずに、Arduino側のプログラム上に検出機能を設けてみたいと思います。「アクティブ・インタクティブ検出機能」についての内容は以前の記事をご確認ください。

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

モーション検出機能(アクティブ検出)を実装してみよう

今回は下図のようにADXL345に搭載されているデジタル演算機能である「アクティブ・インタクティブ検出機能」をArduino側で実装をおこないます。このようなことを行う理由の一つは、加速度センサーにはアナログ出力の製品があります。アナログ出力タイプの製品では「アクティブ・インタクティブ検出機能」などのデジタル演算機能は、センサー側に内蔵されていないため、AD変換後に、マイコンなどのホストプロセッサー側で検出機能を行うが必要があります。そのため今回はADXL345のアクティブ検出機能のデータ処理を、Arduino側で実装していきたいとおもいます。

準備するもの

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

 

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

Arduino Nano 互換品ボード 

加速度センサー ADXL345 

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

 

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

また割り込みピンのINT1ピン、INT2ピンは使用しないため、今回は接続不要となります。

接続図
接続図

プログラムの内容

プログラムでは「モーション検出」はプログラム内で設定したアクティブ閾値加速度を超えた際に、図のようにステータスをアクティブに変更させ、LEDを点灯させます。

流れとしては、一定時間の周期でX,Y,Zの加速度データを取得し、閾値加速度との比較をおこないます。一つ前の取得したデータが閾値を超えていない状態から、最新の取得データが閾値を超えた場合に、フラグをアクティブにさせました。また、図のようにアクティブ閾値付近のデータ変動を抑えるために、閾値にヒステリシスを設けました。今回は、簡単にX,Y,Z軸の加速度のどれか一つが任意の閾値を超えた場合にモーションステータスをアクティブとしました。ステータスを変更する機能はいれていないので、アクティブステータスになった場合、LEDが点灯したままとなります。Arduino IDE で作成したプロジェクトファイルはダウンロードできますので、ご興味のある方は下記「資料ダウンロード」より入手ください。

 

動作イメージ図
動作イメージ図

動作確認

作成したプログラムで動作確認をしてみます。静止状態から、動きを加えていき、徐々に動きのスピードを上げていくと、アクティブ検出が行われLEDが点灯されました。

今回は加速度閾値を超えた場合にアクティブと判断しますが、その後、アクティブステータスを変更する機能はいれていません。そのため、アクティブステータスの後はLEDが点灯したままになっています。次回はADXL345に搭載されているインアクティブ検出機能のように、アクティブ検出後、一定期間加速度変化が少ない場合は、インアクティブステータスとなりLEDを消灯するプログラムを追加してみたいと思います。

今回はADXL345に搭載されている機能を、Arduino側でデータ処理として機能を取り込んでみました。ソフトウェアで実装するとステータスの変数管理や条件分岐などコードが増えるため、改めて内蔵されているデジタル機能のありがたみを感じることができました。

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

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

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

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

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

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

 

最後に

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



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

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