3Dプリンタを作ろう!
今日はトラブルデーの重箱の隅つつきです.
昨日、XYZ軸全部がリードスクリュー駆動の3DPは少数派だ、どうしてだろう?と書きました. →こちら
コストか信頼性が理由というのはよくあるのですが、う~んと考えてどうもしっくり来ません.
別の仮説がありまして、XYステージの移動速度です.XYステージの移動速度が速ければ速くプリントできます.リードスクリュー駆動はステージ移動速度が遅いのか?と問われれば、確かにその傾向がなくはない.
まずベルト駆動の場合の移動速度を考えてみますと、ギア直径=15mmだとすると、ステッパモーター1回転でステージをおよそ45mm動かせます.
その差およそ20倍.新幹線とローカル線ぐらいの速度差が生じてしまいます.リードスクリューは赤字ローカル線なのか? 誰も使わないのはそのせい?
ところがそうとも言えない事情が在るようなんです.
2相ステッパモーターの基本性能は200発で1回転です.(1.8deg/発)
ところがステッパモータドライバA4988のマイクロステップによって分解能を増やせるんです.200/400/800/1600/3200発と増やせます.
ベルト駆動の事例を調査したところ、最大分解能3200発で動かしているようなのです.ステージの移動分解能を概算しますと、45mm/3200=14um となります.パルスを乱打して駆動しているようです.
リードスクリュー駆動の場合は、素の分解能200発で駆動してやったら解決するんじゃね?
このケースではステージの移動分解能は 2mm/200=10umとなり、ベルト駆動とさして変わらないオーダーです.これならスイスイと動かせるんじゃないかと推察します.
しかし推察は推察ということで、今日はこの検証をするためにMarlinの設定を変え、VSCODEでビルドして焼いて検証しようとしました.しかしsource codeを変更してもmakeが気づいてくれないという素晴らしい病気がVSCODEにあるらしく、仕事になりませんでした.netの情報も解決の役には立っていません、いまのところ.
トラブルデー、、、こんな日ってあるんだよね.
追記:VSCODEを疑ったのは冤罪でした.
Marlinにおいてデフォのsteps/mmを設定するのはConfiguration.hの中の、
#define DEFAULT_AXIS_STEPS_PER_UNIT { 555, 400, 400, 95 }
という行です.(デフォ値は他にもある)
わたしの誤解では、Arduino2560にHEXを焼けば再起動後にデフォ値として即時採用されると思っていました.
しかし事実は異なりました.FLASHには一旦焼かれるのですが無視されます.FLASH値をEEPROMに上書きして初めてデフォ採用されます.
手順を記します.Marlin commandの一覧はこちら.
【1】焼いた直後.M92コマンドでデフォ値を表示しますと、EEPROM上の過去のデフォ値のままです.これではダメです.
M92
> echo: M92 X500.00 Y400.00 Z400.00 E95.00
【2】FLASH上の新デフォ値を読ませます.
M502
> echo:Hardcoded Default Settings Loaded
【3】EEPROMに上書きします.コマンドはM500です.
M500
> echo:Settings Stored (669 bytes; crc 49852)
【4】resetします
【5】M92でデフォ値を表示させますと、期待通りになります.
M92
> echo: M92 X555.00 Y400.00 Z400.00 E95.00
つまり、焼いた後で、M502→M500 をやれということです.
M500: write to EEPROM
M501: read from EEPROM
M502: read from FLASH
M503: print current settings
かしこ
【おしらせ】
pdfをダウンロードしていただけます.全36ページ.
3DP印刷部品のstlファイルを無料ダウンロードできます.
Marlinのvscode project folder詰め合わせも無料ダウンロードできます.
まずは無料立ち読み版をご覧になってはいかがでしょうか.(pdf)
0 件のコメント:
コメントを投稿