2014年9月24日水曜日

デルタ型3Dプリンタ KOSSEL その7

 デルタ型3Dプリンタ『Be Kossel』の続きです。
 前回、ハードウェア環境整いましたので実際に動作検証を行います。

■ソフトウエア環境を整える


・Arduino IDEのインストール


 Sanguinololuを動かすためのファームウェア、Repetier-Firmwareをビルド・書き込みする環境を構築します。

Arduino公式サイトよりArduino IDE(開発環境)をダウンロードします。

 http://arduino.cc/en/main/software

 今回はarduino-1.0.5-r2-windows.zipをダウンロードしました。

 ダウンロードしたファイルを適当な場所に解凍します。
 (以下、C:\arduino-1.0.5-r2フォルダに解凍した前提で説明します)


・Sanguino定義ファイルのインストール


 次にArduino IDEでSanuinololuを認識させるためにハードウェア定義ファイルをインストールします。

 定義ファイルは以下のサイトよりダウンロードします。

 https://code.google.com/p/sanguino/downloads/list

 ファイル名:Sanguino-0101r1.zip


 解凍したファイルを C:\arduino-1.0.5-r2\hardware フォルダ以下にコピーします。

  Arduino IDE(arudino.exe)を起動して『ツール』→『マイコンボード』にSanuinoxxxが追加されていればOKです。


▲Sanguinoxxxが追加されている

・Repetier-Hostのインストール


 以下のRepetierサイトからsetupRepetierHost_xxx.exeをダウンロードします。

http://www.repetier.com/download/

 今回ダウンロードしたファイルはsetupRepetierHost_0_95.exe です。

▲RepetierHost
ダウンロードしたファイルを実行するとインストーラーが起動するので指示にしたがってインストールします。


・Repetier-Firmwareのソース入手


 つづいて、同じDownloadページからファームウェアのソースもダウンロードします。

http://www.repetier.com/download/

 今回ダウンロードしたファイルはRepetier-Firmware_0.83.zipです。

▲Repetier-Firmware

 ダウンロードしたファイルを適当なフォルダに解凍します。
 
 C:\Repetier-Firmware_0.83フォルダに解凍しました。


・ファームウェアのビルド


 開発環境が整いましたので、ファームウェアのビルドします。

 Arduino IDEを起動して 『ファイル』→『開く...』でReptier.pdeを選択します。
 


▲スケッチを開く


 『ツール』→『マイコンボード』で『Sanguino W/ATMega1284P16mhz』を選択します。
 ※購入するときはATmega644Pだと思ったのですが届いた基板にはATmega1284Pが使われていました。


▲マイコンタイプの選択


 『ファイル』→『保存』で一旦保存します。
 
 拡張子をpdeからinoに変換する旨のメッセージが表示されるのでそのままOKボタンを押します。

▲確認ウィンドウ
メニューしたのタブからConfigration.hタブを選択します。

▲Configuration.h

 MOTHERBOARDの値を62(Sanguinololu)に変更します。


// Gen3 PLUS for RepRap Motherboard V1.2 = 21
// MEGA/RAMPS up to 1.2       = 3
// RAMPS 1.3/RAMPS 1.4        = 33
// Azteeg X3                  = 34
// Gen6                       = 5 
// Gen6 deluxe                = 51
// Sanguinololu up to 1.1     = 6
// Sanguinololu 1.2 and above = 62
// Melzi board                = 63  // Define REPRAPPRO_HUXLEY if you have one for correct HEATER_1_PIN assignment!
// Gen7 1.1 till 1.3.x        = 7
// Gen7 1.4.1 and later       = 71
// Teensylu (at90usb)         = 8 // requires Teensyduino
// Printrboard (at90usb)      = 9 // requires Teensyduino
// Foltyn 3D Master           = 12
// MegaTronics 1.0            = 70
// ;egatronics 2.0            = 701
// RUMBA                      = 80  // Get it from reprapdiscount
// Rambo                      = 301
// Arduino Due                = 401 // This is only experimental

//#define MOTHERBOARD 33
#define MOTHERBOARD 62

#include "pins.h"



ファイルを保存したら、検証アイコンをクリックしてコンパイルします。

▲コンパイル


 問題なくコンパイルが終わると以下のようなメッセージになります。

 
▲ビルド完了


・ファームウェアの書き込み


 SanguinololuのCOMポートの番号を確認します。

 COMポートはコントロールパネル→ハードウェアとサウンド→デバイスマネージャで確認できます。SanguinololuのUSBを抜き差しするとポートが消えたり現れたりするのが確認できます。


▲COMポートの確認

 
 Arduino IDE の『ツール』→『シリアルポート』で先ほど確認したPOMポートを指定します。(当方の環境ではCOM6)

▲COMポート指定



 マイコンボードに書き込むアイコンをクリックしてファームウェアをSanguinololuに書き込みます。

▲書き込み


 問題なく書き込みが終わると以下のようなメッセージになります。

▲書き込み完了


・ファームウェアEEPROMの設定


 デスクトップ上のRepetier-Hostアイコンをクリックして起動します。

▲Repetie-Host起動


 起動したら、『設定』→『プリンタ設定』を選択します。

▲プリンタ設定


     Connector::シリアル接続

     COMポート:COM6

     ボーレート:115200

 COMポートはSanguinololuのポートを指定します。

 ボーレートはファームウェアで設定した数値を指定します。

 ちなみにボーレートの数値はConfiguration.hのBAUDRATEで定義されています。
 ※この数字を合わせないと通信できませんので注意


