某些同學可能會問: https://github.com/Ultimaker/Ultimaker2Marlin 和 https://github.com/MarlinFirmware/Marlin/ 我應該用哪個呢?回答一下:後面那個。前者是給 UM2 官方的主機闆的。從GitHub下載下傳最新版的固件。截至發文時最新的版本是 2.0.7.2 。相比 1.x 版本,2.0 提高了安全性,當檢測不到溫度傳感器時(毀壞或者掉線)自動停止加熱,避免以前一直加熱燒毀機器的情況。
以下是開機運作的基本配置。硬體是前面講到的 mega2560 + Ramps1.4。因為筆者也是正當學習中,後續還會不斷更新。
用 Arduino IDE 打開 Marlin/src/Marlin.ino 修改 Configuration.h 以下配置:
1)#define BAUDRATE 250000
這行不用改,記住後面用這個波特率跟主機闆通信
2)#define MOTHERBOARD BOARD_RAMPS_14_EFB
單噴頭用 BOARD_RAMPS_14_EFB,雙噴頭用 BOARD_RAMPS_14_EEB,更多類型看 boards.h 裡的定義。
3)#define EXTRUDERS 1
擠出機數量。單個擠出機不用修改
4)#define TEMP_SENSOR_0 1 // 噴頭溫度傳感器,1 代表 100k,根據傳感器類型修改
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_BED 1 // 熱床溫度傳感器,同上。設成 0 表示不使用熱床
5)#define HEATER_0_MAXTEMP 275
#define BED_MAXTEMP 100
分别表示噴頭和熱床的最高溫度,超過這個溫度加熱将停止
6)#define PIDTEMP
當使用獨立 Mos 管給熱床供電時開啟這個選項。後面還有三個選項也要修改,基于篇幅這裡不展開,請看後面專門的篇章。
#define BANG_MAX 255 // Limits current to nozzle while in bang-bang mode; 255=full current
#define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
#define PID_K1 0.95 // Smoothing factor within any PID loop
7)#define X_DRIVER_TYPE TMC2225
#define Y_DRIVER_TYPE TMC2225
#define Z_DRIVER_TYPE TMC2225
#define E0_DRIVER_TYPE TMC2225
定義使用的電機驅動闆。預設是 a4988,改成實際用到的型号。像筆者一樣使用 TMC 驅動時,需 arduino IDE 安裝 TMCStepper 庫(工具 - 庫管理 搜尋安裝)
8)#define DEFAULT_AXIS_STEPS_PER_UNIT { 200, 200, 800, 764.331 }
分别代表 xyz 軸和擠出機的速度,含義是每走 1mm 需要多少個脈沖。計算公式
360/步距角*細分數/(齒間距*齒數) // 同步帶傳動
360/步距角*細分數/導程 // 絲杆傳動
42 電機一般步距角為 1.8 度,細分數跟用到的驅動和跳線有關。2GT 同步帶齒間距是 2mm,齒數是電機上的同步輪的齒數,跟光軸上用什麼齒輪沒有關系。
最後一個計算方式相同。但因為缺少泰坦擠出機相關資料,是以實際上用的是網友提供的資料(32 細分),根據列印的效果再調整。
9)#define INVERT_X_DIR true
#define INVERT_Y_DIR false
#define INVERT_Z_DIR false
反轉 xyz 軸電機的方向。根據實際調整
10)#define INVERT_E0_DIR true
反轉擠出機的 方向
11)#define X_BED_SIZE 300
#define Y_BED_SIZE 200
#define Z_MAX_POS 200
平台的大小,定義xyz 軸的活動範圍
12)#define LCD_LANGUAGE en
顯示的語言,簡體中文用 zh_CN
13)#define SDSUPPORT
使用帶 SD 讀卡器的 LCD12864
14)#define SPEAKER
開啟蜂鳴器
15)#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
使用 LCD12864 控制闆 https://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller。還有另外一個配置 //#define REPRAP_DISCOUNT_SMART_CONTROLLER 屬于縮小版的 LCD ,詳細看這裡 https://reprap.org/wiki/RepRapDiscount_Smart_Controller 。二者選一
Arduino IDE 燒寫固件
USB 連接配接上mega2560, IDE 上選擇開發闆、處理器和端口。會發現端口有兩個,選 wu*開頭的那個,不然會報 port busy 的錯誤。
然後點 項目 - 上傳 燒寫到主機闆上。
pronterface 測試
接上電源,如果你足夠幸運一次點亮螢幕。不亮也沒關系,還是可以用 pronterface 來測試的,或許隻是螢幕問題呢。
依次測試 xyz 軸運動,熱床,噴頭加熱,擠出機。當噴頭溫度低于安全擠出溫度時,控制擠出機并不會有動作,并非是擠出機故障。
關注我加入群讨論: