Marlin固件基本配置_第1頁(yè)
Marlin固件基本配置_第2頁(yè)
Marlin固件基本配置_第3頁(yè)
Marlin固件基本配置_第4頁(yè)
Marlin固件基本配置_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

本文格式為Word版,下載可任意編輯——Marlin固件基本配置Marlin固件基本配置

來(lái)源:未知更新時(shí)間:2023-02-0511:25點(diǎn)擊次數(shù):1196

概述

眾所周知,Sprinter固件是之前用的比較多的3D打印機(jī)固件,而Marlin固件和Repetier-firmware固件都是由其派生而來(lái)。而且這兩款固件的用戶(hù)群十分活躍,而Sprinter固件已經(jīng)沒(méi)有人維護(hù)了。在這二者中,Marlin固件的使用更加廣泛,好多打印機(jī)控制軟件都兼容Marlin固件。一般用戶(hù)在使用Marlin固件的時(shí)候只需要改變一下Configuration.h文件中的一些參數(shù)即可,十分便利。這對(duì)一般3D大打印玩家來(lái)說(shuō)可是十分好的福利喲。今天阿巴賽就跟大家一起共享一下這份指南,它是一份簡(jiǎn)單的用戶(hù)指南,告訴用戶(hù)設(shè)置的基本信息、怎么運(yùn)用這些設(shè)置、根據(jù)不同的需求制定特色功能。

Marlin固件GitHub地址:/ErikZalm/MarlinMarlin固件特點(diǎn)

Marlin相對(duì)于Sprinter有好多優(yōu)點(diǎn),具體為以下幾點(diǎn):1.預(yù)加速功能(Look-ahead):

Sprinter在每個(gè)角處必需使打印機(jī)先停下然后再加速繼續(xù)運(yùn)行,而預(yù)加速只會(huì)減速或加速到某一個(gè)速度值,從而速度的矢量變化不會(huì)超過(guò)xy_jerk_velocity。要達(dá)到這樣的效果,必需預(yù)先處理下一步的運(yùn)動(dòng)。這樣一來(lái)加快了打印速度,而且在拐角處減少耗材的堆積,曲線打印更加平滑。2.支持圓?。ˋrcSupport)

Marlin固件可以自動(dòng)調(diào)整分辯率去以接近恒定速度打印一段圓弧,得到最平滑的弧線。這樣做的另一個(gè)優(yōu)點(diǎn)是減少串口通信量。由于通過(guò)1條G2/G3指令即可打印圓弧,而不用通過(guò)多條G1指令。

3.溫度多重采樣(TemperatureOversampling)

為了降低噪聲的干擾,使PID溫度控制更加有效,Marlin采樣16次取平均值去計(jì)算溫度。

4.自動(dòng)調(diào)理溫度(AutoTemp)

當(dāng)打印任務(wù)要求擠出速度有較大的變化時(shí),或者實(shí)時(shí)改變打印速度,那么打印速度也需要隨之改變。尋常狀況下,較高的打印速度要求較高的溫度,Marlin可以使用M109SBF指令去自動(dòng)控制溫度。

使用不帶F參數(shù)的M109指令不會(huì)自動(dòng)調(diào)理溫度。否則,Marlin會(huì)計(jì)算緩存中所有移動(dòng)指令中最大的擠出速度(單位是steps/sec),即所謂的“maxerate〞。然后目標(biāo)溫度值通過(guò)公式T=tempmin+factor*maxerate,同時(shí)限制在最小溫度(tempmin)和最大溫度(tempmax)之間。假使目標(biāo)溫度小于最小溫度,那么自動(dòng)調(diào)理將不起作用。最理

想的狀況下,用戶(hù)可以不用去控制溫度,只需要在開(kāi)始使用M109SBF,并在終止時(shí)使用M109S0。

5.非易失存儲(chǔ)器(EEPROM)

