找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 4662|回復(fù): 4
收起左側(cè)

3d打印固件配置 3D打印機(jī)制作心得下載

[復(fù)制鏈接]
ID:168775 發(fā)表于 2017-3-7 11:54 | 顯示全部樓層 |閱讀模式
完整的文檔下載:
3D打印機(jī)制作心得.docx (23.7 KB, 下載次數(shù): 35)

在之前我買(mǎi)了一臺(tái)3D打印機(jī),但是為了制作出數(shù)量多的3D作品出售,我決定制作出一臺(tái)3D打印機(jī)。你可能問(wèn)為什么不買(mǎi)一臺(tái)呢?因?yàn)橘I(mǎi)一臺(tái)的價(jià)格最便宜的在700元左右,自己制作在600元左右,還有就是可以更清楚的了解3D打印機(jī)的原理。便開(kāi)始了我的3D打印機(jī)制作之旅。最開(kāi)始是買(mǎi)原材料,這時(shí)候就犯難了,不知道需要買(mǎi)那些材料,型號(hào)是好多。經(jīng)過(guò)訊問(wèn)我的好友,在他的幫助下才得知,就連一些拿不穩(wěn)的零件也是他幫忙給選取的。因?yàn)樗苍诟?/font>3D打印技術(shù),對(duì)于機(jī)械這方面我了解不是很多。(之后將型號(hào)和截圖制作的完整資料免費(fèi)分享出來(lái))選取型號(hào)前后就花了一周的時(shí)間,然后就開(kāi)始搞軟件部分。(軟件截圖和文件)跟我好友借了塊arduino板子,型號(hào)為Mega2506  arduino主控板、RAMPS1.4驅(qū)動(dòng)板+5個(gè)A4988驅(qū)動(dòng)模塊。頭天晚上我去實(shí)驗(yàn)室的時(shí)候遇到3D打印班的老師,就向他請(qǐng)教如何將固件給刷進(jìn)去。首先在國(guó)外官網(wǎng)下載馬林固件,然后用arduino IDE打開(kāi)馬林文件后綴名為.ino的一個(gè)文件,出現(xiàn)很多文件。找到Configurstion.h文件然后向下翻(這里詳細(xì)的可以在百度搜教程:馬林固件配置)找到第一項(xiàng)配置
1)波特率配置
    #define BAUDRATE 250000
  //#define BAUDRATE 115200
  該行是用來(lái)決定主控板使用何種波特率來(lái)與電腦上的控制軟件進(jìn)行通信的。通常是用250K和115.2K兩種波特率選擇,要選擇何種波特率,只要將該行前面的”//” 刪除,不選擇何種波特率只需要在該行前添加“//” ,選擇哪種波特率只要更改250000這也數(shù)就行。
(2)主控板 —型號(hào)配置
根據(jù)你的主板型號(hào)的不同配置也不同
#ifndef MOTHERBOARD
#defineMOTHERBOARD 33     //33這個(gè)值標(biāo)示型號(hào)為Mega2506  arduino主板、RAMPS1.4驅(qū)動(dòng)板
#endif
你可以在注釋里可以看到Marlin固件支持的主控板清單,通過(guò)修改#defineMOTHERBOARD 這行的數(shù)字,選擇對(duì)應(yīng)的主板編號(hào)即可。上面這行是選擇RAMPS 1.3 (RAMPS 1.4)33標(biāo)示單噴頭打印機(jī),34標(biāo)示雙噴頭打印機(jī)的意思,你可以按自己實(shí)際情況修改該項(xiàng)。Marlin 固件會(huì)根據(jù)主板信息定義主控板引腳布局。具體各種主控板的引腳布局可以在pin.h中看到。
(3)溫控設(shè)置
現(xiàn)在我來(lái)看看溫控方面的設(shè)置,溫控設(shè)置有點(diǎn)復(fù)雜,但是我們不需要考慮那些復(fù)雜的PID計(jì)算設(shè)置問(wèn)題。基本上我們需要做的是選擇3D打印機(jī)機(jī)溫度傳感器的類(lèi)型,如果不是你自己安裝的溫度傳感器,你可以在RepRap wiki中了解溫度傳感器的類(lèi)型。
  熱敏電阻
