DCマウス研修(移行中)

マイクロマウス研修(kora編)[28] エンコーダ動作確認

こんにちは。koraです。

今回は、少し遡ってエンコーダの読み取りについてです。

エンコーダの動作確認

前々回、エンコーダ用の磁石を取り付けるところまでやりました。
また、SPIの設定は以前のSTM32マイコンでSPI通信で済ませています。というわけで、さっそくエンコーダの値を読みこんでいます。

エンコーダ用のモジュール

エンコーダのモジュールを作ります。以前作成したジャイロ用のモジュールと似たような感じで、Srcフォルダにencoder.cを、Incフォルダにencoder.hを作ります。なお、MA702は絶対角度を出力しますので、回転速度を計算する際には0から最大値に跨いだときと、最大値から0に跨いだときの処理が必要です。

エンコーダ動作確認プログラムの実行

作ったプログラムをCubeProgrammerでマウスに書き込みます。エンコーダの値がTeraTermに表示されれば成功です。

サイドシャフトマウントの設定

モータの出力を一定にして、エンコーダで読み取った回転速度と角度の関係を表示すると、以下のようにsin波状になっています。

MA702はセンサを横切る磁力線の方向から角度を出力しますが、このマウスでは軸構成をサイドシャフトマウントにしたため、磁力線の方向とエンコーダの角度が線形になりません。そのためこのように特定の角度でエンコーダの値が変動してしまいます。

MA702にはこれを調整するBCT(Bias Current Trimming)という機能があります。エンコーダ初期化の際にBCTを設定すると、次のように出力をある程度一定にすることができます。

次回

エンコーダの設定ができましたので、次は光センサの設定に移りたいと思います。

タイトルとURLをコピーしました