Marlin固件將一些常用的參數(shù),譬如加速度、最大速度、各軸運(yùn)動(dòng)單位等存儲(chǔ)在EEPROM中,用戶(hù)可以在校準(zhǔn)打印機(jī)的時(shí)候調(diào)整這些參數(shù),然后存儲(chǔ)到EEPROM中,這些改變?cè)诖蛴C(jī)重啟之后生效而且永久保存。6.液晶顯示器菜單(LCDMenu)

假使硬件支持,用戶(hù)可以構(gòu)建一個(gè)脫精明能控制器(LCD屏+SD卡槽+編碼器+按鍵)。用戶(hù)可以通過(guò)液晶顯示器菜單實(shí)時(shí)調(diào)整溫度、加速度、速度、流量倍率,選擇并打印SD卡中的G-Code文件,預(yù)加熱,禁用步進(jìn)電機(jī)和其他操作。比較常用的有LCD2023只能控制器和LCD12864只能控制器。7.SD卡內(nèi)支持文件夾(SDcardfolders)

Marlin固件可以讀取SD卡中子文件夾內(nèi)的G-Code文件,不必是根目錄下的文件。8.SD卡自動(dòng)打?。⊿Dcardautoprint)

若SD卡根目錄中有文件名為auto[0-9].g的文件時(shí),打印機(jī)遇在開(kāi)機(jī)后自動(dòng)開(kāi)始打印該文件。

9.限位開(kāi)關(guān)觸發(fā)記錄(Endstoptriggerreporting)

假使打印機(jī)運(yùn)行過(guò)程中碰見(jiàn)了限位開(kāi)關(guān),那么Marlin會(huì)將限位開(kāi)關(guān)觸發(fā)的位置發(fā)送到串口,并給出一個(gè)警告。這對(duì)于用戶(hù)分析打印過(guò)程中遇到的問(wèn)題是很有用的。10.編碼規(guī)范(Codingparadigm)

Marlin固件采用模塊化編程方式,讓用戶(hù)可以明了地理解整個(gè)程序。這為以后將固件升級(jí)到ARM系統(tǒng)提供很大的便利

11.基于中斷的溫度測(cè)量(Interruptbasedtemperaturemeasurements)

一路中斷去處理ADC轉(zhuǎn)換和檢查溫度變化,這樣就減少了單片機(jī)資源的使用。12.支持多種機(jī)械結(jié)構(gòu)

普通的XYZ正交機(jī)械,CoreXY機(jī)械,Delta機(jī)械以及SCARA機(jī)械。

基本配置

使用ArduinoIDE開(kāi)啟marlin.ino,切換到Configuration.h即可查看并修改該文件?;蛘呤褂萌魏我豢钗谋揪庉嬈鳎╪otepad,notpad++等)直接開(kāi)啟Configuration.h也可以。Marlin固件的配置主要包含一下幾個(gè)方面:

1.通訊波特率

2.主板類(lèi)型,所使用的主板類(lèi)型

3.溫度傳感器類(lèi)型,包括擠出頭溫度傳感器和加熱床的溫度傳感器4.溫度配置,包括噴頭溫度和加熱床溫度

5.PID溫控參數(shù),包括噴頭溫度控制和加熱床溫度控制6.限位開(kāi)關(guān)

7.4個(gè)軸步進(jìn)電機(jī)方向8.X/Y/Z三個(gè)坐標(biāo)軸的初始位置9.打印機(jī)運(yùn)動(dòng)范圍

10.自動(dòng)調(diào)平11.運(yùn)動(dòng)速度12.各軸運(yùn)動(dòng)分辯率13.脫機(jī)控制器

根據(jù)筆者的經(jīng)驗(yàn)來(lái)說(shuō),Marlin固件中的Configuration.h將各個(gè)配置模塊化,十分便于閱讀及修改,而且解釋十分詳細(xì),英文好的朋友可以很簡(jiǎn)單地理解各參數(shù)的意義。注意到Marlin固件使用C語(yǔ)言編寫(xiě),“//〞后面的是解釋語(yǔ)句,不會(huì)影響代碼的作用。另外Marlin固件中大量使用#define,簡(jiǎn)單來(lái)講,就是定義的意思,包括定義某個(gè)參數(shù)的數(shù)值,定義某個(gè)參數(shù)是否存在。

