投稿

8月, 2010の投稿を表示しています

Androidのセンサー型番いろいろ

Androidのログをじーっと眺めていると各種センサーの型番が表示されることがあります。 タグ「SensorManager」で流れてくることが多いみたいです。 ※いや、機種によって全然表示のされ方が違います。確実なのは実機をバラしてチップを見る。ですかね。やんないけど。 収集できたものについてまとめてみます。 こういったセンサーによっても感度とか違うんですかね。 Dev phone 1 AK8976A 3-axis Accelerometer AK8976A 3-axis Magnetic field sensor AK8976A Orientation sensor AK8976A Temperature sensor Nexus One / Desire(X06HT) AK8973 T-01C ADXL345 Accelerometer MS-3C Magnetic Sensor MS-3C Orientation Sensor Galaxy Tab AK8973 Compass Accelerometer_AK Closed registerListener 1:BMA150 delay:xx ※電子コンパスはAK8793、加速度計はBMA150あたりを組み合わせて使っているのだろうか。謎。 HTC Desire HD AK8975 Compass Start AK8975の説明に三軸地磁気センサーとあるから、加速度計はまた別なんだろうか。 加速度計についてはよくわからず。 IS03 じーっと見てみましたが型番を示すログが見えない。 AK系じゃないのか、それとも、全く出していないのか。 不明。 L-04C AMI304 Orientation sensor AMI304 3-axis Magnetic Field sensor AMI304 3-axis Acceleration sensor AMI304 Proximity sensor N-04C(2011/2/24確認) AK8977 Compass AK8977 Accelerator AK8977 Magnetic Field GP2AP012A00 Light GP2AP012A00 Proximity SO-01C(2011/2/24確認) BMA150 Accelerometer AK897

MapActivityとClassNotFoundError

適当に作ったMapActivity継承のActivityを起動すると「ClassNotFoundError」というエラーが出て起動できない。こんなことありませんか? 適当に作るからイケナイのです。 私もその類です。 そんな人は、 Top / 勉強会 / GoogleMap をちゃんと読めばいいのです。 昔読んでちゃんとできたんだけど、すっかり忘れてた。反省。 要はAndroidManifest.xml内に <uses-library android:name="com.google.android.maps"/> の記述をすれば解決します。

skyhookのBulkデータアップロード

イメージ
前回の投稿、「 Skyhook試してみました 」でBulkデータのフォーマットについて問い合わせたけど回答がなかったと書きましたが、その後、回答があり、フォーマットが判明しました。 フォーマットが変更されるかもしれないので、最新版については「support@skyhookwireless.com」に問い合わせてくださいね。 ぴーでぃーえふをぶろぐに貼るには。。。えい!面倒だ!べたっ! Optionalとなっていますが、Building, Room, Floorとかいうデータがあるのは、より意味のある位置特定ができる可能性を示していて興味深いですね。 すみません、仕事が雑で。

万歩計の作り方(Ver.3.0.0)

イメージ
◇SmartTraining 3.0.0 Ver.3.0.0で万歩計ロジックを大幅に変更しました。 ザザっと解説。 ◇どうやって歩数を測るか SmartTrainingにおける万歩計は3次元の加速度データを利用します。 ◎加速度成分合成値の計算 携帯電話は本物の万歩計と違ってどうやって保持されるかわからないので、1次元の加速度だけでは、正確に計測できない可能性があります。このため、3次元の加速度(raw-x,raw-y,raw-z)を合成した値(raw-composit)を求めます。 ◎デジタルフィルタ raw-compositは基本的にセンサーから取得した生のデータです。生のデータには、歩数計算には邪魔な、様々な雑音が含まれます。歩行時の体の回転による加速度、ポケットの中での端末の振動などなど。余分な雑音は取り除いておいた方がより正確な歩数計測が行えるので、デジタルフィルタを適用して不要な成分を取り除きます。 今回は、 IIR によるLPFを作成し0.0030Hzより高い周波数成分を排除しています。デジタルフィルタを適用することでprocessed-compositを計算します。IIRのパラメータはフィルタ職人の腕の見せ所ということでうやむやにします。 ◎歩数のカウント processed-compositは、安静時の重力加速度(G)を中央値として、一定の振幅で振動しています。歩数計では、この加速度の振幅の山と谷を1サイクルとして認識してサイクルを検知することで歩数を数えることにします。サイクルの検知条件は下記のとおりです。 ・山の振幅が一定以上あること。 ・谷の振幅が一定以下あること。 ・山と谷の振幅が一定以上あること。 ・山と谷の時間差が一定時間内であること。 山の後でこれらの条件を満たさない場合、再び山の検知処理を続けます。 こうしてカウントをすると以下のグラフのshakeの値が歩数を表しています。 この方式に変更することで、以前の方式が20%程度の誤差だったのに対して、2%程度の誤差まで性能向上を図ることができました。 ◇注意事項 どんな方式で万歩計を作成するにしろ、計測条件は計測結果に大きく影響を与えます。 今回の方式では、どんな持ち方をしてもある程度計測できるように3次元の合成値を利用していますが、だからといって、端末が回転するような持ち方をするとノイ