#define TEMP_SENSOR_0 1     //標(biāo)示噴頭熱敏電阻100k
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_BED 1  //熱床熱敏電阻100k
如果你仔細(xì)閱讀Marlin固件的配置文件,你會(huì)發(fā)現(xiàn)支持的固件所支持的溫控傳感器的類(lèi)型對(duì)應(yīng)的編號(hào)。TEMP_SENSOR_0是噴嘴的溫控傳感器類(lèi)型、TEMP_SENSOR_BED是加熱床的溫控傳感器類(lèi)型,一般來(lái)說(shuō)都是100K 熱敏電阻。
如果你是用RAMPS 1.3 主控板和pin.h中使用默認(rèn)布局的話(huà),你可以在主控板的T0和T1 接口分別對(duì)應(yīng)TEMP_SENSOR_0 和TEMP_SENSOR_BED。選擇0即關(guān)閉該接口。請(qǐng)選擇合適你打印機(jī)的溫控傳感器吧。當(dāng)然我用的是RAMPS 1.4的板子。
(4)溫度限制(最大值)
#define HEATER_0_MAXTEMP 275      //最高溫度
#define HEATER_1_MAXTEMP 275
#define HEATER_2_MAXTEMP 275
#define BED_MAXTEMP 120          //最低溫度溫度,打印巧克力的話(huà)設(shè)置成45
有些噴嘴和加熱床的最大工作溫度會(huì)低于Marlin固件的默認(rèn)最大溫度,為了減少對(duì)噴嘴和加熱床的損害,可以設(shè)置最高溫度限制。
(5)固件的機(jī)械設(shè)定/***********/
機(jī)械設(shè)定部分包括限位開(kāi)關(guān)、步進(jìn)電機(jī)、最大制造范圍和運(yùn)動(dòng)位移值。
  限位開(kāi)關(guān)和上拉電阻  這一節(jié)將教你配置3D 打印機(jī)每個(gè)軸中的限位開(kāi)關(guān)。用G28 命令會(huì)讓3D 打印機(jī)的3個(gè)軸回零方向運(yùn)動(dòng)直到碰到限位開(kāi)關(guān)。限位開(kāi)關(guān)如果沒(méi)有5V 電源作為產(chǎn)生信號(hào)源的話(huà),配置ENDSTOPPULLUPS 會(huì)確保讓固件產(chǎn)生一個(gè)信號(hào)、當(dāng)限位開(kāi)關(guān)接通時(shí)才會(huì)產(chǎn)生明確的數(shù)字信號(hào)0。
    如需了解更多請(qǐng)參考RepRap wiki 的(機(jī)械限位開(kāi)關(guān))Mechanical Endstop,OptoEndstop 2.1(光學(xué)限位開(kāi)關(guān)) and Gen7 Endstop 1.3.1。(最好就是按機(jī)械開(kāi)關(guān)的原理圖來(lái)制作限位開(kāi)關(guān),這樣的效果最好。)
  限位開(kāi)關(guān)上拉電阻總體控制–194行
  // corse Endstop Settings
  #define ENDSTOPPULLUPS //Comment this out (using // atthe start of the line) to disable the endstoppullup resistors
  Marlin固件默認(rèn)是需要限位開(kāi)關(guān)的上拉電阻的。從207行開(kāi)始固件為每個(gè)限位開(kāi)關(guān)分配獨(dú)立一個(gè)上拉電阻,如果194行被取消則從197行開(kāi)始的上拉電阻控制都會(huì)一并取消。這樣方便你自己的3d 打印機(jī)采用不同類(lèi)型的限位開(kāi)關(guān)。一般來(lái)說(shuō)X軸和Y 軸采用機(jī)械限位開(kāi)關(guān),可以不需要制作3線(xiàn)的數(shù)據(jù)口,而Z軸的光學(xué)開(kāi)關(guān)默認(rèn)為3線(xiàn)的數(shù)據(jù)口。這是光學(xué)開(kāi)關(guān)就不需要使用到ENDSTOPPULLUPS注釋。
  限位開(kāi)關(guān)上拉電阻細(xì)分控制 –  196行
