2014年12月20日土曜日

この記事はCPS Lab Advent Calender 2014 21日目の記事です
20日目の記事は…です。
22日目の記事は私が担当です(´・ω・`)

おはこんにちばんわ。
21日目を担当しますかぁぶです。

アドベントします!

今年も残り少なくなってきましたが年末より先にクリスマスがありますよ?



今回紹介する技術はタイトル通り「加速度センサーと重力センサー」です。


スマートフォンって案外いろいろなセンサーが搭載されているんですね…
調べてみたら見たことも聞いたこともないセンサーが沢山ありました。


まず手始めに加速度センサーと重力センサーで簡単なアプリでも作ろうかと思いました!

はい!これ!





一見何をやってるかわからないと思うので説明させていただきます。

これはスマートフォンに備わっている加速度センサーというものを起動させて
端末に加わる3軸方向(X,Y,Z)加速度を判定しスマートフォンの傾いている向きを取得しています。



実装の仕方としてはこのような感じになっています。
センサーの取得とテキスト反映だけ紹介させていただきます。






そして中央に表示されているテキスト「~から来るぞ!」の~の方向にスマートフォンを傾けて
反射神経と瞬発力を計る画期的なアプリとなっております(*´`)



…しかし...

...なぜかスマートフォンを平らなところに置いているのにZ軸方向に10.0の加速度が…


この時、私は気づいてしまった…
私たちはいつでも地球先輩に引っ張られていた事を...





そろそろクリスマス...
世の女性はいつでも引っ張ってくれる地球みたいな男性を求めているのではないでしょうか…






そんなことより常に重力を検知している状態だと
スマートフォンがユーザの操作によって与えられた加速度を上手く検知できないじゃないでしょうか?


そんなあなたにオススメなのがこのセンサー
「重力センサー」です。
ソースコードの方にはちょろっと書いてあったかなー


このセンサーは、スマートフォンが受けている重力のみを検知するセンサーとなっており
先の問題であった加速度センサーでの重力検知の値を打ち消してくれるのでは!?

まずは重力センサーのみで試してみる…



わぁZ軸方向に9.8ぐらいの加速度が~地球先輩ぱねぇっす(´・ω・`)



そんな訳で加速度センサーと重力センサーの値を差し引いてみました。



それっぽくなったかな?
それぞれのセンサーが少しずつ検知しているのは誤差なのでしょうか。。。

まぁとりあえず加速度センサーから重力の値を上手く打ち消せた(?)ってことで!

地球先輩の攻略成功しましたかな?あーすっきりした!!!((笑))



今回学んだことで将来的に、
ジャイロセンサーを使わないで携帯の傾きを取得したり、
加速度を元に人間がどれぐらいの距離を歩いたのかなどを求めていけたらいいなと思います!

これにて21日目の記事を終わりたいと思います!

P.S

あ^~ゆうきちゃん^~
ゆうきちゃんが可愛いんじゃ^~
涙なくしては見れないSAO最終回でしたね。

もちろんラボで見ましたよ。

今回参考にしたサイト
Androidプログラマへの道 ~ Moonlight 明日香 ~

0 件のコメント:

コメントを投稿