MUDAなことをしよう。MUDAなことをしよう。前回まではボタンとLED関係でしたが、今回は少し毛色を変えて6軸センサを使用したいと思います。検出できるセンサ」という認識で良さそうです。完璧に使いこなすのは難しそうですが、少しかじるだけでも色々できることが増えそうです。自分が作った『カイザフォンX』とかはその一例だと思います。加速度センサ・ジャイロセンサについては私も詳しいことはよくわかっていないため、こちらやこちらなどを参考に少し勉強させて頂きました。以降の記述が間違っていたら申し訳ありません。ちなみに9軸センサになると、6軸センサにさらに地磁気センサが加わって方位までわかるようになるみたいですね。6軸だと上下方向はわかりますが水平方向はわからない(=「自分から見てどの方向に動いたか」はわかるが「自分が今どの方角を向いているか」まではわからない)ので、作りたいアプリケーションによっては別に9軸センサが必要になることもあるかもしれません。それでは早速プログラムしていきたいところですが、まずはその前提として「M5StickCと軸の向き」を確認しておきましょう。こちらやMPU6886のデータシートを参照させて頂くと、こんな感じになっているようです。こちらのサイトの記述は初期ロットのSH200Qについてになっていますが、MPU6886でも向きは変わっていないようです。これは私の備忘録的な記述になりますが、上記の絵を見ていると、「ふーん、じゃあ上図のような感じでM5StickCを置いておくと、重力加速度は-9.8[m/s^2]として検出されるんだな」と思ってしまうのですが、実際には+9.8[m/s^2]相当の値が出力されることになります。これで私はよく混乱してしまうのですが、加速度センサの立場で考えてみると、「自分には(重量加速度とは逆向きの)+9.8[m/s^2]の加速度が常時かかっているから静止できているんだ、その値を出力して見せてやっているのだ」ということになり、それならなんとなくですが納得できます。それからもう一つの確認ポイントとして、センサの出力してくる値の単位です。≒9.8[m/s^2]の換算をした方がわかりやすいかもしれません。私はそうなので、以後のサンプルではこの換算をします。サンプルプログラムを書いていきます。今回は、「通常は加速度と角速度をリアルタイムに表示、ボタン操作でモードを切り替えると現在の姿勢(=どの軸が上を向いているか)を表示」という内容にしたいと思います。