重力は上向き?
最初に何をするでしょうか?
正気かどうかのチェックを行います!
I2C chapter で、加速度センサーのデータを RTT コンソールに継続的に表示するプログラムは、すでに書けるようになっているはずです。LED 側を下にしてボードを床と平行に持ったときでも、何か興味深いことが観察できますか?
このように見えるはずなのは、X と Y の値はどちらも 0 にかなり近い一方で、Z の値はおよそ 1000 になっていることです。ボードは動いていないのに加速度が 0 ではないので、これは奇妙です。何が起きているのでしょうか?これは重力に関係しているに違いありませんよね?重力加速度は 1 g です(なるほど、1 g = 加速度センサーの 1000)。しかし、重力は物体を下向きに引っ張るので、Z 軸方向の加速度は正ではなく負であるはずです。
プログラムが Z 軸を逆に扱ってしまったのでしょうか?いいえ。ボードを回転させて重力を X 軸や Y 軸に揃えて試すことはできますが、加速度センサーが測定する加速度は常に上向きです。
ここで起きているのは、加速度センサーが測定しているのは proper acceleration、つまりボードの固有加速度であって、あなた が観測している加速度ではない、ということです。この固有加速度は、自由落下している観測者から見たボードの加速度です。自由落下している観測者は、1g の加速度で地球の中心へ向かって移動しています。その観点から見ると、ボードは実際には 1g の加速度で上向き(地球の中心から遠ざかる向き)に動いています。だからこそ、固有加速度は上向きになるのです。これはまた、もしボードが自由落下していたなら、加速度センサーは固有加速度 0 を報告することも意味します。どうか、家では試さないでください。
はい、物理は難しいです。先へ進みましょう。