2009/10/15

various Gravity

今や携帯やゲームのコントローラーで一般的になった加速度センサー。Android もそれに対応していて、Java を通じてハードウェアに加えた加速度の値を取り出すことができる。ただ、Android が載っている Linux の仕組み上、ハードウェアに直接 Java がアクセスできるはずもないので、C(++) のコードを経由してデバイスドライバにアクセスする。

----

ところで、Android で加速度センサーにアクセスする C(++)のコードを実装するには、必ず特定のヘッダを実装しなければならない。それが sensors.h だ。加速度センサーは今いる場所の重力加速度(※)を基準にした値がハードウェアから渡ってくることが多いので、上記の sensors.h にも いろいろな場所の重力の値が定義されている。それを以下に引用しておく。

/**
* Values returned by the accelerometer in various locations in the universe.
* all values are in SI units (m/s^2)
*/

#define GRAVITY_SUN (275.0f)
#define GRAVITY_MERCURY (3.70f)
#define GRAVITY_VENUS (8.87f)
#define GRAVITY_EARTH (9.80665f)
#define GRAVITY_MOON (1.6f)
#define GRAVITY_MARS (3.71f)
#define GRAVITY_JUPITER (23.12f)
#define GRAVITY_SATURN (8.96f)
#define GRAVITY_URANUS (8.69f)
#define GRAVITY_NEPTUNE (11.0f)
#define GRAVITY_PLUTO (0.6f)
#define GRAVITY_DEATH_STAR_I (0.000000353036145f)
#define GRAVITY_THE_ISLAND (4.815162342f)

こんなところに Android 持ってかねーYO! という値がたくさん定義されている。誰か DEATH STAR に Android を持っていった人、是非重力加速度の具合を体で感じ、俺に是非教えてください。

----

(※)地球の場合 9.8 m/s^2。物理でやったよね! 俺はスカーリ忘れてた

1 件のコメント:

Hapi さんのコメント...

hello... hapi blogging... have a nice day! just visiting here....