メカキネアートシステムで自動演奏装置

Gymさま nyaruさま

ご回答ありがとうございます。
config.gの設定値を確認したところ1000だったので
2400にしたところ、これまではほとんど動かなかったのが
ぐるぐる動くようになりました!
ただ、ちょっと問題があって
360度回転させても、ぴったり360度の位置に止まらず
少しだけずれます。

これについては、今、制作に使わせてもらっているスタジオから
離れているので、明日、イモネジの締め具合を確認する、
電流の最大値を3000にしてみる、などを試してみます。

もしそれでもずれる場合は、モーターの交換も検討しようと思っています。

config.gのモーターの電流の値を3000に上げてみました。
360°回転を10回転繰り返したところ、最初に合わせていた矢印が画像のようにずれました。

上の矢印が下の矢印より手前で止まっているので、3600°より若干、回転角度が足りないようです。

モーターの交換、機構の改善等、
検討してみようと思います。

回転台
https://amzn.asia/d/bFWS5rD

ステッピングモーターを交換するとした場合、どれにするか調べています。
23HS45-4204Sというモーターはどうかな?
と思ったのですが、いかがでしょうか?

バッと見た感じ、
4.2A→Duet3の6HCなら6Aまで出せるので大丈夫
step角度1.8度→Avalontechのストアのやつと同じなので同じ設定で使える
のですが
軸径がΦ10mm なのが気になりますね。AvalontechのモーターのでっぱりはΦ6.35mmなので、モーターに取り付けているカップリングなどの部品も交換することになる気がします。

ちなみに私ならモーターや機構を変えるよりも設定で調整してしまいます。
例えば回転角度が全体的に少し足りないのならstep/mmの設定を4.444から4.5にしてちょっと多めに回すようにしたり。

「いいね!」 1

モーターの軸と回転のテーブルを直結しているようなので、理論値で動作するんじゃないかなと思っていましたが、原因はぱっとはわかりませんが誤差があるのかもしれないですね。

もし加速減速で脱調しているのであれば加速度の設定値を落とすと改善するかもしれません。(回転のスピードの立ち上がり立ち下がりに影響は出ますが・・・)
M201 X2000.00 Y2000.00 Z2000.00 ;最大加速度設定
とかもう少し小さい値で様子を見ても良いかもしれないです。

あとはGymさんが言うようにstep/mmを少し増やしてみても良いと思います

10度ぐらい足りていなさそうなので、4.456とかにして一度様子をみたら良いかと思います。(3600 * 4.444/3590=4.456で計算)
M92 X4.456 Y4.456 Z4.456 ;step/mm設定
とかに設定変更した上でもう一度3600度回転させて誤差の幅が改善すればよし、何度か設定変更して改善しないようであれば機構とかモーター変更とかを考えるのが良いのかと。

「いいね!」 1

Gymさま nyaruさま

ご回答ありがとうございます。
モーターを交換するより先に
おふたりにアドバイスをいただいた通り
設定を微調整してみたいと思います!


色々と設定の数値を変えて微調整を繰り返しています。
確かにstep/mmや加速度の数値を変更すると360度回転させた場合、
360度より手前で止まったり、行き過ぎたりするので
ちょうど良い数値を探しているところです。

ただこの調整方法だと目視で360.00ぴったり回転する数値を
割り出すのは厳しいですね。仮に回転するたびにほんのちょっとずつでも角度がずれていたら次第にずれが大きくなって、定期的に手動でズレを修正する必要がで出来そうです。
ピッタリ指定した角度通りに動かす方法があればベストなのですが。。。

加速度によって変わるということは、加速や減速のときに動き切れなかったり、行き過ぎたりが起きているってことなんですかね。
加速度遅くしたら行き過ぎる結果も出ているようなのでちょっと原因がわからないですね・・・。

モーターをピッタリ指定角度に動かす事自体はエンコーダーがあれば可能ではあるのですが(Duetにつなぐ場合はいろいろ制限がありますが)、ただどうやってエンコーダーを回転台に取り付けるのかとか設定がさらに複雑になるなど新たな問題が出てきます。

ふと以下のことを思いました。

  • 1方向に何度も回転させたときの誤差が大きくても左回転右回転と両方向から回転させたときの誤差が小さければ、両方向から動かして複数回転させないモーションにしたら誤差は比較的少なく済むのではないかということ(バックラッシュ等あるのでどうなるかわからないですが)
  • 回転台の1周でリミットスイッチや近接スイッチ等のスイッチが入るようにしておけば、モーションの開始前等にホーミングをいれることで強制的に毎回同じ開始位置に持っていけるのではないかということ

参考になれば

「いいね!」 1

nyaruさま Gymさま

お返事ありがとうございます。
今朝、実験を再開したところ
設定値が同じでも運転を繰り返していたら
行き過ぎたり、足りなかったりしたので
設定値を一番最初に戻して、
カップリングや軸受のイモネジを
さらに締めました。
そうすると一定の角度行き過ぎるようになったので、加速度を2500から2000にしたところ、
ピッタリ指定した角度で止まるようになりました。

確認はしていたつもりですが、イモネジの締め付けが足りなかったのが1番の原因だったようです。お手数をおかけしてすみませんでした。

「いいね!」 1

A 360°回転を10回繰り返す→角度OK
B 12°回転して1秒止まるを30回で360°→角度OK
C 24°回転して1秒止まるを15回で360°→角度OK
D 36°回転して1秒止まるを10回で360°→角度NG
E 360°1回転→角度OK
F 48°回転して1秒止まるを15回で720°→角度NG G 360°二回転720°→角度OK