#ifndef ENDSTOPPULLUPS
// fine Enstop settings: Individual Pullups.will be ignord if ENDSTOPPULLUPS isdefined
#define ENDSTOPPULLUP_XMAX
#define ENDSTOPPULLUP_YMAX
#define ENDSTOPPULLUP_ZMAX
#define ENDSTOPPULLUP_XMIN
#define ENDSTOPPULLUP_YMIN
//#define ENDSTOPPULLUP_ZMIN
#endif
如果Configuration.h194行被注釋掉的話(huà),則196行的語(yǔ)句將會(huì)被執(zhí)行。你可以獨(dú)立控制每個(gè)限位開(kāi)關(guān)的上拉電阻,當(dāng)然這個(gè)是要根據(jù)你3D 打印機(jī)的限位開(kāi)關(guān)類(lèi)型來(lái)確定.
限位開(kāi)關(guān)方向控制 -  216 行
// The pullups are needed if you directlyconnect a mechanical endswitch betweenthe signal and ground pins.
// set to true to invert the logic of theendstops.
const bool X_ENDSTOPS_INVERTING = false;
const bool Y_ENDSTOPS_INVERTING = false;
const bool Z_ENDSTOPS_INVERTING = false;
  機(jī)械限位開(kāi)關(guān)通常會(huì)把連線(xiàn)連在常通(NC) 端,這就會(huì)有個(gè)一個(gè)數(shù)字信號(hào)1輸入到主控中。如果你的機(jī)械限位開(kāi)關(guān)的連線(xiàn)是連在常關(guān)(NO)端,這就需要在ENDSTOPS_INVERTING采用 ture 從而是數(shù)字信號(hào)0反向變?yōu)?.對(duì)于光學(xué)開(kāi)關(guān)來(lái)說(shuō),則一般不用進(jìn)行調(diào)整。
     你應(yīng)該在電腦控制軟件中實(shí)際試驗(yàn)一下限位開(kāi)關(guān)的方向是否與你的預(yù)期相符,如果軸運(yùn)動(dòng)時(shí)觸動(dòng)限位開(kāi)關(guān)就停止則說(shuō)明,該項(xiàng)設(shè)置正常。注意�。�!在做此測(cè)試時(shí),應(yīng)該給各個(gè)軸留出足夠的運(yùn)動(dòng)反應(yīng)空間。以免損壞機(jī)器。
