BASIC-RのPWM制御命令は、本来はD/A変換器代わりに使用したり
パルス発生器として使用することが多いのですが
今回はサーボモータ(ミニスタジオ製MiniRB50)を制御する信号に
使用しました。回転角度制御は20mS周期でデューティを変えれば良いので
源クロック24MHz、分周比f/32でのクロックを、周期15000カウントで
ちょうど20mS周期になります。デューティは試行錯誤して12900幅と14500幅に
切替えたとき半回転するらしいことが判った(2SC1815でバッファしてます)ので
下記のように設定すると最大で180度近くサーボのホイールが回転します。
この回転位置でNCフライス加工機のスピンドルギアにロックを掛けたり、
解除したりすることができました。
BASIC-R45基板には使用できるPWMチャネルが2本あるので、2個のR/Cサーボを同時制御できます。
なお、PWMの出力ポートを出力に設定する必要があるので、先にポートの設定をしておきます。
'ポートの初期化 '----------------------------------------------------------------- ' PWM1 = TA4OUT :P8.0 ' PWM0 = TA2OUT :P7.4 PD7 = &B00010000 'Direction = 1:OUTPUT 0:INPUT PD8 = &B00000001 'Direction = 1:OUTPUT 0:INPUT 'PWM命令の書式 '------------------------------------------------------------------ ' PWM ON [PWM(0-1)], [分周比(0=f/1,1=f/8,2=f/32)], [周期(1-65536)], [High幅(0-65535)] CONST LOCK = 12900 CONST FREE = 14500 PWM ON 0, 2, 15000, LOCK 'スピンドルロック PWM ON 0, 2, 15000, FREE 'スピンドルフリー
最近弊社でも、試作、少量製作用にと、NCフライス加工機を製作しました。
オリジナルマインドさんで調達したリニアアクチュエータに
自社製作3軸補間コントローラ、自社製作CAMソフトと、半分くらいは
オリジナル製品なのですが、スピンドルにキーレスチャックを
使用した為に、スピンドルロックが必要になり、市販のR/C用サーボと
BASIC-R45を組み合わせサーボコントロールを内蔵PWMで行いました。
実は3軸補間パルスコントローラもBASIC-Rで制御する予定でしたが
直接PCから、コマンドを送るほうが融通が利きそうなのでPCから
シリアルインターフェースでコマンドを送っています。
BASIC-R制御基板はスピンドルON/OFF、ロック制御、回転検出、ツール交換等を
行わせています。設計から一応の完成まで4ヶ月半掛かりました。
今、おもしろ半分で、アルミ材を切りまくっています。
(1mmのエンドミル3本くらい折りました)
これからも、専用のワークバイス、自動ツールチャンジャー等を製作、
装備する予定なので、まだ半年くらいはあれこれ手が掛かりそうです。