なんでも作っちゃう、かも。

Arduino/Make/フィジカルコンピューティング/電子工作あたりで活動しています。スタバの空きカップを使ったスタバカップアンプなど製作。最近はもっぱらArduinoと3Dプリンタの自作に興味があります。

Rostock miniオーバーホール

Posted by arms22 on 2016年03月13日 1  0

IMGP1211

マグネティックジョイントの鋼球が外れてずっと修理できず放置状態だったRostock mini。修理ついでにパーツデザインを変えて組み立て直しました。

IMGP1214

IMGP1219

これまでPRパーツに直接鋼球を接着剤で取り付けていましたが、海外の作例にならって六角穴付きボルトに鋼球を接着するようにしました。2つの鋼球の距離を60mmから50mmに変更し、ベルトクランプもシンプルに2本のネジで止めるようにしました。

IMGP1216

プラットフォームは一回りほど小さくしました。それとホットエンドのノズル径を0.3mmから0.5mmに変更しプリント時間を短縮できるようにしました。ノズル径0.3mmでは最大でも0.3mmピッチでしか積層できませんでしたが、0.5mmなら0.5mmピッチで積層できるので約1.6倍でプリントできます。また射出幅も0.3mmから0.5mmに変わるので外周ループの回数も3回から2回に減らせます。

IMGP1209

制御基板は手作りのSmoothieボードクローン(写真右)からITショップ「えとせとら」さんのMomoinololu M3(写真左)に交換しました。ホットエンドの制御温度がかなり安定するようになりました。M3の電源コネクタにはPCI Express用コネクタが採用されています。発火&発煙事故の多いスクリューターミナルよりずっと安心できます。モータドライバが5つ搭載できるのでデュアルヘッドも試してみたいと思います。


Gコード


以下、忘れがちなGコードを載せておきます。

PIDチューニング(ヒートベッド)
M303 E1 S50

PIDチューニング(ホットエンド)
M303 E0 S230

Zプローブテスト
M119

ワンショットプローブ
G30

オートベッドレベリング
G32 E0 I0.02 J65
G32 R0 I0.01 J65

SDカードに設定保存
M500

SDカードからプリントする
※Gコードファイルのファイル名を8.3形式の短いファイル名(hogehoge.gco)に変更する必要があります。
M20 ; ファイル一覧を表示する
M23 ; プリントするファイルを選択する
M24 ; 選択したファイルのプリントを開始する
M25 ; プリントを一時停止する
M26 ; プリントを中断する
M27 ; 進捗を表示する


関連URL


Smoothieボードクローンの製作
http://arms22.blog91.fc2.com/blog-entry-539.html

Momoinololu M3[Rev 1.1] - ITショップ「えとせとら」
http://itcorp24.cart.fc2.com/ca8/48/p-r-s/

Supported G Codes - Smoothie Project
http://smoothieware.org/supported-g-codes

Rostock miniアイドラーエンドの改造

Posted by arms22 on 2015年08月07日 0  0

今年の2月頃に故障してしばらく放置していたRostock mini。修理するついでにアイドラーエンドを改良しました。

Rostock miniアイドラー改造

グレーのパーツが新アイドラーエンドで紫は従来のもの。ベアリングを方持ちから両端支持に、アクリルフレームとの接合をネジ2本から4本に、パーツの高さを28mmから24mmに変更しました。アクリルフレームとの接合をネジ4本にすることでフレームとしっかり接合することができ、グラツキを抑えることができると考えています。

Rostock miniアイドラー改造

アクリルフレームにネジ穴を2個、計6箇所あけます。アクリルの加工には専用のドリルが必要ですが、小径の穴であれば普通の鉄工用ドリルが使えます。穴あけ中にアクリルが溶けないよう切削油を適宜注入しながらあけます。

Rostock miniアイドラー改造

新アイドラーエンドを組み付けたところ。期待どおり手で揺らしてもグラグラしなくなりました。これでプリントの質もよくなるといいなぁ。

3Dプリンターで印刷したもんを自慢する大会

Posted by arms22 on 2014年09月30日 0  0

