• 検索結果がありません。

ANJ-0003: ADXL345 を用いた歩数計

N/A
N/A
Protected

Academic year: 2021

シェア "ANJ-0003: ADXL345 を用いた歩数計"

Copied!
10
0
0

読み込み中.... (全文を見る)

全文

(1)

アプリケーション・ノート

ADXL345 を用いた歩数計 by Tomoaki Tsuzuki Rev. 0 本 社/〒105-6891 東京都港区海岸 1-16-1 ニューピア竹芝サウスタワービル 電話 03(5402)8200 大阪営業所/〒532-0003 大阪府大阪市淀川区宮原 3-5-36 新大阪 MT ビル 2 号 電話 06(6350)6868

コンセプト

本アプリケーションノートに記載する歩数計のアルゴリ ズムは加速度センサーの設置向きによらず歩数をカウン トできるアルゴリズムです。図1にアルゴリズムの概要 を示します。 このアルゴリズムは正と負の極性のパルスを検出して歩 数をカウントします。アルゴリズムは、3軸分の加速度 信号のRSS値を計算し32データ分の移動平均を計算 します。(ADXL345のFIFO機能を使用する事 で、移動平均の計算は簡略化されます)RSS値から移 動平均の値を引いた値(この値を本アルゴリズムでは SIGNAL と呼びます)をパルスの検出に使用します。 SIGNAL が予め設定した閾値を超えた時点でタイマーの 動作が開始します。タイマーで SIGNAL が閾値を下回る までの時間を測定し、パルスの幅が設定した閾値の範囲 に収まっているかを確認します。パルスを検出した後に、 アルゴリズムは反対極性のパルスを探します。一定時間 内に反対極性のパルスが検出されれば、ステップとして 認識します。ステップを認識した後は LATENCY と呼ぶ 時間分だけデッドタイムを設けます。これは振動等によ るノイズを排除する事が目的です。 最初の数ステップの検出では、アルゴリズムは歩行とは 認識しません。STEP_COUNTER で設定したステップ数 に一定時間内に達した時点でステップを歩行とみなしま す。一定時間内にステップが STEP_COUNTER の値に 達しなかった場合は、それまでのステップは破棄されも う一度最初のステップを探します。またアルゴリズムは ステップとステップの間の時間間隔を測定します。ステ ップとステップの間隔が長すぎたり短すぎたりした場合 には、振動等によるミスカウントと判断し、それまでの ステップを破棄します。

THP

THN

PA

PA

PW

PW

Latency

WINDOW

Time

Acceleration Signal

(RSS minus Moving Average)

Acceleration

Amplitude

Walk_DUR

(2)

実装

本アルゴリズムは ADXL345 を表1のように設定してい ます。ADXL345 の Auto-sleep 機能は歩数計に最適です。 動きが無い時は加速度センサーが自動的に低消費電力状 態に移行するので、システム全体の不可が軽減されます。 表2の設定は Auto-sleep 機能を使用するための閾値の設 定です。詳細は ADXL345 のデータシートを参照してく ださい。 ADXL345 Setting Register Name Address Data Meaning

BW/RATE 0x2C 0x0A 100Hz Data Rate

DATA_FORMAT 0x31 0x08 +/-16g, 13bit, Right justified data

POWER_CTL 0x2D 0x38 Sensor in measurement mode, Link and Auto-sleep enabled INT_ENABLE 0x2E 0x1A WM INT, Activity INT, Inactivity INT enabled

FIFO_CTL 0x38 5F FIFO in FIFO mode, 32 samples 表1.ADXL345の設定

ADXL345 Setting Register Name Address Data Meaning

THRESH_ACT 0x24 0x08 500mg THRESH_INACT 0x25 0x08 500mg TIME_INACT 0x26 0x02 2ms

ACT_INACT_CTL 0x27 0xFF Use 3-axis, AC-coupled 表2.閾値の設定

(3)

Rev. 0 | Page 3 of 10

TABLE OF CONTENTS

コンセプト ... 1 実装 ... 2

(4)

図2にソフト処理全体の流れを示します。割り込み信号 の発生を受けてプロセッサーは INT_SORUCE レジスタ を読みます。もし ACTIVITY 割り込みだった場合には FIFO の内容をクリアして次の割り込みを待ちます。もし INACTIVITY 割り込みだった場合は、プロセッサーは何 もせずに次の割り込みを待ちます。もし WM 割り込みだ った場合にはプロセッサーは歩数計のアルゴリズムを走 らせます。 START READ register 0x30 (INT_SOURCE) Activity INT or Inactivity INT RUN Pedometer Algorithm

Initialize Pedometer Algorithm Variables END Y N Read 32 data from FIFO 32Times Assumes WM INT Activity INT Clear FIFO Y N MA = Average of 32 data 図2.ソフト処理全体のフローチャート

(5)

Rev. 0 | Page 5 of 10

歩数計アルゴリズム

表3はアルゴリズムに使用する変数を示します。表4はアルゴリズムに使用する定数を示します。図3、図4、図5、図 6、図7、図8に歩数計のアルゴリズムを示します。

Variable Name Function Initial State

Walk_Flag 1 when at walking state, 0 when at not walking 0

T_Walk_Flag 1 when at temporary walking state, 0 when at not temporary walking 0

RSS RSS of three axis (unit is LSB) 0

MA Average of 32 samples in FIFO 0

Signal RSS minus MA 0

PA Pulse area 0

PW Pulse width 0

WINDOW Shows how long time is passed after first pulse is detected 0

PPTEMP 1 when positive pulse detected and looking for negative pulse 0

