Sanguino 控制板 安裝 Marlin 軟件
Note: Sanguinololu 1.3a 在USB 晶片跟1284P的通訊設計上,有些問題,倒致非常多網(wǎng)友買板子買來,卻無法使用。建議請避免再購買Sanguinololu。
Sanguinololu簡介
(譯自http://reprap.org/wiki/Sanguinololu 翻得不好,請多多指教。)
Sanguinololu 是一個相對便宜的 RepRap 綜合控制電路板,使用ATMEGA-1284做主控制器,使用四組 Pololu 模組做步進馬達控制控制,分別控制XYZ三軸和擠出機。提供了I2C, SPI, UART等介面供軟體開發(fā)者延伸控制功能。ADC 腳位提供量測功能(測溫度用)。額外的14個GPIO可以增加周邊電路的控制功能,例如SD卡、LCD液晶銀幕等等。
Marlin 韌體特色:
(譯自 https://github.com/ErikZalm/Marlin 翻得不好,請多多指教。)
Look-ahead (加減速預測):
透過預先分析下一個位置移動指令,Marlin知道下一個指令需要的馬達速度。靠著這樣的資訊,在結束當下指令的馬達轉(zhuǎn)動之前,不必減速到完全停止,而是直接改變馬達速度去執(zhí)行下一個指令。這樣可以大幅加快列印的速度。
Arc Support (支援弧線):
Marlin可以自己決定最佳的弧線分段解析度,得到最平滑的弧線。
Temperature Oversampling (溫度多重採樣):
為了減少雜訊對溫度測量的干擾,Marlin採樣16次后取平均值來當作加熱時溫度控制的參考依據(jù)。
AutoTemp(自動溫度控制):
當環(huán)境溫度改變,或是列印速度改變時,擠出頭加熱需要輸出的功率,都需要跟著改變。Marlin利用PID自動控制技術,讓擠出頭能夠穩(wěn)定得維持工作溫度。
EEPROM(參數(shù)記憶功能):
系統(tǒng)運作時需要一些參數(shù)來調(diào)整工作表現(xiàn)。例如控制溫度的PID參數(shù)、步進馬達的"距離 / 步數(shù) 對應值",仍然需要依照整個印表機的實際狀況進行調(diào)整。這些調(diào)整后校準的結果,可以透過EEPROM的記憶功能,保留在控制晶片中。下次開機會自動載入,不需重新校正。
LCD Menu (液晶顯示器選單):
透過外加的液晶顯示器、按鍵模組,Marlin可以提供即時的離機操作?梢钥刂频墓δ馨ǎ 改變工作溫度、改變馬達加速度、改變工作速度、改變擠出頭擠出率、選擇SD卡中的檔案進行列印、預熱還有關閉馬達。相關硬體可以參考 http://www.thingiverse.com/thing:12663
SD card folders:
可以讀取SD卡內(nèi)的資料夾,檔案不必放在卡片內(nèi)最上層目錄。
SD card auto print:
當SD卡最上層資料夾中,有檔名為 auto[0-9].g 的檔案時,機器會在開機后自動開始列印該檔案。
Endstop trigger reporting:
在列印過程中,當邊界偵測意外被觸發(fā),會留下記錄。這有助於釐清列印失敗的原因。
在Sanguinololu上安裝Marlinl
設定馬達控制的"微步進" (Microstepping)
Microstepping Jumper Settings
微步進的設定,是透過Sanguinololu板子上的跳線來操作。跳線的位置在馬達驅(qū)動板的下方,要把馬達驅(qū)動板拆下來才能看到跳線。一般會選用 1/8 或是 1/16 步進。要設定成八分之一步進的話,MS1 跟 MS2 要接上短路端子, MS3 維持開路。要設定成十六分之一步進的話,MS1 、 MS2 跟 MS3 都要接上短路端子。四個馬達控制板都要做個自的設定。
下載 Arduino 1.0.1
(在這個版本上測試沒有出現(xiàn)問題)
Download the Arduino Software
下載后解壓縮到C:\arduino\arduino-1.0.1
下載 Marlin
https://github.com/ErikZalm/Marlin (找 "Download Zip"按鈕進行下載)
載點
解壓縮到C:\arduino\Marlin-Marlin_v1
新增sanguino硬體資訊到Arduino中
將資料夾C:\arduino\Marlin-Marlin_v1\ArduinoAddons\Arduino_1.x.x\sanguino
整個復製到C:\arduino\arduino-1.0.1\hardware
啟動 Arduino
執(zhí)行C:\arduino\arduino-1.0.1\arduino.exe
在 Arduino 中指定硬體為 Sanguino
將Sanguino與電腦用USB連接
todo: 貼上照片
安裝Sanguino驅(qū)動程式
驅(qū)動程式請指定在C:\arduino\ 中進行自動搜尋
todo: 貼上照片
設定COM port
選擇正確的COM port
開啟Marlin程式碼
File -> Open
開啟 C\arduino\Marlin-Marlin_v1\Marlin\Marlin.pde
修改設定檔 Configuration.h
#define MOTHERBOARD
主控板種類
修改為 62 ,設定成"使用Sanguinololu 1.2 and above"
#define TEMP_SENSOR_0
擠出頭溫度感應器設定
如果使用100K的熱敏電阻,請修改為1。
如果還沒安裝溫度感應器,可以先改為0。
#define TEMP_SENSOR_1
熱床溫度感應器設定
如果使用100K的熱敏電阻,請修改為1。
如果還沒安裝溫度感應器,可以先改為0。
#define PID_MAX
加熱頭PID控制校正電流百分比,255對應到100%。
建議設定成100或更小,在校正擠出頭PID控制參數(shù)時,不要讓擠出頭加熱速度過快。
#define DEFAULT_Kp
#define DEFAULT_Ki
#define DEFAULT_Kd
加熱頭PID控制參數(shù)。
要修改成多少,請參考 "擠出頭溫度控制校正"一文。
校正前,請不要啟動電熱頭加熱功能。
#define MAX_BED_POWER
熱床PID控制校正電流百分比,255對應到100%。
#define DEFAULT_bedKp 10.00
#define DEFAULT_bedKi .023
#define DEFAULT_bedKd 305.4
熱床PID控制參數(shù)。
#define INVERT_X_DIR true // 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 true // for Mendel set to false, for Orca set to true
#define INVERT_E0_DIR false // for direct drive extruder v9 set to true, for geared extruder set to false
如果馬達轉(zhuǎn)動方向顛倒,可以靠這些參數(shù)做修正。
// ENDSTOP SETTINGS:
// Sets direction of endstops when homing2 1=MAX, -1=MIN
#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1
邊界偵測開關的位置,一般都安裝在位置原點的那一側(cè),故設定成-1即可。
// Travel limits after homing
#define X_MAX_POS 205
#define X_MIN_POS 0
#define Y_MAX_POS 205
#define Y_MIN_POS 0
#define Z_MAX_POS 200
#define Z_MIN_POS 0
機器工作區(qū)域的設定,單位是 mm。
請依照機器結構做設定。
#define HOMING_FEEDRATE {50*60, 50*60, 4*60, 0} // set the homing speeds (mm/min)
尋找原點時機構運行的速度。如果馬達有失步的問題,可以考慮減小這邊的速度。
Z軸兩顆馬達串聯(lián),如果運轉(zhuǎn)不順,馬達亂轉(zhuǎn)的話,可把Z數(shù)值從"4*60"改小成"2*60"再試看看。
// default steps per unit for Ultimaker
#define DEFAULT_AXIS_STEPS_PER_UNIT {78.7402,78.7402,200.0*8/3,760*1.1}
擠出頭移動1mm,主控板需要發(fā)出幾個步進訊號。
數(shù)值如何決定,請參考"計算移動1mm,步進馬達需要走幾步?"一文。
#define DEFAULT_MAX_FEEDRATE {500, 500, 5, 25} // (mm/sec)
擠出頭最高移動速度。如果馬達有失步的問題,可以考慮減小這邊的速度。
#define DEFAULT_MAX_ACCELERATION {9000,9000,100,10000}
擠出頭移動時最大的加速度
機器運作時如果震動得狠嚴重,可能是擠出頭加速減速過猛造成?梢詼p小這邊的數(shù)值來改善。
// The speed change that does not require acceleration (i.e. the software might assume it can be done instantaneously)
#define DEFAULT_XYJERK 20.0 // (mm/sec)
#define DEFAULT_ZJERK 0.4 // (mm/sec)
#define DEFAULT_EJERK 5.0 // (mm/sec)
速度改變在這個值之內(nèi),控制板會不透過加速、減速的過程,直接把速度改到新指定的工作速度。如果起步就會卡住,或是列印過程中有失步,可以考慮減小這幾個設定的值。
上載 Marlin 到 Sanguino
修改完 Configuration.h 后,請存檔。然后直行 File->Upload,將 Marlin 上載到 Sanguino。
上載完成的話,在Arduino的狀態(tài)列會出先 Done Upload 字樣。
參考資訊
* https://github.com/ErikZalm/Marlin
* http://reprap.org/wiki/Sanguinololu
* marlin 簡介.pdf (請先加入 FabLab Taipei 的 FB社團)
* Ginge1s Marlin Builder http://marlinbuilder.robotfuzz.com/ |
|