タイトルどおりですが3Dプリンターで印刷したものを自慢し合うイベントに参加してきました。3Dプリンターを持ってる人も持ってない人も集まってワイワイする会です。3Dプリンターを持ってる人はプリントした自慢のブツを持っていきます。ヨーヨーとかブレスレットとかぴかぴかの花瓶とかゴムっぽい靴とかハダカのおねーさんとか色々ありました。僕はRostock miniを持っていってホレホレしてきました。

HPO_5810
撮影:久岡さん

HPO_5846
撮影:久岡さん

HPO_5865
撮影:久岡さん

HPO_5883
撮影:久岡さん

プロのカメラマンの方にRostock miniを撮影して頂いた!超カッコいい!

3Dプリンターで印刷したもんを自慢する大会
http://www.osakan-space.com/events/5413

マグネティックジョイントの製作(3)

Posted by arms22 on 2014年05月03日 0  0

IMGP9753

アームの磁石を6x6mm、カーボンパイプを6mmに変更しました。これでプリント中に磁石が外れることもなく剛性も少しUpしました。ただプリント中にオブジェクトが反って、反った部分にノズルが乗り上げる状況が発生するとやっぱりアームが外れてしまいます。。アームが外れないと他の部分が壊れてしまうので致し方なし、、かな。

platform

今回製作したマグネティックジョイントのデータをThingiverseにアップしました。

Magnetic ball joint for Rostock mini
http://www.thingiverse.com/thing:305230

アームと磁石のジョイント部分はOpenScadで記述しています。使用する鋼球・磁石・カーボンパイプのサイズに合わせてカスタマイズ可能です。変数の値を適当に合わせて使ってください。

ball_d = 9;
outer_d = 8.6;
inner_d = 6.3;
height = 25;
offset = 2.2;
$fn = 64;

module joint() {
difference() {
union() {
// poll
cylinder(r=outer_d/2, h=height, center=true);
// helper disc
translate([0, 0, -height/2 + 0.1])
cylinder(r=outer_d*1.1, h=0.2, center=true);
}
cylinder(r=inner_d/2, h=height*2, center=true);
translate([0, 0, height/2+offset]) sphere(r=ball_d/2);
}
}

for(x=[0:2]) for(y=[0:2])
translate([x*(outer_d * 2), y*(outer_d * 2), 0]) joint();


マグネティックジョイントの製作(2)

Posted by arms22 on 2014年04月17日 2  0



マグネティックジョイントの調整も完了したのでテストプリントしてみました。マグネティックジョイントへの変更に合わせてタイミングプーリーを36歯から16歯に、ステッピングモーターも200ステップから400ステップに変更しています。

IMGP9738

わりと有名なルークをプリント。スライサーはKISSlicer、レイヤー0.2mm、プリント速度50mm/s、infill33%。

IMGP9748

25x25mmキューブ。KISSlicer、レイヤー0.2mm、プリント速度50mm/s、infillはVASE設定で。

IMGP9740

外径寸法はだいたい25mm。プラジョイントだと2辺の長さが微妙に異なることがあったけど、おおよそ寸法どおりにプリントできるようになりました。

IMGP9744

六角形の外径寸法もおおよそ寸法どおり。プリント中にマグネットがはずれることが1度あったので、磁石を6mmのものに交換する予定。

マグネティックジョイントの製作(1)

Posted by arms22 on 2014年04月08日 3  0

デルタプリンターのRostock mini、取りあえず完成して動作しているのだけども、プリント結果に満足できなかったので新しいジョイント機構を試すことにしました。今回試すのはネオジム磁石と精密鋼球を使ったマグネティックジョイントです。海外の製作例を見るととってもファンタスティックな結果に!

Xnaron Printable Magnetic u-joint option for Rostock Max
http://forum.seemecnc.com/viewtopic.php?t=1704

BerryBot3D | Genie’s Blog
http://etherpod.org/blog/?p=7210

IMGP9713

使用するネオジム磁石は5x5mmの円柱型と直径9mmの精密鋼球。ネオジム磁石はamazonで、精密鋼球はMonotaroで購入。

2014/4/9追記
ネオジム磁石は専門のサイトから買った方が良いかも。amazonで売っているものは吸着力が少し弱い(グレードが不明)。ボーデンチューブに引っ張られてアームが外れることがあった。

