中野島ロボット

小さなロボットの自作記事を書いています。

idbox!からRostockを作る Day7 プログラミング

はじめに

今日はArudinoMEGA2560に3Dプリンターファームウェアの書き換えを行います。

ファームウェア(FW)とは、CPUボードに書き込んでハードウェアの制御に使用するプログラムのことで、今回はCPUボードを3Dプリンターのコントローラに変身させます。

準備

間違ってidbox!のファームウェア(FW)を書き換えてしまわないように、idbox!のUSBコネクタはパソコンから抜いて切り離しておきましょう。

1.ArudioIDEをダウンロードしてインストールする

Arudio IDEとは、Arudinoの開発環境のことで、Arudinoをプログラミングする為のソフトウェアで無償で公開されています。

ここここからダウンロードしてきて、Windows10のパソコンにインストールします。

私が使っているのは、バージョン1.7.10ですが、2017/10/20 の最新版は、1.8.5 です。

画像

2.IDEの設定

ArduinoIDEをインストールしたら、CPUボードのMega2560 をUSBでパソコンと繋いでArudio IDEを起動します。

USBをつなぐと、緑色のLEDが点灯しているはずですが、ついていない様なら接続を確認して下さい。

そして、

 ツール→ボード から、[Arduino Mega or Mega 2560] を選択します。

 ツール→プロセッサ が、[ATめが2560(Mega 2560) ]を選択します。

 ツール→ポートから、COM3(Arudino Mega or Mega 2560) を選択します。

 (!)接続によっては、ポート名が異なる場合はがあります。COMn のnは変わります。

  

3.動作確認の実施

最初にボードが正常かを確認しましょう。

Arduinoは、プログラムのことをスケッチと呼んでいます。

まずは、動作確認用のスケッチを書き込んでCPUボードの動作確認を行います。

ファイル→スケッチの例→01.Basics→Blink を選択し、テスト用のスケッチを読み込みます。

これは、ボード上のLEDがチカチカ点滅するだけの、いわゆる”Lチカ”と呼ばれる一番単純なスケッチです。

スケッチ→検証・コンパイルを押すと、コンパイルを行い、ボードに書き込みます。

書き込み後自動的にリセットがかかって、LEDが一秒周期で点滅すれば成功です。

画像

4.Marlinをダウンロードして展開する

Marlinとは、3Dプリンターを動かすためのファームウェアで、いろいろなボードに対応しています。

RAMPSにも対応しており、idbox!のファームウェアもMarlinです。

RostockNano用に、これを修正して書き込むと、3Dプリンターのできあがりとなるわけです。

4.1 Arduino IDE1.8の場合(update 2018/02/18)

Arduino IDE1.8では、古いMarlin FWがコンパイルエラーとなります。

最新の Maline をダウンロードしてきます。

https://github.com/MarlinFirmware/Marlin

ダウンロードしたファイルを解凍し、

 ~\Marlin-1.1.x\Marlin\example_configurations\delta\generic

のに格納してある、configuration.h と configuration_adv.h を

  \Marlin-1.1.x\Marlin

にコピーして上書きます。

ダウンロードした、Rostock用のMarlinファイルを展開し、Marlin.INOというファイルをダブルクリックすると、ArudinoIDEが起動します。

そのタブで、Configuration.h を選択し、これをRostockNano用に修正して行きます。

Configuration.h ファイルは、いろいろなボードやプリンタに対応させるための設定を記述したファイルで、RostockMiniの設定から、75%に縮小した部分を変えて行きます。

変更する元の行を//を先頭につけてコメントアウトして、RostockNano用に変更します。

Configuration.h

   :

//#define CUSTOM_MACHINE_NAME "Deltabot"

#define CUSTOM_MACHINE_NAME "RostockNano"

   :

//#define TEMP_SENSOR_0 -1

#define TEMP_SENSOR_0 5 // RostockNano E3d V6 Clone

   :

//#define HEATER_0_MAXTEMP 275

#define HEATER_0_MAXTEMP 260 // RostockNano PTFE tube temp limit.

   :

// #define DELTA_PRINTABLE_RADIUS 140.0 // mm

#define DELTA_PRINTABLE_RADIUS 70.0 // mm // RostockNano

   :

// #define DELTA_DIAGONAL_ROD 250.0 // mm

