初号機が完成したが、プログラムのステップ数をもっと削減したいと思い色々と探していたらいいものが見つかった。
以前購入してあった、M5Stack Basic用の円に対して角度を指定して線を引く為のArduino IDEで使える数式を見つけた、M5に入れて動作を確認。
数式と言っても三角関数を使っているだけで、現役の学生さんやプログラマー(SEじゃない)の方ならちょろい程度の数式かな?
M5向けなのでこれをMGLCDライブラリ向けに書き換え無事導入完了。
今度は方位角の判定部分もADCの値がリニアに変化するとして方位角1度の値を算出してそれをもとに方位角を算出して描画するように変更し、初号機のプログラム行数が三分の一程度まで縮小できました。
実際にはADCの値はリニアに変化していないのだけど、もともとアナログ表示でありそれほど精度を求めている訳ではないので初号機はこれで完成とした。
ローテ―ターに接続してみているとADC出力が風等によるアンテナのブレで表示が落ち着かない状況が伺えるため、方位角は1度単位では細かすぎて利用しているLCDの解像度や性能を鑑みると方位が見えなくなりそうなため3度単位での表示とした。
2号機はTFTカラーLCD(2.8インチ)を利用してArduinoかESP32での作成を計画中!!
※コメント投稿者のブログIDはブログ作成者のみに通知されます