当初、「歩き」「走り」「自転車」「バイク」の移動経路収集を対象にしていたが「車」にも使えそうだ。
機能の作り込みを進めなければ。。。
<現在の問題点>
1.移動距離が2~3割多くなる。原因は???調査必要。
2.標高が出るが、実際の値とは異なる(WGS84の楕円体上の標高なので当たり前。。)。。。オフセット位置を設定して、補正する機能が必要か?
3.CAMERAのI/FがOS3.0で異なっているようなので調査必要。
万歩計はそれなりに出来たので、次は RunKeeperのような機能を作成することにする。
<方針>
1.知りたいのは「歩数」ではなく、距離や位置、カロリーなので、万歩計では実際に使用する事がないので、GPSロガーをベースとする。
2.記録は「日記」のように保存し、履歴を見たり、集計できるようにする。
3.RunKeeperで不満があった点を解消する。具体的には
1)MAP表示をサイトにUPしているのはiPhoneのみで行う
2)iPhoneをポケットに入れて使用する。。と、勝手にボタンが押されてしまう不具合があるので、ロック機能をつけて他のボタンが押されないようにする。
3)歩いている時に、直ぐカメラを使えるようにする。結果はMAP上で位置と画像確認できるようにする。
4)。。。などなど。。。PCとのデータ連携は、其のうちに。。
<起動画面作成中>
これぐらい有ればよいか。。グラフは、移動平均速度と標高を表示する予定。。ロックONの場合、その他ボタンは全て使用できないようにする予定。。
<MAP表示作成中>
OS3.0になりiPhone内部だけでMAPが使用出来るようになったので、サイトにUPする必要が無くなったので、便利。。。だが、いかんせん資料が少ないので、試行錯誤でそれなりに使用できるようになった。
苦節20日。ようやく万歩計になった。。。初めてのiPhone開発なのでこんなものか。。。思ったより進みが遅かったのは、iPhoneのクラスを理解していないのが原因ですね。ようやく、ヘルプファイルの見方が解って来たような状態なので仕方がないか。。。それにしても基本となるMacOS-X関連の開発資料がWindowsと比べると資料が少ないですね。
<問題だった点>
1.加速度の考え方を理解していなかった(方向によりXYZの0点が変わる)ので、歩数が向きにより大きく異なっていた。重力加速度が常時掛かるので、iPhoneのセンサーでは絶対値「1」が、向きによりZ軸にかかったり、他の軸に掛かったりと。。。。。。そのため、最初に加速度補正を行っても無駄だった。
<問題点修正>
1.常時加速度の補正を行うように修正して、どの方向を向いていてもXYZが0点になるように変更した。
<その他修正>
1.GPS情報から高さを取得するように追加
2.GPS情報から移動距離を取得して、トータル移動距離計算を追加
<現在の画面>
(PS)
近所を歩き回って、歩数とカウントの調整をしたが、大体良さそうである。。。100円ぐらいの万歩計よりは、距離が出る分良いかな。
6月6日は大潮なので「渦潮ツアー」に行ってきた。前回は小潮だったので、リベンジーとして大潮の日を選んでわざわざ、臼杵発4:45のフェリーに乗り、12時近くについた。渦潮の見ごろは11時ごろだったそうなので、夕方まで待つことにした。
<うず乃屋で、恒例の鯛ドンを食べることにする>
<時間が有るので東洋一長いエスカレータ(60m?)で展望台へ>
とにかく長いし、載っていると上下の間隔がおかしくなり、後ろに倒れそうになる。。。しばらくは気持ち悪くてフラフラになった。
<流れが無い鳴門海峡>
わざわざ渦潮を見に来て、潮が止まっているのを見ることになるとは。。。
<ようやく午後4時ごろから急流状態になった>
あちこちで、渦が出来ては消えていった。午前ならばもっと近くで大きな渦がみれたとか。。。残念。
(PS)
土曜日なので高速は¥1000だったが、途中で香川県警に税金=¥18000を支払うことになったにで、大損だ。高松市内の高速を走っていたら、80Km制限道路だったようで、109Kmで覆面パトカーを追い越してしまった。「パトカーを追い越したら駄目でしょう」と、言われてしまったが 「何処にパトカーと書いてあるんだ!!!」
22年間のゴールド免許がついに飛んでしまった!!
CSVファイルを統計処理して、加速度と歩数の関係を求めて。。。と思っていたが、面倒なので、調整用のスライダーをつけて実測&調整しながら一応はそれなりの動きをするようになってきたが、思ったより大変でした(万歩計なんて簡単だ!!と、馬鹿にしていたが。。。御見それしました)。
<以前の画面-->現在の画面>
1)歩数カウント結果を追加
2)感度調整用のスライダー追加
3)加速度の0点自動調整機能追加
<御見それした点>
1)加速度センサーは動いていなくてもXYZそれぞれ0以外を戻していた(私のiPhoneのZ加速度は-1.0程度をいつも戻している)。。。動かないなら0だろうと思って、プログラムを組んでいたら「歩数」と、大きく異なってしまった。
結局、「自動0点補正」機能を作成して、上記のグラフのように 0 をベースとして、+-に振れるような加速度に変換して以後の処理をするようにした。
2)XYZ加速度絶対値合計で「上下動」を判定するようにしたが、細かく上下動したときに、カウントが続けて増加する問題が発生して、高周波成分を取り除くような処理を追加した。
3)加速度絶対値合成にすると上下動で2つの山が出来るので2回の山で1歩とする。
4)歩くスピードを考慮して、1歩としてカウントしたら、少し時間を置いてから次のカウントをするようにした。
5)。。。などなど。。。。。奥が深い!!
6)どれぐらいの加速度合計になったら、1山と判定するかを調整するスライダーを追加して、実際に歩きながら調整を行った。。。これは、実際の万歩計にも有るような、調整機構になる。。。当初から必要と思っていたがやはり必要なようだ。
(PS)
実際にもう少し実験すると、まだまだ工夫が必要になると思われます。。。なんでも簡単ではありませんね。