關(guān)閉最大限位開(kāi)關(guān)–  219 行
//#define DISABLE_MAX_ENDSTOPS
上述這行代碼在marlin 固件Configuration.h(219行),通常情況下是被注釋掉的。如果你的打印機(jī)的原點(diǎn)開(kāi)關(guān)安裝在X、Y、Z軸最大位置的話(huà),這個(gè)就需要去掉注釋符號(hào)。
通常情況下Z軸的限位開(kāi)關(guān)是放在Z軸最大限位,這樣可以使hot end 可以免受擠壓。為了達(dá)到這個(gè)目的,這樣就需要去掉注釋。但是這行對(duì)于那些沒(méi)有最大限位開(kāi)關(guān)的主控板是沒(méi)有用的哦!
關(guān)閉軸 – 228 行
// Disables axis when it’s not being used.
#define DISABLE_X false
#define DISABLE_Y false
#define DISABLE_Z true
#define DISABLE_E false // For all extruders
通常情況下上面的代碼是不改動(dòng)的,所有軸都是選擇 false 的。然而,如果你的3D打印機(jī)z軸有手動(dòng)調(diào)整的部件,可以在#defineDISABLE_Z 行選 true ,這樣在打印機(jī)打印時(shí),可以手動(dòng)調(diào)整z軸。
步進(jìn)電機(jī)
我們已經(jīng)來(lái)到了設(shè)置步進(jìn)電機(jī)部分,這部分主要設(shè)置步進(jìn)電機(jī)運(yùn)行方向、限位開(kāi)關(guān)邏輯、行程、步進(jìn)長(zhǎng)度單位。前面部分的限位開(kāi)關(guān)已經(jīng)測(cè)試好了,所以這部分的測(cè)試就相對(duì)簡(jiǎn)單很多了。
步進(jìn)電機(jī)運(yùn)轉(zhuǎn)方向–  233行
#define INVERT_X_DIR true
#define INVERT_Y_DIR true
#define INVERT_Z_DIR true
#define INVERT_E0_DIR true
#define INVERT_E1_DIR false
#define INVERT_E2_DIR false
這部分是決定3d打印機(jī)各個(gè)軸的運(yùn)行方向的,默認(rèn)的選項(xiàng)不一定適合每一種打印機(jī),所以我個(gè)人建議是先測(cè)試其他項(xiàng)目,最后才測(cè)試這部分。
這是當(dāng)我們經(jīng)過(guò)接口軟件控制 3D立體打印機(jī),我們哪里決定哪一個(gè)方向每個(gè)軸將會(huì)去。當(dāng)我們將一個(gè)指令送到的時(shí)候驅(qū)使 +10 毫米前進(jìn)一個(gè)軸,我們期待軸移動(dòng)被期望的方向的 10 毫米。 開(kāi)始的高抬腿運(yùn)步的馬馬達(dá)方向能難以沒(méi)有打開(kāi)打印機(jī)而且表演一個(gè)測(cè)試預(yù)測(cè)。因此我會(huì)建議離開(kāi)這些設(shè)定直到最后的而且在以測(cè)試著手進(jìn)行之前完成馬林魚(yú)固件結(jié)構(gòu)的其它部分。

一經(jīng)馬林魚(yú)固件結(jié)構(gòu)文件被配置充足操作 3D立體打印機(jī),你能運(yùn)行一個(gè)測(cè)試檢查每個(gè)軸搬進(jìn)正確的方向。設(shè)定他們的完整旅行距離的每個(gè)軸中點(diǎn)然后打開(kāi)打印機(jī)。 在經(jīng)過(guò)接口軟件,像是Printrun/pronterface 對(duì) 3D立體打印機(jī)連接之后,藉由慢跑他們積極的方向的10 毫米測(cè)試每個(gè)軸。 對(duì)于每個(gè)軸的高抬腿運(yùn)步的馬馬達(dá)旋轉(zhuǎn)方向能藉由變更邏輯在馬林魚(yú)固件結(jié)構(gòu)中從第233 行被改正。

你會(huì)需要也測(cè)試擠壓機(jī)高抬腿運(yùn)步的馬馬達(dá)方向。 這能沒(méi)有細(xì)絲被做裝載而且?guī)?lái)熱的達(dá)175 度的結(jié)束溫度因此馬林魚(yú)固件將會(huì)允許擠出。 送一經(jīng)過(guò) 3D立體打印機(jī)接口軟件擠出指令而且觀察方向細(xì)絲駕駛齒輪滑車(chē)旋轉(zhuǎn)。 對(duì)于擠壓機(jī)的旋轉(zhuǎn)方向能藉由變更邏輯從第236 行被改正。
當(dāng)?shù)谝淮伪硌葺S歸巢和軸慢跑的時(shí)候,準(zhǔn)備好按重新設(shè)定按鈕或者準(zhǔn)備好關(guān)掉電源避免撞碎的軸很重要。分開(kāi)地回家每個(gè)軸確定軸正在向結(jié)束停止回家。如果你能達(dá)成結(jié)束停止容易地,在軸已經(jīng)完成它之前,你能早引起他們?yōu)橐粋€(gè)安全的測(cè)試是旅行。

