原文鏈接(QQ空間):https://user.qzone.qq.com/582760538/blog/1454561861
3D打印機(Prusa I2)DIY經驗分享(Part II)
四、組裝打印機電路(感謝:深海的小魚兒
http://www.cnblogs.com/xmphoenix/)
1.軟件下載
1.1 固件上傳工具——Arduino 可以到官網下載。 http://arduino.org.cn/ 軟件是免費的
1.2 3D切片軟件——Slic3r 可以到官網下載 http://slic3r.org/ 軟件是免費的
1.3 3d打印機控制軟件(上位機)——Printrun 下載地址: http://koti.kapsi.fi/~kliment/printrun/ 選擇一個版本下載即可
1.4 固件——Marlin 下載地址: https://github.com/ErikZalm/Marlin
2.安裝驅動。。。安裝Arduino之后就可以自動安裝驅動了。。。
3. 配置固件
打開Marlin:
3.1 #define BAUDRATE 250000這是配置串口波特率的,只有上位機波特率和固件波特率相同來能通訊成功,一定需要注意。當然也不能隨便改,常見的波特率為:2400,9600,19200,38400,57600,115200,250000。在3d打印機中常用的是后3個。
3.2 #define MOTHERBOARD 33 這個參數是配置板子類型的,3d打印機主控板類型非常多,每個板子的io配置不盡相同,所以這個參數必須要跟你自己的板子類型相同,否則無法正常使用。我的板子是RAMPS1.4版本,對應的配置應該為33(單打印頭配置),和34(雙打印頭配置)。如果你使用的是其它板子,請參考旁邊的注釋並選擇合適的配置。
3.3 #define TEMP_SENSOR_0 1
7.打開Printrun,開始測試
並且,左側的圖形操作區變為可以操作的顏色。勾上溫度曲線旁邊的watch選項,可以實時獲取溫度情況,如圖。
7.1 查看溫度是否正確
如果上面的操作都正確,你可以看到現在兩個溫度傳感器的溫度,並且溫度應該為室溫,手捏在上面可以看到溫度的變化。如果你的溫度讀取到的為0度,請確保連接正確,依然有問題應檢查固件中的相關參數。
7.2 測試三個輸出端
接上12V電源,點擊下圖中標紅位置的按鈕,兩個設置溫度的按鈕,一個風扇按鈕(如果沒有風扇打開按鈕,可以在右側輸入M106 S255命令來實現)。如圖:
如果這時RAMPS1.4上亮起了三個紅色LED,那說明輸出端測試成功。如下圖:
7.3 測試電機及驅動
連接步進電機的4跟線到X軸電機輸出端,如果你的電機導線顏色是標准顏色,可以用紅-藍-綠-黑的順序連接,如果你的線顏色不標准或沒有顏色區分,你需要通過電機說明書找到4跟線屬於哪一相及哪一極,然后安裝相B負-相B正-相A正-相A負的順序連接(還有其它接線方式,請了解一下步進電機的原理)。(其實吧。。。如果懶就看圖,按照我接線的顏色接線就好了)
7.3.1 xyz三軸電機測試
點擊上位機左側的手動操作區域,進行對xyz三軸的測試。如果只有一個電機測試完應該軸后,再插到另一個軸上。
1.軟件下載
1.1 固件上傳工具——Arduino 可以到官網下載。 http://arduino.org.cn/ 軟件是免費的

1.2 3D切片軟件——Slic3r 可以到官網下載 http://slic3r.org/ 軟件是免費的

1.3 3d打印機控制軟件(上位機)——Printrun 下載地址: http://koti.kapsi.fi/~kliment/printrun/ 選擇一個版本下載即可

1.4 固件——Marlin 下載地址: https://github.com/ErikZalm/Marlin
2.安裝驅動。。。安裝Arduino之后就可以自動安裝驅動了。。。
3. 配置固件
打開Marlin:

3.1 #define BAUDRATE 250000這是配置串口波特率的,只有上位機波特率和固件波特率相同來能通訊成功,一定需要注意。當然也不能隨便改,常見的波特率為:2400,9600,19200,38400,57600,115200,250000。在3d打印機中常用的是后3個。

3.2 #define MOTHERBOARD 33 這個參數是配置板子類型的,3d打印機主控板類型非常多,每個板子的io配置不盡相同,所以這個參數必須要跟你自己的板子類型相同,否則無法正常使用。我的板子是RAMPS1.4版本,對應的配置應該為33(單打印頭配置),和34(雙打印頭配置)。如果你使用的是其它板子,請參考旁邊的注釋並選擇合適的配置。
3.3 #define TEMP_SENSOR_0 1
#define TEMP_SENSOR_BED 1這兩個參數分別配置溫度傳感器的類型。這是讀取溫度是否正常的重要參數,如果讀取的溫度不正常將不能工作甚至有很大的潛在危險(燒毀器件等)。配置為1說明兩個都是100K ntc熱敏電阻。如果你使用了其它溫度傳感器需要根據情況自行更改。
3.4 #define EXTRUDE_MINTEMP 170 這個參數是為了防止溫度未達到而進行擠出操作時帶來的潛在風險,如果你做其它3d打印機,比如有朋友做巧克力打印機,擠出溫度只需要45度,那么這個參數需要配置為較低數值,比如40度。
3.5 const bool X_ENDSTOPS_INVERTING = true;

3.4 #define EXTRUDE_MINTEMP 170 這個參數是為了防止溫度未達到而進行擠出操作時帶來的潛在風險,如果你做其它3d打印機,比如有朋友做巧克力打印機,擠出溫度只需要45度,那么這個參數需要配置為較低數值,比如40度。

3.5 const bool X_ENDSTOPS_INVERTING = true;
const bool Y_ENDSTOPS_INVERTING = true;
const bool Z_ENDSTOPS_INVERTING = true; 這里的三個參數是配置3各軸的限位開關類型的,配置為true,限位開關默認狀態輸出為1,觸發狀態輸出為0,也就是機械限位應該接常開段子。如果你接常閉段子,則將true改為false。
3.6 #define INVERT_X_DIR false

3.6 #define INVERT_X_DIR false
#define INVERT_Y_DIR true這兩個參數是比較容易錯的。根據自己機械的類型不通,兩個的配置不盡相同。但是原則就是要保證原點應該在打印平台的左下角(原點位置為[0,0]),或右上角(原點位置為[max,max])。只有這樣打印出來的模型才是正確的,否則會是某個軸的鏡像而造成模型方位不對。參考下圖坐標。
3.7 #define X_HOME_DIR -1


3.7 #define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1 如果原點位置為最小值參數為-1,如果原點位置為最大值配置為1.

3.8 #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 這幾個參數是配置打印尺寸的重要參數,參考上面的坐標系圖來填寫,這里需要說明的是坐標原點並不是打印中心,真正的打印中心一般在[(x.max-x.min)/2,(y.max-y.min)/2]的位置。中心位置的坐標需要在后面的切片工具中使用到,打印中心坐標應該與這里的參數配置匹配,否則很可能會打印到平台以外。
3.9 #define HOMING_FEEDRATE {50*60, 50*60, 4*60, 0} 配置回原點的速率,單位為毫米每分鍾,如果你使用的是xy軸同步帶傳動,z軸螺桿傳動,這個參數可以使用默認值。

3.9 #define HOMING_FEEDRATE {50*60, 50*60, 4*60, 0} 配置回原點的速率,單位為毫米每分鍾,如果你使用的是xy軸同步帶傳動,z軸螺桿傳動,這個參數可以使用默認值。

3.10 #define DEFAULT_AXIS_STEPS_PER_UNIT {85.3333, 85.3333,2560,158.8308} 這個參數是打印機打印尺寸是否正確的最重要參數,參數含義為運行1mm各軸所需要的脈沖數,分別對應x,y,z,e四軸。多數情況下這個數字都需要自己計算才可以。
【補充】如何計算運行1mm各軸所需脈沖數?
如果是皮帶傳動:
如果是絲桿傳動:
擠出機:
步進電機步數:1.8度步距角的電機為 200, 0.9度步距角的電機為 400
步進電機驅動細分配置: RAMPS默認為 1/16 etc
同步帶齒間距 :對於T5為5.00mm , 對於XL為5.08mm ,對於GT2為2.0mm etc
同步輪齒數:問賣家。。。
絲桿導程:對於M8標准絲桿為1.25mm
擠出機齒輪比,從動輪比主動輪 :Wade's Extruder: 39/11, Accessible Wade's by Greg Frost: 43/10, Adrian's Extruder: 59/11, etc
這還有大神做的計算器: http://www.makerlab.me/calc/index.html
4.上傳固件
4.1 上傳之前,windows用戶需要提前安裝驅動。 配置板子類型:Tools > Board > Arduino Mega 2560
4.2 配置串口: Tools > Serial Port > 你的mega板子對應串口號一般是最后一個,如果是windows系統,串口號一般是com3、com4、com8之類的形式
4.3 點擊對號按鈕來檢查是否有錯誤
4.4 再點擊向右的箭頭按鈕來上傳固件
4.5 上傳過程中,2560板子上的TX RX 和L對應的三個led燈都會閃。如果不閃了,說明上傳完成,如圖
4.6 上傳完成提示
5. RAMPS1.4板子的功能分布
6. 接線,准備測試
把電機驅動按圖插上(如果插反了電路板就有可能燒壞),接上熱敏電阻,限位開關,風扇。
用一個電機輪流測試

【補充】如何計算運行1mm各軸所需脈沖數?
如果是皮帶傳動:

如果是絲桿傳動:

擠出機:

步進電機步數:1.8度步距角的電機為 200, 0.9度步距角的電機為 400
步進電機驅動細分配置: RAMPS默認為 1/16 etc
同步帶齒間距 :對於T5為5.00mm , 對於XL為5.08mm ,對於GT2為2.0mm etc
同步輪齒數:問賣家。。。
絲桿導程:對於M8標准絲桿為1.25mm
擠出機齒輪比,從動輪比主動輪 :Wade's Extruder: 39/11, Accessible Wade's by Greg Frost: 43/10, Adrian's Extruder: 59/11, etc
這還有大神做的計算器: http://www.makerlab.me/calc/index.html
4.上傳固件
4.1 上傳之前,windows用戶需要提前安裝驅動。 配置板子類型:Tools > Board > Arduino Mega 2560
4.2 配置串口: Tools > Serial Port > 你的mega板子對應串口號一般是最后一個,如果是windows系統,串口號一般是com3、com4、com8之類的形式
4.3 點擊對號按鈕來檢查是否有錯誤
4.4 再點擊向右的箭頭按鈕來上傳固件
4.5 上傳過程中,2560板子上的TX RX 和L對應的三個led燈都會閃。如果不閃了,說明上傳完成,如圖

4.6 上傳完成提示

5. RAMPS1.4板子的功能分布
請參考示意圖,為了防止接錯,請再三確認以下幾個方面后再通電,
* 電源正負極是否正確?
* RAMPS電源只接12V,沒有5V接入。
* 4988驅動板確保沒有插錯位和顛倒(如果差錯,通電就會燒板子)。
* 機械式限位開關只需要將開關上的com端和NO端接到板子的S(信號線)和-(負)兩個位置即可。千萬不要嘗試將機械開關的三個段子都接在板子上。很可能會造成短路。

6. 接線,准備測試
把電機驅動按圖插上(如果插反了電路板就有可能燒壞),接上熱敏電阻,限位開關,風扇。
用一個電機輪流測試

7.打開Printrun,開始測試

並且,左側的圖形操作區變為可以操作的顏色。勾上溫度曲線旁邊的watch選項,可以實時獲取溫度情況,如圖。
7.1 查看溫度是否正確
如果上面的操作都正確,你可以看到現在兩個溫度傳感器的溫度,並且溫度應該為室溫,手捏在上面可以看到溫度的變化。如果你的溫度讀取到的為0度,請確保連接正確,依然有問題應檢查固件中的相關參數。
7.2 測試三個輸出端
接上12V電源,點擊下圖中標紅位置的按鈕,兩個設置溫度的按鈕,一個風扇按鈕(如果沒有風扇打開按鈕,可以在右側輸入M106 S255命令來實現)。如圖:

如果這時RAMPS1.4上亮起了三個紅色LED,那說明輸出端測試成功。如下圖:


7.3 測試電機及驅動
連接步進電機的4跟線到X軸電機輸出端,如果你的電機導線顏色是標准顏色,可以用紅-藍-綠-黑的順序連接,如果你的線顏色不標准或沒有顏色區分,你需要通過電機說明書找到4跟線屬於哪一相及哪一極,然后安裝相B負-相B正-相A正-相A負的順序連接(還有其它接線方式,請了解一下步進電機的原理)。(其實吧。。。如果懶就看圖,按照我接線的顏色接線就好了)
7.3.1 xyz三軸電機測試
點擊上位機左側的手動操作區域,進行對xyz三軸的測試。如果只有一個電機測試完應該軸后,再插到另一個軸上。

測試流程:
先電機某個軸的加+方向操作,電機應該往正方向運轉; 再電機對應軸的負-方向操作,電機應該反轉; 重復幾次上面的操作。
需要注意的是,固件為了防止打印機撞車,小於最小位置和大於最大位置后電機就會停止運動。也就是說並不會一直加或減下去,電機都會轉。
7.3.2 擠出機電機測試
由於固件不允許溫度為達到最小擠出溫度(固件中的參數)時執行擠出動作。所以如果你連接了真正的擠出機,並且有物料在里面,請不要在溫度未達到230(abs)和185(pla)時進行擠出機測試。
7.4 限位開關測試
至此,電路的測試結束。
8.Slic3r配置需要注意的地方
先打開Slic3r,我用的是簡易設置。。。
8.1 先看看Slic3r的界面
8.2看看菜單欄
8.3打印設置窗口
層高的設置,一般比打印擠出頭的尺寸要小。
8.4 filament setting窗口
注意設置線材的直徑(如果不知道問賣家,一般是3.00mm和1.75mm兩種尺寸)
還有擠出機溫度設置,熱床溫度設置,要注意一下。
pla一般是在185℃,熱床一般是在60℃。
8.5 打印機設置窗口
工作台尺寸要如實填寫。。。不然有可能會打印到工作台外面。。。
打印中心就是工作台的中心,除以2計算一下就可以了
設置完之后建議導出一份備份。
到這,打印機就已經組裝完畢了。
剩下的就是不斷的調試與整理。
P.S. 把STL格式的文件添加到Slic3r中生成G代碼,然后再在Printrun中載入G代碼,單擊print就可以開始打印了。
7.3.2 擠出機電機測試
由於固件不允許溫度為達到最小擠出溫度(固件中的參數)時執行擠出動作。所以如果你連接了真正的擠出機,並且有物料在里面,請不要在溫度未達到230(abs)和185(pla)時進行擠出機測試。

測試方法:
1、將溫度加熱到物料對應的擠出溫度,PLA:185度,ABS:230度,再進行測試,電機Extrude為擠出動作,Reverse為后退動作。如果所需要的方向跟實際方向相反,直接把所有的4跟電機導線反向即可。
2、如果你沒有接擠出機,或擠出機中沒有物料,可以不需要進行加熱來測試。需要在右側命令輸入框中輸入M302來允許冷擠出操作。這樣就可以跟上面一樣進行Extrude和Reverse測試了。
7.4 限位開關測試
RAMPS1.4最多共支持6個限位開關,分別是X-min,X-max,Y-min,Y-max,Z-min,Z-max。其中至少需要用到3個來確定打印機的原點,可以是一個軸的min或max位置的限位(由固件中做配置)。限位開關根據不同的形式接線方式也不同,機械式的限位開關只需要連接兩個段子即可(負和信號),光電、霍爾式開關一般需要連接三個段子(正、負和信號)。
我這里測試用3個軸的min位置來做原點的配置方式。測試限位開關應該接在各軸的min位置上。然后電機測試軸的home按鍵,對應軸的電機應該開始轉動,然后按下對應軸的限位開關兩下(為了提高精度,碰到一次后返回幾毫米再碰到才是真正的原點),此時電機應該停止轉動。以上操作重復在其它軸上進行測試。
至此,電路的測試結束。
8.Slic3r配置需要注意的地方
先打開Slic3r,我用的是簡易設置。。。
8.1 先看看Slic3r的界面

8.2看看菜單欄


8.3打印設置窗口
層高的設置,一般比打印擠出頭的尺寸要小。


8.4 filament setting窗口
注意設置線材的直徑(如果不知道問賣家,一般是3.00mm和1.75mm兩種尺寸)
還有擠出機溫度設置,熱床溫度設置,要注意一下。
pla一般是在185℃,熱床一般是在60℃。

8.5 打印機設置窗口
工作台尺寸要如實填寫。。。不然有可能會打印到工作台外面。。。
打印中心就是工作台的中心,除以2計算一下就可以了

設置完之后建議導出一份備份。
到這,打印機就已經組裝完畢了。
剩下的就是不斷的調試與整理。
P.S. 把STL格式的文件添加到Slic3r中生成G代碼,然后再在Printrun中載入G代碼,單擊print就可以開始打印了。