前回、ハードウェア環境整いましたので実際に動作検証を行います。
■ソフトウエア環境を整える
・Arduino IDEのインストール
Sanguinololuを動かすためのファームウェア、Repetier-Firmwareをビルド・書き込みする環境を構築します。
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ページからファームウェアのソースもダウンロードします。
今回ダウンロードしたファイルはRepetier-Firmware_0.83.zipです。
▲Repetier-Firmware |
ダウンロードしたファイルを適当なフォルダに解凍します。
C:\Repetier-Firmware_0.83フォルダに解凍しました。
・ファームウェアのビルド
開発環境が整いましたので、ファームウェアのビルドします。
Arduino IDEを起動して 『ファイル』→『開く...』でReptier.pdeを選択します。
▲スケッチを開く |
『ツール』→『マイコンボード』で『Sanguino W/ATMega1284P16mhz』を選択します。
※購入するときはATmega644Pだと思ったのですが届いた基板にはATmega1284Pが使われていました。
▲マイコンタイプの選択 |
『ファイル』→『保存』で一旦保存します。
拡張子をpdeからinoに変換する旨のメッセージが表示されるのでそのままOKボタンを押します。
▲確認ウィンドウ |
▲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コード読み込み |
▲ジョブ実行 |
動作確認の様子アップしました。
さすがに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