NeoMag
http://www.neomag.jp/index.html

IMGP9709

前回製作した時と同じようにカーボンパイプを使って6本のアームを製作。カーボンパイプは外径5mm内径3mm。両端には外径8mm内径5mmのプラスティックジョイントに、ネオジム磁石を挿入して接着剤で固定しています。

IMGP9712

プラスティックジョイントのクローズアップ。鋼球との設置面は鋼球を半田ごてで温めてジョイントを少し溶かしすべりを良くしています。

IMGP9715

キャリッジとプラットフォーム。海外の製作例を見るとアームの稼働域を確保する、鋼球を45度傾けて取り付けている。計算では平面にあけた丸穴に鋼球を取り付けても、アームの稼働域は十分確保できるのでこの形を採用した。

IMGP9732

ベルトクランプのクローズアップ。ベルトを爪に引っ掛けるだけだったRostock miniの設計から変更し、ベルトクランプ用パーツをネジ止めすることにしました。リニアベアリングはフランジ付きに変更しネジ止めしています。

IMGP9726

組み上げてみた。いい感じ。

パーソナル3Dプリンタ ダヴィンチ da Vinci 1.0
XYZprinting
売り上げランキング: 3



Smoothieボードクローンの製作

Posted by arms22 on 2014年02月10日 1  0

前にも少し書いたけどデルタタイプの3Dプリンターはヘッドを動かす際、沢山の計算処理を必要とします。その為、多くのRepRap 3Dプリンターに採用されているArduinoベースの制御基板では処理速度が不足し、かなりの低速でないと綺麗にプリントできないという問題があります。そこでより高速なマイクロコントローラーを搭載したSmoothieという制御基板を作ろうと思います。

Smoothieはオープンソース、ハイパフォーマンス、LPC17xxマイクロコントローラー向けの制御基板を開発するプロジェクトです。ソフトとハードの両方を開発しています。メインマイコンがLPC17xxということでmbedやLPCXpressos 1769評価基板を使ってSmoothieのクローンを作ることができます。

IMGP9480

Smoothieクローン。秋月電子で販売されているLPCXpressos 1769評価基板を使ってクローンを作成しました。マイコン周りを気にせずステッピングモータードライバ、ヒーター、エンドストップ、サーミスタなどの部品を追加するだけで作れます。

IMGP9492

Momoinololuとの比較。評価基板の幅が広いので1割ぐらい大きめ。SDカードにはコンフィギュレーションファイルが書き込まれています。MarlinやRepetier-Firmwareではコンフィギュレーション情報はソースコードに埋め込まれますが、Smoothieは起動時にコンフィギュレーションファイルを読み込みどのように振舞うの決定します。Smoothieはマスストレージドライブとして動作するのでパソコンに繋げば簡単にコンフィギュレーションファイルを書き換えることができます。

IMGP9491

3.3V電源。Momoinololuにも使われているスーパー3端子レギュレーターを使ってみました。秋月電子で購入。3端子レギュレーターと言いつつ中身はDCDCコンバーター。3.3Vで500mAまで出せます。入力は6V以上必要なのでVBusから降圧とかできません←はまった。
LPCLinkは切り離して使うので、3.3V電源は必須です。Vinに5Vいれても3.3Vはでてきません。なぜならLPCLink側に3.3Vレギュがいるから。。←はまった。

IMGP9483

裏側、カオス。。もうちょっと考えて配線しないと。。

IMGP9488

12V電源とヒーター周り。秋月電子で買ったNchパワーMOSFET、IRLB3813PBFが2個並んでいます。30V260Aまで流せます。

IMGP9475

Rostock miniに搭載、、といいたいところやけどネジ穴の位置が合わないのでアダプタを作るまで宙ぶらりん。

2012/2/10 追記


取りあえず動かしたところを動画に撮ってみました。500mm/sぐらいでてると思う。この速度だと移動の誤差が大きいので実際のプリントは40〜100mm/sぐらいまで落とすと思います。


参考URL



Smoothie Project
http://smoothieware.org

Smoothie On A Breadboard - Smoothie Project
http://smoothieware.org/smoothie-on-a-breadboard