最開(kāi)始的兩行非解釋語(yǔ)句是定義固件的版本和。缺省的版本號(hào)就是編譯時(shí)間,這個(gè)可以不用修改,只需要把改為自己的名字即可,注意不能包含中文,不然會(huì)亂碼。

#defineSTRING_VERSION_CONFIG_H__DATE__\__TIME__//builddateandtime#defineSTRING_CONFIG_H_AUTHOR\//whomadethechanges.

電腦和打印機(jī)通過(guò)串口進(jìn)行通訊,要定義好端口和波特率,在此定義的是3D打印主板的端口和波特率,端口號(hào)使用默認(rèn)的0就可以了。Marlin固件默認(rèn)的波特率是250000,也可以修改為其他值,譬如115200,這是標(biāo)準(zhǔn)的ANSI波特率值。

#defineSERIAL_PORT0#defineBAUDRATE250000

下面定義主板類(lèi)型,Marlin固件支持十分多種類(lèi)的3D打印機(jī)主板,譬如常見(jiàn)的RAMPS1.3/1.4、Melzi、Printrboard、Ultimainboard、Sanguinololu等控制板。需要注意的是不同主板使用不同的腳口和數(shù)量,假使該定義和ArduinoIDE中使用的主板不一致,確定會(huì)導(dǎo)致編譯不通過(guò)。筆者使用的是RAMPS1.4并且D8、D9、D10控制的是一個(gè)噴頭加熱、一個(gè)加熱床加熱和一個(gè)風(fēng)扇輸出,因此定義為33。

#ifndefMOTHERBOARD#defineMOTHERBOARD33#endif

接下來(lái)是定義擠出頭的個(gè)數(shù)及電源類(lèi)型,筆者使用的是單噴頭打印機(jī),因此定義為1。電源有兩種類(lèi)型可以選擇,1表示開(kāi)關(guān)電源,2表示X-Box360203伏電源,一般都使用的是開(kāi)關(guān)電源,因此定義為1。

#defineEXTRUDERS1#definePOWER_SUPPLY1

接下來(lái)定義溫度傳感器類(lèi)型,包括每個(gè)噴頭使用的溫度傳感器(假使是多噴頭)和加熱床的溫度傳感器類(lèi)型,常用的溫度傳感器有電熱偶和熱敏電阻兩大類(lèi),熱敏電阻又分為好多種。目前的3D打印機(jī)主要用的是熱敏電阻,具體是哪種熱敏電阻需要自己判斷或詢(xún)問(wèn)賣(mài)家,不出意外的話,都是100kntc熱敏電阻,即1。根據(jù)解釋?zhuān)?要求4.7k的上拉電阻,而根據(jù)RepRapwiki,幾乎所有的3D打印機(jī)都使用了4.7K的熱敏電阻上拉電阻。筆者觀測(cè)了幾種電路板的電路圖,發(fā)現(xiàn)都使用了4.7K的上拉電阻,如圖1所示。

//1is100kthermistor-bestchoiceforEPCOS100k(4.7kpullup)

筆者的打印機(jī)為單噴頭,因此第一個(gè)噴頭的溫度傳感器配置為1,其他配置為0(0表示沒(méi)有使用),加熱床的溫度傳感器也配置為1。

#defineTEMP_SENSOR_01#defineTEMP_SENSOR_10#defineTEMP_SENSOR_20#defineTEMP_SENSOR_BED1

圖14.7K上拉電阻

接下來(lái)是溫度檢測(cè)的一些配置,包括雙噴頭溫度差,M109檢測(cè)配置,安全溫度配置。下面筆者一一解釋。

首先下面這一句配置雙噴頭溫差最大值,假使溫度超過(guò)這個(gè)數(shù)值,那么打印機(jī)遇終止工作,因此對(duì)于雙噴頭打印機(jī)玩家來(lái)說(shuō),這個(gè)參數(shù)需要注意。

#defineMAX_REDUNDANT_TEMP_SENSOR_DIFF10