// ##########################################################################################
// ##                           Communication configuration                                ##
// ##########################################################################################

//// AD595 THERMOCOUPLE SUPPORT UNTESTED... USE WITH CAUTION!!!!

/** \brief Communication speed.

- 250000 : Fastes with errorrate of 0% with 16 or 32 MHz - update wiring_serial.c in your board files. See boards/readme.txt
- 115200 : Fast, but may produce communication errors on quite regular basis, Error rate -3,5%
- 76800 : Best setting for Arduino with 16 MHz, Error rate 0,2% page 198 AVR1284 Manual. Result: Faster communication then 115200
- 57600 : Should produce nearly no errors, on my gen 6 it's faster than 115200 because there are no errors slowing down the connection
- 38600

 Overridden if EEPROM activated.
*/
//#define BAUDRATE 76800
#define BAUDRATE 115200
//#define BAUDRATE 250000



 プリンタ接続アイコンをクリックしてSanguinololuに接続します。


▲プリンタ接続

 問題なく接続されると、緑のアイコンに変わります

▲プリンタ接続完了

 『設定』→『ファームウェアEEPROM設定』を選択します。


▲EEPROM設定

 以下の項目を設定します。

   X-axis steps per mm:88.8889

   X-axis max. feedrate[mm/s]:300

   X max length[mm]:340

   X-axis travel accelerration[mm/s^2]:3000


 上記項目をわかる範囲で説明すると

【X-axis steps per mm】 
 X軸のキャリッジが1mm移動するのに必要なモーターのステップ数を指定します。

 BeKosselの場合はタイミングプーリーにS3Mの24歯を使用しています。

 ピッチが3mmですので1回転すると24x3=72mmベルトを引っ張ります。
 キャリッジは滑車を利用して移動するので滑車の原理により移動距離は72mm/2=36mmになります。

 一方、ステッピングモータPKP244D15Aが一回転に必要なステップ数は200ステップ(1.8deg/STEP)になります。A4988ドライバでマイクロステップを1/16に設定してますので200x16=3200ステップとなります。

 これらから1mmあたりのステップ数は3200 / 36 = 88.88888.... となります。

【 X-axis max. feedrate[mm/s]】
 X軸のキャリッジの最高移動速度を指定します。 単位は[mm/s]。

 とりあえず300を指定してます。F値[mm/min]に換算するとF18000になります。


【X max length[mm]】
 X軸のキャリッジの移動ストロークを指定します。

 リニアガイドのストロークが約340mmちょっとあるので340を指定してます。

【X-axis travel accelerration[mm/s^2]】
  X軸のキャリッジの加速度を指定します。

 加速度をあげると移動時間が短くなります。ただあまりあげすぎると脱調します。

 とりあえず3000を指定してます。


・動作確認


 まずは原点復帰を行います。
 プリンタ操作タブのG-CODEテキスト欄に『G28』と入力して送信ボタンを押します。

▲原点復帰


 キャリッジが動きだし、リミットスイッチを検出すると止まります。

 その位置がX軸の原点(0mm)になります。

 動作検証用のNCコードを用意します。

 メモ帳などで以下のNCコードを適当な場所に保存します。

g90
g1 x340 f1000
g1 x0 f1000
g1 x340 f2000
g1 x0 f2000
g1 x340 f3000
g1 x0 f3000
g1 x340 f4000
g1 x0 f4000
g1 x340 f5000
g1 x0 f5000
g1 x340 f6000
g1 x0 f6000
g1 x340 f7000
g1 x0 f7000
g1 x340 f8000
g1 x0 f8000
g1 x340 f9000
g1 x0 f9000
g1 x340 f10000
g1 x0 f10000
g1 x340 f11000
g1 x0 f11000
g1 x340 f12000
g1 x0 f12000
g1 x340 f13000
g1 x0 f13000
g1 x340 f14000
g1 x0 f14000
g1 x340 f15000
g1 x0 f15000
g1 x340 f16000
g1 x0 f16000
g1 x340 f17000
g1 x0 f17000
g1 x340 f18000
g1 x0 f18000


NCコードの意味は0mm-340mm間を往復運動させるだけの単純なものです。

送り速度はF1000から1000づつ増加させF18000まで行います。


ファイル→ファイルを開くで、保存したNCコードファイルを選択します。

▲NCコード読み込み
ジョブ実行ボタンをクリックするとNCコードが実行されます。

▲ジョブ実行

 動作確認の様子アップしました。





 さすがにF18000近くになるとトルクがないのか指で押さえた程度で脱調してしまいますが、とりあえずは問題なさそうです。F10000前後が実用的な速度といったところでしょうか。

 ま、この辺は追々検証していきたいと思います。

 
 つづく。。。



【関連記事】

・デルタ型3Dプリンタ KOSSEL その6
http://modela-fan.blogspot.jp/2014/09/3d-kossel.html
・デルタ型3Dプリンタ KOSSEL その5
http://modela-fan.blogspot.jp/2014/05/3d-kossel.html
・デルタ型3Dプリンタ KOSSEL その4
・デルタ型3Dプリンタ KOSSEL その3
http://modela-fan.blogspot.jp/2014/03/3d-kossel.html
・デルタ型3Dプリンタ KOSSEL その2
http://modela-fan.blogspot.jp/2013/12/3d-kossel_29.html
・デルタ型3Dプリンタ KOSSEL
http://modela-fan.blogspot.jp/2013/12/3d-kossel.html

0 件のコメント:

コメントを投稿