結(jié)束停止家方向 - 第 242 行
// 設(shè)定 endstops 的方向當(dāng)歸巢; 1=最大, -1=最小
#定義 X_HOME_DIR-1
#定義 Y_HOME_DIR-1
#定義 Z_HOME_DIR 1
End Stop Home Direction – line 242
// Sets direction of endstops whenhoming; 1=MAX, -1=MIN
#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR 1
基本上你告訴結(jié)束停止開(kāi)關(guān)被位于的軸結(jié)束的馬林魚(yú)固件。 它是通常的對(duì)X 和 Y 軸到家至最大的積極位置的零位置和 Z 軸結(jié)束停止家的熱結(jié)束 。 在上面的代碼片斷和對(duì)權(quán)利的圖像表示結(jié)構(gòu)。
像斜坡 1.3 的一些主板為每個(gè)軸的每個(gè)結(jié)束有一個(gè)聯(lián)編者,總計(jì)六個(gè)聯(lián)編者。你將會(huì)需要確定在比賽上面的設(shè)定結(jié)束停止和主板的關(guān)聯(lián)。

Travel Limits – line249   旅行極限 - 第 249 行
#define X_MAX_POS 130
#defineX_MIN_POS 0
#defineY_MAX_POS 130
#defineY_MIN_POS 0
#defineZ_MAX_POS 107
#defineZ_MIN_POS 0
上述者定義歸巢后的 3D立體打印機(jī)的可印刷區(qū)域。 對(duì)于 X 和 Y軸,你僅僅測(cè)量來(lái)自家位置的噴嘴的旅行長(zhǎng)度。 最大的旅行長(zhǎng)度將會(huì)或被大小限制那建立月臺(tái)或藉著軸的最大旅行距離。
當(dāng)?shù)谝淮谓?Z 軸的時(shí)候,設(shè)定 Z 軸旅行長(zhǎng)度短于被測(cè)量的一點(diǎn)點(diǎn)最好,直到一個(gè)軟件和3D立體打印機(jī)的硬件測(cè)試被完成。 這將會(huì)幫助避免偶然地撞碎那在開(kāi)始的測(cè)試期間把床加入熱的結(jié)束。 Z 軸旅行長(zhǎng)度可能是罰款調(diào)諧的比較遲的在測(cè)試已經(jīng)被滿(mǎn)意之后。
測(cè)量單位在毫米中而且為在馬林魚(yú)固件結(jié)構(gòu)文件中的最大位置從第 249行被定義。 最小的位置能被為這一個(gè)結(jié)構(gòu)留在假設(shè)值 0 。

Steps Per Unit – line275   步驟每一單位 - 第 275 行
#defineDEFAULT_AXIS_STEPS_PER_UNIT   {106.76, 106.76, 800, 48.14}
每一單位配置步驟將會(huì)是在你開(kāi)始第一次印刷之前,你做的最后一點(diǎn)點(diǎn)之一的微調(diào)。 有心機(jī)的步驟每一單位正確地將會(huì)給 3D立體印刷的分開(kāi)最好的開(kāi)始可能的。然而,如果你正在僅僅升級(jí)馬林魚(yú)固件或者正在從任何其他的固件升級(jí),如果你仍然有它,你能每一來(lái)自舊的結(jié)構(gòu)文件的單位身材得到步驟。
每一單位的步驟意謂數(shù)字行走一個(gè)高抬腿運(yùn)步的馬馬達(dá)必須準(zhǔn)備等于 1 毫米軸旅行。 單位在馬林魚(yú)固件 configuration.h 文件的第 275 行在 X 、 Y 的次序中,Z 和每一來(lái)自相同的設(shè)計(jì)的另一臺(tái)打印機(jī)的單位得到步驟的 E. 會(huì)到你需要的非常接近, 而且將會(huì)幫助你進(jìn)行一些高抬腿運(yùn)步的馬馬達(dá)測(cè)試在你之前認(rèn)真開(kāi)始每一單位計(jì)算正確的步驟為馬林魚(yú)固件結(jié)構(gòu)文件。
步驟每一單位計(jì)算
為了要每一單位 (毫米) 計(jì)算步驟提出馬林魚(yú)固件結(jié)構(gòu)文件,你需要找一個(gè)好方法正確地測(cè)量軸旅行距離。你可能對(duì)暫時(shí)的距離有熱的結(jié)束,以便細(xì)絲能被擠出為了要制造測(cè)量。代替熱的結(jié)束和被以帶子綁起到床的一個(gè)尺使用一個(gè)刻度盤(pán)指示器能對(duì)標(biāo)準(zhǔn)的到處旅行的距離提供一個(gè)好正確的方法。得到最好的準(zhǔn)確性你應(yīng)該抽取樣品至少 100 毫米的軸旅行。 你命令打印機(jī)使用接口軟件,像是 Pronterface 移動(dòng)被選擇的軸100 毫米。 你然后測(cè)量真實(shí)的距離軸到處旅行的。在你下面使用公式能每一單位計(jì)算新的步驟。