なぜかDとFのときは必ず角度がずれます。
指定した角度の少し先まで行き過ぎて、原点復帰すると、そのずれた位置に戻ります。
他の12°、24°、360°の場合はピッタリの角度で止まるので、イモネジの締め方ではないと思うのですが、原因の検討がつきません。。。

configの設定等、もし何か調整できる方法があれば、教えていただけないでしょうか?

追記
60°回転して1秒止まるを6回で360°→角度OK
72°回転して1秒止まるを5回で360°→角度OK

うーん、難しいですね。
ピッタリ来るのが大部分のようなので、設定的には問題ないのかなと思いました。
36度や48度回転で止まる場所の前後で負荷がかかりやすい箇所があるのかもしれません。12度や24度回転の時は問題ないようなのでスピードが乗っていると引っかかるとかがあるのかな?難しいですね

すでに確認済みかもしれないですが、回転台の軸を手で回してみて引っかかり等ないか確認してみても良いかと思います。

おそらく脱調が起きていて、全体的な位置がズレてしまっているのかと思います。部分的にトルクが負けている箇所があるのかと。

もしかしたら加速度、速度を遅くしたら改善するかもしれないです。

「いいね!」 1

ありがとうございます。
明日、加速度や速度の変更を試します!

加速度を2000から1500まで下げたところ36°と48°の脱調が解消されました。
どうもありがとうございました。

「いいね!」 1

ストップウォッチで測ったところ
12°回転するのにかかる時間は0.256秒、
60°回転するのにかかる時間は0.491秒。

理想は60°で0.4秒だったのですが、
これ以上、速度の数値を上げてもあまり影響はなく、加速度を上げると脱調が起きるので、
現状の設定で進めていこうと思います。

もし、どうしてももっと速くする必要が
あった場合は、使わない鍵盤を取り除いて鍵盤と鍵盤の間隔を詰める、とかモーターの交換になるのかな、と思っています。

「いいね!」 1

もうひとつのモーターが
鉄筋のバチを下ろして上げる時間を入れると、
下の人形を回転させるモーターの速度が
現状の倍速くらいが丁度良さそうです。

ただ、現状よりconfig.gで数値を上げても
脱調してしまい、今の仕組みのままだと
速度を上げるのは難しそうです。
構造というか仕組みを大幅に見直す必要があるのかな、と思っています。(T_T)
鍵盤と同じ数だけモーターがあれば
移動の時間は考える必要はないですが
できればそうせずに解決したいです。

鍵盤の数を減らす、
モーターをひとつ追加して
両腕を動かすようにする、

これでこれまで最大の移動角度が60°だったのが
24°になるので、移動時間が短縮できそうです。

追加モーターの分、重量が増えるので
下のモーターの交換もできれば、と考えています。

「いいね!」 1


モーターを追加しました。

いくつか質問があります。
自動演奏装置が完成したら、展覧会に展示したいと考えています。
その場合、お客さんがスタートボタン(押しボタン)を押すと演奏が始まる、という
形式にできるでしょうか?

それができたとして、お客さんの中には演奏の途中でスタートボタンを押したり、
スタートボタンを連打したりする人もいると思うのですが、
演奏の途中にスタートボタンを押しても無効にすることはできますか?

もし自動演奏装置に何かしら不具合が起きた時には緊急停止ボタンを押したら
ストップするようにしたいのですが、それは可能でしょうか?

原点復帰ボタンを作り、そのボタンを押すと、両腕につながるモーターと
全体を回転させるモーターの合計3つを指定した角度になるようにしたいです。
とりあえず、リミットスイッチとケーブルを注文するつもりですが、
メカキネアートシステムの設定をどうするかが、下に引用した内容では
僕の実力でははっきり分らないので、また部品が届いて設定する段階になったら
質問させていただきたいです。どうぞよろしくお願い致します。

これは可能です。
Duetには外部トリガー(スイッチとか)でGコード(NCプログラム)を実行する機能があり、現在のメカキネのソフトでもトリガー用のNCプログラムを生成し制御基板に保存することができます。
configではM581というコマンドで外部トリガーを設定します。

これもデフォルトでそうなっていたはずです。ボタンを押してNCプログラムを実行している際中は、ボタンを押しても最初からということはなかったと思います。
ただ連打をされたら処理は溜まっていって、一通りモーションの再生が終わったあともう一度モーションの再生とかがあった気がします。(ここは要確認ですね。。)
とはいえ、今M581の設定を見ていたらファイルを実行していないときのみトリガーを受け付けるみたいな設定があったので、その設定を使えばモーション再生中のボタン連打は無視されるということができそうです。
もしそれがだめだったらNCプログラムの最後にリセットさせるようなコマンドを追加させればいけるかなぁと考えています。

これも可能です。
Duetの外部トリガー実行の標準機能で緊急停止というのがあるのでそれを使うことができます。(M581 T0)

これも可能です。
Duet制御基板ではホーミングの内容は自分で記述することができるので、前述の外部トリガー機能とホーミングを合わせて使えば、ボタンを押した際にホーミングを実施しその後指定角度へ移動するといったことが可能です。
この辺はメカキネソフトではカバーしていなかったはずなので、メカキネソフト側の改修か、ある手作業での程度設定が少し必要かもしれません。

「いいね!」 1

ご回答ありがとうございます。
やりたいことが実現できると分かって嬉しいです。早速、スイッチ類を取り寄せます。

【メモ】
https://bbs.avalontech.jp/t/duet3/604/4