2017年12月20日

[OSW] SinCos encoder for MiGE

PCのアナログ入力は、DirectInputの仕様で最大16bit(65536ステップ)。ステアリングコントローラー(ハンコン)も同じ。最近の市販ハンコンはだいたい16bit。ロックトゥロックを、0~65535の数値に置き換えてPCに送っているわけですな。

例えばロックトゥロックを1080度に設定している場合、ステアリングを1度傾けると 65536÷1080≒61ステップの入力値が変わる。ステアリングを1回転(360度)回すと、65536×(360÷1080)≒21845ステップ。

ここで唐突にOSWの話。
みんなのMigeサーボモーターに搭載されているエンコーダーは、2500PPR(10000CPR), 5000PPR(20000CPR), 10000PPR(40000CPR)のどれかのはず。単位のCPR(Counts per Revolution)は、1回転あたりの位置検出数を表している。つまり、2万CPRじゃ21845に微妙にスペック不足。4万CPRの必要性が証明されてしまった。アーメン。


ところで最近、iRacingのForumで「エンコーダーを高解像度のものに交換するとスゲーぞ」と話題になっている。既にマニア向けシムリグ屋で販売されてる。
Simtronix - MiGE SinCos Encoder Kit 3,686,400 CPR
SimRacingBay - SinCos encoder for MiGE motors 2,097,152 CPR
370万CPRと210万CPR?こんなに要らないよね。ポチッ。


届いた。
MMosが対応してないので、Simucube Firmware に入れ替える。
エンコーダー変更前後の違いを確かめるため、この状態でしばらく試走しておいた。

そして210万CPRエンコーダーに交換。
お、ノイズが明らかに減った!
前より滑らかな気がする?
確実に違うんだけど明確に言葉で表現できない…。
交換して良かった気がするような気がする。

センサーの精度は分解能の10倍必要という話もあるので、21845×10くらいのCPRまでは意味がある、という理屈は成り立つ。ただし数百万CPRに意味があるかどうかは、正直よくわかりませんでした。
実用上は10000CPRでもまったく問題ないし、追加投資に見合うリターンは無いかも。マニア向け。ラップタイムは変わらん。

これからOSWを買うなら、SimRacingBayの210万CPR付きの SimuCUBE based OSW kit SinCos – with Acrylic case にしといたら精神安定上いいかもね?というお話でした。

7 コメント:

aphy さんのコメント...

こんにちは。ここで質問させていただいてもよろしいでしょうか。
初歩的なことなのだと思いますが、granityのdevice stateのところで
Power stage forced off ! とOver voltage !
というように二箇所ビックリマークが出て動作しなくなるのですが、どこの設定を間違えているのでしょうか。ご教授お願い致します。

uk さんのコメント...

こんにちは。
縁石などのギャップなどに乗った瞬間にFFBが切れスカスカになるけど、運転はできる、という状態ですか?
おそらくGranityのMMCとMCCの値が低く、その低い設定値以上の電流が流れただけなので、SmallMigeならMMCとMCCの値を両方とも12A(Bigなら25A)くらいにしてみてください。

aphy さんのコメント...

お返事ありがとうございます。
big migeなのでmmcを25A、mccを24Aで試しましたがover voltageが出ました。
走れる時は1周くらいは持ちますが、悪いときはコースイン時にステアリングを少し切っただけでffbがなくなります。
運転はできます。

ハード的な部分が壊れていたりするのでしょうか。

uk さんのコメント...

問題の切り分けができないので、一度標準のdrcを読み込んでテストしてみてください。
https://granitedevices.com/wiki/List_of_motors_for_SimuCUBE

aphy さんのコメント...

お手数をおかけします。
私が購入したmigeは、
MiGE motor package - SimuCUBE ready
Servo Motor: MiGE 130ST-M15015 30Nm 10000ppr (40000cpr)
という名前で販売されており、10000pprのファイルはありませんでしたので、5000pprの標準drcを読み込んでやってみました。
その結果,fault registerの項目の
Over current !
Power stage forced off !
Over voltage !
SimpleMotion !
の4か所に ! がつきました。
コースインする前にはもう発生しました。

uk さんのコメント...

Granity wiki のSimuCUBE Install guideはお読みになりました?
まずエンコーダーは、GranityのMachineタブのFBRの数値を10000に変更してください。
MMosのCPRを40000に変更するのもお忘れなく。

そしてエラーについては、内容をひとつずつ
https://granitedevices.com/wiki/Granity_user_guide/Testing
ここで調べてみてはいかがでしょうか。
FOCを上げる、ブレーキングレジスターの不具合、EMIによる通信エラー、あたりが怪しいみたいです。
解決したら教えてくださいね。

aphy さんのコメント...

こんにちは。
その後怪しいところを順番に消して、ブレーキングレジスターの不具合が残ったのでsimucubeを新しいものに取り替えたところ正常に動作するようになりました。
丁寧に対応していただき大変助かりました。
ありがとうございました。

コメントを投稿