最近は大会参加や旅行も厳しいので製品レビュー記事が多くなっているが今回メイカー界隈では比較的需要のありそうなACサーボモータをArduinoで回してみたということで紹介する。まず結論から言うと、ACサーボモータであってもステッピングモータと同じ回転方向とパルス指令の2信号で回せるものがあるのです。
■ACサーボモータの入手性について
誤解のないように言っておくとラジコンサーボでなくて産業用ACサーボモータの話です。
あまり趣味で紹介しているサイトがないので簡単に解説しておくとACサーボモータはわが国のお家芸なので国内では
・ファナック 安川 三菱 パナソニック 山洋
など有名メーカはいくつもあるが、基本法人が前提でこれらを個人で小ロットで購入するのは中古でもない限り難しい。
また、中古であっても多くの場合3相/単相200Vが主流で一般家庭で使いにくいのと、運よくDC入力対応品を入手したとしてもサーボパックの仕様が不明だったりコネクタが汎用品でなかったりと結局余分な部品も増えてコストがかかり、取り回しが面倒なことが多い。
一方海外だとそういった低電圧かつ汎用マイコンでも比較的簡単に動かせるサーボモータも販売されている
・TEKNIC
ClearPathServo :米国製。お手軽を売りにしていてよく海外の自作CNCで使っている人を見かける
・DMM
DYN2:.カナダのメーカ。こちらも個人購入可。サーボパック別体だが高回転域でもトルクが高い。
・JMC
Integrated Servo:中華製だがわりとまともそうな会社。驚くほど安く欧州で使用例が多い。
お試しということで一番安い3番目のJMCのモータを購入してみた。

型番
IHSV57-30-10-36
を購入。サーボアンプ内蔵のACサーボモータで市場価格100$を切るというコスパの良いモータ。
■主要スペック
出力:100W
入力電圧:DC24~50V (ただし50V加えると中の回路の電解コンデンサの耐圧が50Vだったのでマージン的に危うい)
最高回転数:3000rpm
定格トルク:0.6Nm
最大トルク:1.5Nm (T-N特性表が無いので何rpmで肩が来るのか不明)
定格電流:7.5A (A-Peak ?Arms? DQ変換が3なのか√3文化なのかは不明)
相抵抗:0.53Ω 100Wの割には内部抵抗は小さい
相インダクタンス:0.58mH
磁極数:8 スロット数:不明
形状NEMA23(取付穴が47.14 mm ピッチ)
ファームバージョン:V604 (バージョンによって使用できる調整ソフトが異なる)
※DSPチップによるベクトル制御と書いてあるが分解して確認したところ中身はSTM32F103マイコンであった。これはCortex-M3アーキテクチャのようなので厳密にはDSPではない。
■外観
一見ステッピングモータのような形をしているがれっきとしたACサーボモータである。モータドライバは尻の黒い部分にコンパクトに収められている、上の子亀のような部分は大きい割にほぼコネクタとロジック処理系の回路しかない。シャフトのベアリングは中華かと思いきや意外にもNMB(ミネベア)が使われていた。
■配線
前の記事のgrblを入れたArduinoがあったのでそのままテストに使う。
基本ステッピングモータドライバと同じで回転方向とパルス信号を送れば動くので配線は特に難しくない。差動入力になってるので配線が長くなって雑音が気になる場合はラインドライバで接続できる。差動が不要な場合は図のようにアノードコモンにするればいい。
RS232Cはサーボログをとったりパラメータを変更したりする場合は接続する。TTLレベルかと思いきや直接D-sub9ピンをつなぐスタイルでレベル変換不要。(最初勘違いしてFT232の出力をつないでしまった)
結局この種のドライバ内蔵モータというのは外付けのサーボパックが不要となるのでコントロールボックスの小型化には良いが、その分電源ラインとコントロール信号は引き延ばさないといけないので、コントローラとの配線数は逆に増える傾向にある。

I/Fはすべてターミナルブロックになっており、特別なコネクタを用意しなくても銅線を直接接続できる。
写真ではENA(イネーブル)も配線しているがこれがシステムGNDにつなぐとサーボOFFとエラークリア、浮かせるとサーボONという通常とは逆論理なので使いにくい。まあ趣味レベルなら配線しなくても問題はないかと思う。
ACサーボモータではあるがディップスイッチで1回転の入力ステップ数を変えられる。自分は元のCNCの設定1600p/rev(1.8進角1/8マクロステップ相当)にとりあえず設定した。ステッピングモータはステップ数を高くすると回転がスムーズになる反面、脱調しやすくなるが、ACサーボでは疑似的に設定しているだけでベクトル制御をしているなら理論上いくら細かくしても脱調は起きないはずである。ちなみに元のエンコーダの分解能はインクリで光学式1000×8逓倍のようなのでこれより細かくしてもあまり意味はないと思う。この状態でメイン電源を印加すると即座にサーボロック(FBがかかって手で軸を回せない)状態になる。
一応サーボの中身に興味はあるので調整ソフトをダウンロードして何ができるか見てみる

主要な内部変数をウォッチできる。丁寧にも選択すると下に解説までついている。

パラメータはリアルタイムで変更できる。基本的な位置速度電流のPIゲインやトルク制限などがあり、変更して挙動が変わる(音的なもので計測はしていない)ことを確認。制振制御のためのノッチフィルタやオートゲインチューニング的なものはない。このモータを使用する人でそこまでやる人は少ないのか。また、インクリエンコーダ型のACサーボにも関わらず起動時に動くことなくサーボがかかるのでどうやって初期磁極位置を検出しているのか疑問に思ったが、パラメータの中にホールセンサの項目があったので単にホールセンサのパターンから計算しているのだと推測する。

4ch分のサーボログ機能もある。ただし最速でもサンプルレートが50msなのではっきりいってゲイン調整用途などでは使い物にならない。シリアル通信で一度に取り出す量が固定というところからこの制約が来ていると思うが最低1msでは取れるようにしてほしい。
grbl+CNCjsで動かしてみた動画。
普通にステッピングモータの信号を与えるだけで動く。動画では過剰なイナーシャをつけているせいで角度によっては発振も多少あるので、この場合ゲインとフィルタのパラメータを調整すべきだが、CNCや搬送用の機械などイナーシャが小さいものではあまり問題にならないでしょう。事実自作CNCでは割とデフォルトパラメータのままでも使っていると思われる人も多い。マイクロマウスにはどう考えても大きすぎるが、簡単な命令でステッパー感覚でサーボをかけられるのでご家庭のCNCや3Dプリンタのグレードアップ、もしくは24V以上の電圧が許可されている比較的大型の機体を使用するロボコンには使えるのではないでしょうか。