// 増やすと造形物サイズが小さくなる。 20mm立方体の場合、+1.0mm → -0.2mm

#define DELTA_DIAGONAL_ROD (139.5 + 5.0) // mm // RostockNano 144.5mm

   :

// #define DELTA_HEIGHT 250.00 // get this value from auto calibrate

#define DELTA_HEIGHT 160.00 // get this value from auto calibrate // RostockNano Smooth Rod 395mm

   :

// #define DELTA_RADIUS 124.0 //mm Get this value from auto calibrate

// 増やすと、サイドが上がる(センターは殆どそのまま)1mm増やすと0.25mm変わる

#define DELTA_RADIUS (71.5 -2.0) //mm // RostockNano

   :

//#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 80, 760*1.1 } // default steps per unit for Kossel (GT2, 20 tooth)

#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 80, 100} // Rostock: XYZ(GT2, 20 tooth), E(Bowden MK8), RAMP14 1/16 microsteps, 1.8deg steppers.

ファイルは thingiversのRostock Nanoのコメント欄に置いておきました。

https://www.thingiverse.com/thing:2764097/#comments

4.2 Arduino IDE1.7の場合。

Rostock用に設定済みのMarlinが公開されているので、ここからダウンロードしておきます。

ダウンロードした、Rostock用のMarlinファイルを展開し、Marlin.INOというファイルをダブルクリックすると、ArudinoIDEが起動します。

そのタブで、Configuration.h を選択し、これをRostockNano用に修正して行きます。

Configuration.h ファイルは、いろいろなボードやプリンタに対応させるための設定を記述したファイルで、RostockMiniの設定から、75%に縮小した部分を変えて行きます。

変更する元の行を//を先頭につけてコメントアウトして、RostockNano用に変更します。

Configuration.h

   :

//#define DELTA_DIAGONAL_ROD 186.0 // mm (rostock Mini default)

#define DELTA_DIAGONAL_ROD 144.5

   :

//#define DELTA_SMOOTH_ROD_OFFSET 139.5 // mm Original Rostock Mini

#define DELTA_SMOOTH_ROD_OFFSET 108.5

   :

//#define DELTA_EFFECTOR_OFFSET 33.0 // mm

#define DELTA_EFFECTOR_OFFSET 24.75 // mm

   :

//#define DELTA_CARRIAGE_OFFSET 18.0 // mm

#define DELTA_CARRIAGE_OFFSET 13.5

   :

// Rostock_Nano E3d V6

#define DEFAULT_Kp 29.29

#define DEFAULT_Ki 2.83

#define DEFAULT_Kd 75.82

   :

#define Z_MAX_POS MANUAL_Z_HOME_POS

   :

//#define MANUAL_Z_HOME_POS 187 // Distance between nozzle and print surface after homing.

#define MANUAL_Z_HOME_POS 160.0

   :

//#define DEFAULT_AXIS_STEPS_PER_UNIT {80, 80, 80, 75.7} // JWS: XYZ 2mm belt pitch, 20 tooth pulleys, 1/16 microsteps, 1.8deg steppers E 1/8 MK8.

#define DEFAULT_AXIS_STEPS_PER_UNIT {80, 80, 80, 100} // JWS: XYZ 2mm belt pitch, 20 tooth pulleys, 1/16 microsteps, 1.8deg steppers.

(!)重要な所はここに記載しましたが、他に修正した所があるかもしれません。調整後にConfigration.hファイルは公開する予定です。

5.コンパイルと書き込み

変更が終わったらマイコンボードに書き込む(コンパイル)ボタンを押すと、スケッチをコンパイルし内臓のフラッシュメモリにプログラムが書き込まれます。

画像

(ここで練習すれば、idbox!のファームウェアの書き換えも安心ですね。)

メモ

 ・idbox!をパソコンから完全に切り離しておく。

 ・ArudioIDEをダウンロードしてインストールする。

 ・Marlinをダウンロードする

 ・Marlin.INOを起動する。

 ・Configuration.hをRostockNano用に修正する。

 ・FWをCPUボードに書き込む

用語集

ArudioIDE:Arudinoの開発環境。無償で公開されている。カンパも可能。

スケッチ:Arudinoの世界のプログラムのこと。

Marlin:Reprapプロジェクトの3Dプリンタ用のファームウェアの一種

Configuration.h:設定変更ファイルでプリンタの仕様に合わせて調整するファイル。