AmazonでHiLetGoのESP32S開発ボード(1,350円)と、HiLetGoの双方向信号レベル変換モジュール(10個で820円)をまとめて購入しました。
ESP32はM5Stackのコアの部分だけで、LCD等がない単純なモジュールです。アンテナの姿勢制御をする際には、RapsberryPi程の計算能力は不要でしょうし、EthernetLANよりもWiFiを使った方が配線数が少なくてすむので、スマートです。先ずESP32モジュールの実験をしました。
NTPサーバーに時刻を問い合わせて表示するサンプルプログラムがあったので、それを一部手直しして実験したところ期待通り動作するようになりました。これには、M5StackでWiFiの実験をした時に使ったBuffaloの無線ルーターを使いました。
次に、MPU9250で電子コンパスを正常に動作させるための校正方法などについて、実験しました。いきなりESP32を使うのではなく、使用実績の多そうなArduinoで実験することにしました。
ArduinoUNOクローンボードにMPU9250モジュールをI2Cで接続しました。この間の信号レベルが異なるので、HiLetGoの双方向レベル変換モジュールを使いました。
ネット検索により、MPU_fux_BNO_mBias.inoというMPU9250を自動校正するスケッチを探し出しました。プログラムの開始直後に、センサーモジュールを立体的に8の字を書くように動かせて、補正値を計算により取得するというものです。
しかし、オリジナルプログラムのままだと校正が不十分なようで、方位角の値が方向により歪んでいるようです。例えば、真東90°の反対に向けた時に、真西270°よりも10°以上ずれるといういうような症状です。自動校正のサンプリング数を増やしたり、方位角として表示する値を移動平均するフィルタリング処理を追加するなどして改良中です。何とか使えそうな兆しが見えて来ました。
ESP32はM5Stackのコアの部分だけで、LCD等がない単純なモジュールです。アンテナの姿勢制御をする際には、RapsberryPi程の計算能力は不要でしょうし、EthernetLANよりもWiFiを使った方が配線数が少なくてすむので、スマートです。先ずESP32モジュールの実験をしました。
NTPサーバーに時刻を問い合わせて表示するサンプルプログラムがあったので、それを一部手直しして実験したところ期待通り動作するようになりました。これには、M5StackでWiFiの実験をした時に使ったBuffaloの無線ルーターを使いました。
次に、MPU9250で電子コンパスを正常に動作させるための校正方法などについて、実験しました。いきなりESP32を使うのではなく、使用実績の多そうなArduinoで実験することにしました。
ArduinoUNOクローンボードにMPU9250モジュールをI2Cで接続しました。この間の信号レベルが異なるので、HiLetGoの双方向レベル変換モジュールを使いました。
ネット検索により、MPU_fux_BNO_mBias.inoというMPU9250を自動校正するスケッチを探し出しました。プログラムの開始直後に、センサーモジュールを立体的に8の字を書くように動かせて、補正値を計算により取得するというものです。
しかし、オリジナルプログラムのままだと校正が不十分なようで、方位角の値が方向により歪んでいるようです。例えば、真東90°の反対に向けた時に、真西270°よりも10°以上ずれるといういうような症状です。自動校正のサンプリング数を増やしたり、方位角として表示する値を移動平均するフィルタリング処理を追加するなどして改良中です。何とか使えそうな兆しが見えて来ました。