事前準備
Install the nanoFramework firmware
M5StickC PlusにはnanoFrameworkは標準インストールされていないので、nanoFrameworkをインストールします。
接続ポート番号の確認
USBでM5StickC PlusをPCに接続したら、USB Serial Portのポート番号を確認します。今回の環境では「COM6」が該当しました。
Flasherアプリケーションのインストール
OSの[スタート]メニューから「Developer PowerShell for VS2022」を起動します。
dotnet tool install --global nanoff
nanoFrameworkfファームウェアをインストール
M5StickC Plusをターゲットにして「COM6」経由でnanoFrameworkをアップロードします。
nanoff --target M5StickCPlus --update --serialport COM6
Visual Studioの準備
Visual Studioを機能拡張する
Visual Studioには.NET nanoFramework Extensionをインストールして機能拡張しておきます。
この機能拡張によりnanoFrameworkアプリのテンプレートが追加されます。
このテンプレートで作成したプロジェクトには、NuGetから自動的に「nanoFramework.CoreLibrary」ライブラリが追加されています。
「nanoFramework.M5StickCPlus」ライブラリを追加する
M5StickC Plusの画面などハードウェアにアクセスするために、M5StickC Plus用のライブラリを追加します。
ここまでが、M5StickC Plusを使うアプリ開発を行う上での共通の事前準備となります。
加速度計とジャイロ計の情報を取得する
M5StickC Plusには、6軸姿勢センサーMPU6886が内蔵されています。
6軸とは、X軸Y軸Z軸方向の加速度に加えて、X軸Y軸Z軸の角加速度も取得できるので6軸となります。
これによりどちら方向に進んでいるのか、どちら向きに(画面の)方向を変えようとしているのかが分かります。
キャリブレーション
MPU6886を使うときは起動時にキャリブレーション(補正)を実行します。
例えば、100回試行して補正するときは次のようにします。
M5StickCPlus.AccelerometerGyroscope.Calibrate(100);
もちろん補正中はM5StickC Plusを静止させておくことが必要ですから、今回は初期だけではなくM5ボタンをクリックしたときも補正できるようにしておきます。
加速度を取得する
「M5StickCPlus.AccelerometerGyroscope」で加速度を取得するには「GetAccelerometer」メソッドを実行します。
M5StickCPlus.AccelerometerGyroscope.GetAccelerometer();
初期設定の範囲は±2G(重力加速度の2倍まで測定)となります。
測定範囲は「AccelerometerScale」で±2G、±4G、±8G、±16Gから選択できます。測定範囲が大きいほど精度は下がります。
角加速度を取得する
「M5StickCPlus.AccelerometerGyroscope」で加速度を取得するには「GetGyroscope」メソッドを実行します。
M5StickCPlus.AccelerometerGyroscope.GetGyroscope();
初期設定の範囲は±250dps (degree per second=1秒間に250度の回転まで測定=1分間に約41回転以下なら測定可)となります。
測定範囲は「GyroscopeScale」で±250 dps、±500 dps、±1000 dps、±2000 dpsから選択できます。測定範囲が大きいほど精度は下がります。
コード全体(0.5秒ごとに表示)
次回
次回はスクリーン描画について調べてみたいと思います。
hatsune.hatenablog.jp