teps 每一單位公式
NewStepsPerUnit=SampleTravelDist/ActualTravelDist x OldStepsPerUnit
你然后重復(fù)上述的公式同樣地許多次當(dāng)做必需的直到被命令的旅行距離相配真實(shí)的距離到處旅行的,每次以 NewStepsPerUnit 作為 OldStepsPerUnit。
Adding LCD Support – line 303 增加 LCD 支持 - 第 303 行
#define ULTRA_LCD
要定義的 ULTRA_LCD 需要中使任何類(lèi)型的 LCD 支持能夠。為了要增加對(duì) 16 × 2個(gè) LCD 展覽的支持,第303 行需要在上面像代碼片斷被不批評(píng),藉由除去前述的向前斜線(xiàn)。 預(yù)先設(shè)定地,馬林魚(yú)固件沒(méi)有LCD 或者按編碼器控制嵌板使。能夠 促成第 303 行和無(wú)別的將會(huì)給你為被連接到主板大頭針如 pins.h 文件所分配的 16 × 2個(gè) LCD 熒屏支援。大頭針任務(wù)在被支援主板類(lèi)型的在每個(gè)下面的固件pins.h 文件中被發(fā)現(xiàn)。

增加點(diǎn)擊編碼器支持
有能為斜坡 1.3 會(huì)被能夠的二流行點(diǎn)擊編碼器控制嵌板的類(lèi)型。 第一個(gè)類(lèi)型是Ultipanel,能在 Thingiverse 上被發(fā)現(xiàn),而且另一個(gè)類(lèi)型是 RepRapDiscount 的控制器。 對(duì)于這一個(gè)引導(dǎo)者,我僅僅正在去為Ultipanel 增加筆記因?yàn)榱硪粋€(gè)類(lèi)型為固件被 RepRapDiscount RepRap wiki 支援。
EnablingULTIPANEL – line307   促成 ULTIPANEL- 第 307 行
#defineULTIPANEL
EnablingNEWPANEL – line331   促成 NEWPANEL- 第 331 行
#define NEWPANEL
兩者的第 307 和 331 行不預(yù)先設(shè)定地被能夠。 為了要使 20 × 4個(gè) LCD 展覽和點(diǎn)擊編碼器能夠, 不批評(píng)兩者線(xiàn)藉由除去向前的斜線(xiàn)。 這也也會(huì)使 SD 卡片支持能夠, 一個(gè)將會(huì)在另外的一個(gè)引導(dǎo)者被復(fù)蓋的特征。 如果第 307 行藉由不批評(píng)被能夠,不批評(píng)第 303 行將不會(huì)是必需的。 當(dāng) ULTIPANEL 被定義的時(shí)候, ULTRA_LCD 將會(huì)自動(dòng)地被定義。

評(píng)分

參與人數(shù) 1黑幣 +10 收起 理由
wfliu + 10 很給力!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:237661 發(fā)表于 2017-10-12 23:54 | 顯示全部樓層
控制原理圖
步進(jìn)電機(jī)樓主有沒(méi)有打印機(jī)的
回復(fù)

使用道具 舉報(bào)

ID:446269 發(fā)表于 2018-12-14 12:50 | 顯示全部樓層
厲害厲害,點(diǎn)贊
回復(fù)

使用道具 舉報(bào)

ID:446555 發(fā)表于 2018-12-14 22:12 來(lái)自觸屏版 | 顯示全部樓層
太贊了!
回復(fù)

使用道具 舉報(bào)

ID:396302 發(fā)表于 2019-2-17 12:31 | 顯示全部樓層
怎么刷固件啊
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表