Groovy-PIDとGroovy-QuatroのF/Wを独自に実装

大宮技研が開発販売しているDCブラシモーター用のドライバーボードGroovy-PIDとGroovy-Quatroを入手し、F/WをOSSの公開コードの情報をもとに1から独自実装しました。大宮技研オリジナルと違って周波数設定は64MHz、サーボループは割り込みハンドラ内で行うようにしているのでシリアル通信中もサーボループは動作を続けられます。動作モードは、位置指令、インクリメンタルな位置指令、PWM指令、ブレーキ指令が可能になっています。Groovy-PID版が約2kHz、Groovy-Quatro版が約1kHzでサーボループが回ります。サーボはPI制御で、ゲインは調整済みの値が埋め込んであります。

ALT-Groovy-PID Version 1.0.0
ALT-Groovy-Quatro Version 1.0.0

ホストとのシリアル通信設定は115200ボー、スタートビット1、ストップビット1、パリティなし、8ビットです。コマンド体系は「?」押した後に「ENTER」で確認してください。

各モーターの回転方向はconfigフォルダ内のencoder_config.hとL298_config.h内のマクロで変更可能です。L298_0_POLが0なら1番目のモーターはCW、1ならCCWの向きに動作します。このままだとエンコーダのカウント方向が逆なので合わせて向きを変える必要があります。ENCODER_0_DIRが1なら一番目のモーターのエンコーダはCW方向がアップカウントになります。もし、-1にするとCW方向がダウンカウントとなります。ホスト側で方向管理しない場合は、このマクロを変更して実機のモーター回転方向を合わせてください。