Smoothieボードクローン - ピン割り当て
https://docs.google.com/spreadsheet/ccc?key=0AodGIa_qs1gwdENyemJqaDR6OGMxS2FYLXh6WUxaSEE&usp=sharing

Rostock miniの製作(8) -ファームウェアの設定とベッドの水平調整-

Posted by arms22 on 2014年01月14日 5  0

IMGP9441

今回はファームウェアの設定とベッドの水平調整について。ファームウェアはjcrocholl/Marlinを選択しました。ダウンロードは下記URLから。

jcrocholl/Marlin - GitHub
https://github.com/jcrocholl/Marlin


ファームウェアの設定



通信速度(ボーレート)を設定。
#define BAUDRATE 250000
制御基板のタイプを設定。
// 62 = Sanguinololu 1.2 and above
#define MOTHERBOARD 62
デルタの機能を有効に。
// Enable DELTA kinematics
#define DELTA
直線移動を曲線移動に分割する際の分割数。値を大きくすると滑らかに動くけど、CPU負荷が増えて処理速度が間に合わなくなり、移動がガタガタになる。デフォルトの200だとあまり速度を上げれない。
// Make delta curves from many straight lines (linear interpolation).
// This is a trade-off between visible corners (not enough segments)
// and processor overload (too many expensive sqrt calls).
#define DELTA_SEGMENTS_PER_SECOND 200
以下、ロッドの長さとかオフセットの設定。だいたいRostock miniの設計値どおり。
// Center-to-center distance of the holes in the diagonal push rods.
#define DELTA_DIAGONAL_ROD 186.0 // mm

// Horizontal offset from middle of printer to smooth rod center.
#define DELTA_SMOOTH_ROD_OFFSET 140.61 // mm

// Horizontal offset of the universal joints on the end effector.
#define DELTA_EFFECTOR_OFFSET 33.0 // mm

// Horizontal offset of the universal joints on the carriages.
#define DELTA_CARRIAGE_OFFSET 22.0 // mm
エンドストップの論理。マイクロスイッチをN.Oで接続してる場合、INVERTING = trueでいいと思う。
const bool X_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Y_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Z_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
X/Y/Zの移動方向。とりあえず動かしてみて期待した方向に動くか確認。
#define INVERT_X_DIR false    // for Mendel set to false, for Orca set to true
#define INVERT_Y_DIR false // for Mendel set to true, for Orca set to false
#define INVERT_Z_DIR false // for Mendel set to false, for Orca set to true
ホームポジション。デルタの場合、ホームポジション=MAX。
// Sets direction of endstops when homing; 1=MAX, -1=MIN
#define X_HOME_DIR 1
#define Y_HOME_DIR 1
#define Z_HOME_DIR 1
X/Y移動の最大値。ガラス板の直径が170mmなので少し余裕を持たせた値を設定。
// Travel limits after homing
#define X_MAX_POS 80
#define X_MIN_POS -80
#define Y_MAX_POS 80
#define Y_MIN_POS -80
MANUAL_Z_HOME_POSの値は水平調整が終わった後、ホットエンドをつけてノズルとベッドが丁度ピッタリくっつく高さに調整する。
#define MANUAL_Z_HOME_POS 206.5  // For delta: Distance between nozzle and print surface after homing.
ホームポジションに移動する時の速度。速すぎるとスイッチの検出前に激突してしまうので、少しゆっくりめにするといい。板バネつきのマイクロスイッチなら板バネがたわむ分、少し速くてもよいかもしれない。
#define HOMING_FEEDRATE {50*60, 50*60, 50*60, 0}  // set the homing speeds (mm/min)
X/Y/Z移動時のステップ数。単位はステップ/mm。エクストルーダーの値は仮の値。
#define DEFAULT_AXIS_STEPS_PER_UNIT   {44.44444444444444, 44.44444444444444, 44.44444444444444, 900}


ベッドの水平調整



プラットフォームの中央にダイアル・ゲージを取り付けて次の手順で調整。
  1. キャリッジ上部のネジを調整して、3カ所の高さが等しくなるように調整します。
  2. 中央の高さが上記3カ所と同じ高さになるようにDELTA_SMOOTH_ROD_OFFSETを調整します。
  3. 1〜2を数回繰り返す。
