歩数計製作
1.Arduinoとは?
Arduinoは、ハードウエアとソフトウエアで構成される、オープンソース・プロトタイピングプラットフォームです。
ソフトウエア開発環境はだれでもダウンロードして、無償で利用することができます。
ハードウエアはArduinoボード自体が数千円程度で入手でき、Arduino互換のセンサーなど様々なものが安価で利用することができます。
今回の歩数計に利用したArduinoボードはArduino Unoといい、Arduinoボードで最も基本的なものです。
2.加速度センサーとは?
加速度センサーとは、物体の加速度を計測する装置です。
今回利用する3軸加速度センサーはXYZ平面の3軸を検出することができ、それぞれの軸に対して内部構造で加速度を検出することができる仕組みとなっています。
加速度センサーは、ゲームのコントローラーやスマートフォン、ロボット制御自動車のエアバックの衝撃検知など様々な機器に応用されています。
図1 Arduino Uno 図2 加速度センサー
3.歩数計製作
3.1.材料
今回は以下の部品を使用し、歩数計製作を行いました。
Arduino Uno R3
ブレッドボード
三軸加速度センサモジュール
ジャンパーワイヤ
LED
抵抗
タクトスイッチ
図3 材料
3.2.回路作成
回路作成は参考文献に載せたサイトを基に行いました。
図4 実際に作成した回路
3.3.システム作成
システムは以下の手順からプログラム作成を行いました。
- 3軸(x軸、y軸、z軸)からそれぞれ50回値を読み込み、各項目の平均値を算出する。
- 1の平均値から現在の角度を求め、記録する。ただし、角度は約−90から+90の範囲とする。
- x方向の傾き、y方向の傾き、z方向の高さのそれぞれの値を配列に格納する。これを50回繰り返す。
- 3を50回繰り返し終えたら、各配列の隣り合う要素の値を比較し、その差が一定値以上であれば、カウンターを+1する。差がとても大きい場合、カウンターを+2する。
- カウンターの値から速さレベルを求める。速さレベルは0〜5の6段階あり、カウンターの値によって決まる。この時、速さレベルが0の場合を除いて、「1歩動いた」とみなして歩数カウンタを+1する。
*速さレベルが0の場合は止まっているとみなす。
- 4で値を追加していったカウンター及び3で作成した全ての配列を初期化する。
- スイッチが押された場合、現在のカウンターの値を記録し、カウンターの値を初期値(0)にする。その後、1〜6を繰り返す。
- スイッチが押されなかった場合は7を行わず、そのまま1〜6を繰り返す。