下面這一段配置M109指令完成的指標(biāo),我們知道,M109指令設(shè)定噴頭溫度并等待,那么等待到什么時(shí)候呢?下面這三個(gè)參數(shù)控制這個(gè)時(shí)間。第一個(gè)參數(shù)表示溫度“接近〞目標(biāo)溫度必需持續(xù)10秒才算加熱完成,其次個(gè)參數(shù)表示和目標(biāo)溫度相差不超過(guò)3°為“接近〞,第三個(gè)參數(shù)表示從溫度與目標(biāo)溫度相差不超過(guò)1度開(kāi)始計(jì)時(shí),此后刻開(kāi)始,溫度和目標(biāo)溫度持續(xù)接近10秒鐘,則完成加熱。

#defineTEMP_RESIDENCY_TIME10#defineTEMP_HYSTERESIS3

#defineTEMP_WINDOW1

下面配置安全溫度范圍的下限和上限,包括各個(gè)噴頭和加熱床。假使溫度超過(guò)下限,那么打印機(jī)遇拋出MINTEMP的錯(cuò)誤并終止工作,假使超過(guò)上限,那么打印機(jī)拋出MAXTEMP的錯(cuò)誤并終止工作。Marlin用這種方式保護(hù)3D打印機(jī)。下面的配置最小溫度都是5°,噴頭的最大溫度為275°,熱床的最大溫度為150°。

#defineHEATER_0_MINTEMP5#defineHEATER_1_MINTEMP5#defineHEATER_2_MINTEMP5#defineBED_MINTEMP5#defineHEATER_0_MAXTEMP275#defineHEATER_1_MAXTEMP275#defineHEATER_2_MAXTEMP275#defineBED_MAXTEMP150

假使希望M105指令在報(bào)告溫度的時(shí)候,也報(bào)告噴頭和加熱床的功率,則可以將下面兩句的前面的〞//〞去掉。具體的功率數(shù)值需要用戶(hù)自己計(jì)算得到。

#defineEXTRUDER_WATTS(12.0*12.0/6.7)

#defineBED_WATTS(12.0*12.0/1.1)

接下來(lái)配置溫度控制方法,Marlin提供兩種溫度控制方法,一種是簡(jiǎn)單的bang-bang控制,這種控制方法比較簡(jiǎn)單,效果較差,另一種是PID控制,即比例-積分-微分控制方法,這種控制效果比較好。因此筆者使用PID控制。而關(guān)于PID控制的詳細(xì)資料,請(qǐng)自行查閱。關(guān)于PID參數(shù)的設(shè)置,對(duì)普通3D打印機(jī)玩家來(lái)說(shuō)影響不是很大,一般的參數(shù)設(shè)置都能滿足溫度控制的需要,因此使用默認(rèn)的UltimakerPID參數(shù)即可。對(duì)于加熱床來(lái)說(shuō),使用默認(rèn)的控制方法即可。

#definePIDTEMP

越過(guò)了溫度控制方法之后,就到了保護(hù)擠出機(jī)的配置,包括防止冷擠出和過(guò)長(zhǎng)距離的擠出。防止冷擠出就是在噴頭溫度低于某個(gè)溫度的時(shí)候是擠出動(dòng)作無(wú)效,而過(guò)長(zhǎng)距離的擠出是指一次擠出的距離不能大于某個(gè)長(zhǎng)度。第一句是防止冷擠出,第三句是定義冷擠出的溫度,即170°,玩巧克力或食品打印機(jī)的朋友需要注意到這個(gè)溫度值。其次句是防止冗長(zhǎng)擠出,第四局指明白這個(gè)距離的數(shù)值,為X軸長(zhǎng)度與Y軸長(zhǎng)度之和。

#definePREVENT_DANGEROUS_EXTRUDE

#definePREVENT_LENGTHY_EXTRUDE#defineEXTRUDE_MINTEMP170

#defineEXTRUDE_MAXLENGTH(X_MAX_LENGTH+Y_MAX_LENGTH)

接下來(lái)的一大段是為了防止溫度失控遭造成著火而設(shè)置的,筆

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論