4カ所の高さが±0.01mm以下まで調整できたら、ダイアル・ゲージをホットエンドに交換し、MANUAL_Z_HOME_POSを調整する。

上記、4カ所の高さの調整には次のようなGコードリストを用意しておくとよい。Zの高さは機体に合わせて適宜変更してください。
G28

G1 Z3 F6000
G1 X0 Y0 F6000

G1 Z1 F300
G4 S2
G1 Z3 F300
G4 P500
G1 Z1 F300
G4 S2

G1 Z3 F300
G1 X0 Y70 F6000

G1 Z1 F300
G4 S2
G1 Z3 F300
G4 P500
G1 Z1 F300
G4 S2

G1 Z3 F300
G1 X60.6217 Y-35 F6000

G1 Z1 F300
G4 S2
G1 Z3 F300
G4 P500
G1 Z1 F300
G4 S2

G1 Z3 F300
G1 X-60.6217 Y-35 F6000

G1 Z1 F300
G4 S2
G1 Z3 F300
G4 P500
G1 Z1 F300
G4 S2

G1 Z3 F300
G1 X0 Y0 F6000


参考URL


Rostock miniについてのメモ・3
http://etherpod.org/blog/?page_id=6847

Mini Kosselのキャリブレーション方法
http://nexus7fan.blogspot.jp/2013/11/mini-kossel.html

SeeMeCNC Forums - Bed leveling
http://forum.seemecnc.com/viewtopic.php?f=54&t=1174

Calibrating a Delta 3D Printer
http://minow.blogspot.jp/index.html#4918805519571907051

Rostock miniの製作(7)-テストプリント-

Posted by arms22 on 2014年01月13日 0  0

IMGP9461
(Venus de Milo 80mm/s, 0.2mmレイヤー)

テストを兼ねてちょっと大きめのモノをプリント。床に転がしといたエクストルーダーを動かした時にファームウェアのリセットがかかって、途中で止まってしまいましたが。。

プリント結果は見ての通り。atomと比べると少し、いやかなりイマイチな仕上がり。。外周の線がガタガタに波打っているのが見えます。原因は直動機構の分解能不足・メカの組み立て誤差・調整不足が考えられるけど、システム(制御ボード+ファームウェア)としての性能限界が大きいみたい↓

Rostock Problems with X/Y Movement Stuttering
http://forums.reprap.org/read.php?178,235397

デルタは1つのGコマンドを複数の細かな移動に変換するため、ファームウェアの処理能力が間に合わなくなると、ヘッドの動きが途切れ途切れになる。プリント速度を遅くすれば処理が間に合うようになるのだが。。根本的にこの問題を解決するのには制御ボードをより高速なボードに置き換えるしかないだろう。

ARMマイコンを積んだオープンソースの制御ボード。

Smoothie Project
http://smoothieware.org

秋月で販売されているLPC17xxの評価基板を使って組み立てることもできるみたい。

Smoothie On A Breadboard
http://smoothieware.org/smoothie-on-a-breadboard

Rostock miniの製作(6)-とりあえず動作-

Posted by arms22 on 2014年01月06日 6  0

明けましておめでとうございます。2013年は3Dプリンター尽くしの1年でしたが、2014年、今年も3Dプリンター尽くしになりそう予感がしています。今年もよろしくお願いします。

んで、デルタプリンタ「Rostock mini」の近況ですがとりあえず動作するところまでできました。ファームウェアの設定とか調整とかは後ほどまとめます(予定)。



調整中の様子。真ん中と柱の前3カ所の高さが一致するように、エンドストップのネジとファームウェアの設定を調整します。



ある程度高さが揃ったところでテストプリントしてみました。動画では分かりにくいですが、側面にデルタプリンタ特有の鱗のような後がみられます。

動作音が思ったほど静かではなったのですが、どうやらステッピングモーターの配線が原因のようでした。ユニポーラタイプのステッピングモーターをバイポーラ用のモータードライバで駆動しているのですが、2つのコイルを直列に接続していたのがまずかったようです。片方のコイルのみ接続すると振動が少なく発熱も減りました。

該当の記事は見つかりませんでした。