NPTEMP 1 when negative pulse detected and looking for positive pulse 0

Pulse_Flag

0=looking for pulse, 1=positive pulse detected and looking for negative pulse, 2=negative pulse detected and looking for positive

pulse, 4=in latency state 0

Latency

Time in which step count algorithm is not taken place after latest step

is detected 0

WALK_DUR Shows how long time is passed after latest step is detected 0

TEMP_STEP

Temporary step count. Cleared if WALK_DUR is above

WALK_DUR_TH 0

STEP Step counted 0

表3.変数

Constants Function

Initial Setting

Signal_TH When signal is above this level, clear everything 2000

THP Threshold for positive pulse 20

THN Threshold for negative pulse -20

PAMAX Maximum pulse area 6000

PAMIN Minimum pulse area 50

PWMAX Maximum pulse width 80

PWMIN Minimum pulse width 2

WINDOW_TH Defines how long to look for second pulse after first pules is detected 90

Time_Latency Define how long Latency is 15

WALK_DUR_TH Defines how long to look for another step after latest step is detected 100

TEMP_STEP_TH Defines how many TEMP_STEP needed to recognize it as Walking 10

(6)

START RSS = RSS of 3axis SIGNAL = RSS - MA PPTEMP=1 or NPTEMP=1 TEMP_STEP >= TEMPSTEP TH T_Walk_Flag = 0 Walk_Flag = 1 STEP= STEP + TEMP_STEP

TEMP_STEP = 0 WINDOW = WINDOW +1 WINDOW >= WINDOW_TH or Signal >= Signal_TH PPTEMP = 0 NPTEMP = 0 WINDOW = 0 PULSE_FLAG = 0 PA = 0 PW = 0 T_Walk_Flag = 1 or Walk_Flag = 1 WALK_DUR = WALK_DUR +1 WALK_DUR >= WALK_DUR_TH Walk_Flag = 0 T_Walk_Flag = 0 WALK_DUR = 0 TEMP_STEP = 0

flag Check Function

End

図3.歩数計アルゴリズム

Flag Check Function START

Pulse_Flag = 0 Pulse_Flag = 1 Pulse_Flag = 2 Pulse_Flag = 3

Check Pulse_Flag PFlag3 Function PFlag2 Function PFlag1 Function PFlag0 Function End 図4.歩数計アルゴリズム Flag Check 関数

(7)

Rev. 0 | Page 7 of 10 Pulse_Flag = 0 Signal >= THP PA = Singla PW = 1 Pulse_Flag = 1 PPTEMP = 1 PA = 0 PW = 0 Pulse_Flag = 0 WINDOE = 0 PPTEMP = 0 NPTEMP = 0 Signal <=THN PA = Abs(Singla) PW = 1 Pulse_Flag = 1 NPTEMP = 1 PA = 0 PW = 0 Pulse_Flag = 0 WINDOE = 0 PPTEMP = 0 NPTEMP = 0 PFlag0 Function Start End 図5.PFlag0 関数 Signal > THN PA = PA + abs(Sigmal) PW = PW + 1 PAMIN <= PA <=PAMAX and PWMIN<= PW <= PWMAX PPTEMP = 0 NPTEMP = 1 STEP = STEP +1 Wwlk_Flag = 1 TEMP_STEP = TEMP_STEP + 1 T_Walk_Flag = 1 PA = 0 PW = 0 PPTEMP = 0 NPTEMP = 0 WINDOW = 0 WINDOW_DUR = 0 Pulse_Flag = 3 PFlag1 Function Start End End Pulse_Flag = 0 図6. PFlag1 関数

(8)

Signal < THP PA = PA + Sigmal PW = PW + 1 PAMIN <= PA <=PAMAX and PWMIN<= PW <= PWMAX NPTEMP = 0 PPTEMP = 1 STEP = STEP +1 Wwlk_Flag = 1 TEMP_STEP = TEMP_STEP + 1 T_Walk_Flag = 1 PA = 0 PW = 0 PPTEMP = 0 NPTEMP = 0 WINDOW = 0 WINDOW_DUR = 0 Pulse_Flag = 3 PFlag2 Function Start End End Pulse_Flag = 0 図7. PFlag2 関数 Latency = Latency + 1 Latency >= Time_Latency PFlag3 Function Start Pulse_Flag = 0 Latency = 0 End 図8. PFlag3 関数

(9)

Rev. 0 | Page 9 of 10

(10)

NOTES

©2008 Analog Devices, Inc. All rights reserved. 商標および登録商標は各社の所有に属します。

参照

関連したドキュメント

株式会社 8120001194037 新しい香料と容器の研究・開発を行い新規販路拡大事業 大阪府 アンティークモンキー

茂手木 公彦 (Kimihiko Motegi) 日本大学 (Nihon U.) 高田 敏恵 (Toshie Takata) 九州大学 (Kyushu U.).. The symplectic derivation Lie algebra of the free

相談件数約 1,300 件のうち、6 割超が東京都、大阪府、神奈川県をはじめとした 10 都

[r]

1392例目 大阪府 30代 女性. 1393例目 京都府

地域 東京都 東京都 埼玉県 茨城県 茨城県 宮城県 東京都 大阪府 北海道 新潟県 愛知県 奈良県 その他の地域. 特別区 町田市 さいたま市 牛久市 水戸市 仙台市

京都 滋賀 大阪 奈良

・「スマイルスポーツボランティア講習会」笹川スポーツ財団 ・「大阪スポーツボランティア養成事業」大阪コミュニティ財団