久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

marlin固件詳解《個(gè)人感覺比較全》

 工廠應(yīng)用 2018-07-16

http://www./bbs/forum.php?mod=viewthread&tid=508&extra=概述
眾所周知,,Sprinter固件是之前用的比較多的3D打印機(jī)固件,,而Marlin固件和Repetier-firmware固件都是由其派生而來。而且這兩款固件的用戶群非?;钴S,,而Sprinter固件已經(jīng)沒有人維護(hù)了。在這二者中,,Marlin固件的使用更加廣泛,,很多打印機(jī)控制軟件都兼容Marlin固件。一般用戶在使用Marlin固件的時(shí)候只需要改變一下Configuration.h文件中的一些參數(shù)即可,非常方便,。這對(duì)一般3D大打印玩家來說可是非常好的福利喲,。今天阿巴賽就跟大家一起分享一下這份指南,,它是一份簡(jiǎn)單的用戶指南,,告訴用戶設(shè)置的基本信息、怎么運(yùn)用這些設(shè)置,、根據(jù)不同的需求制定特色功能,。
Marlin固件GitHub地址:https://github.com/ErikZalm/Marlin
Marlin固件特點(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ì)超過xy_jerk_velocity。要達(dá)到這樣的效果,,必須預(yù)先處理下一步的運(yùn)動(dòng),。這樣一來加快了打印速度,而且在拐角處減少耗材的堆積,,曲線打印更加平滑,。
2. 支持圓弧(Arc Support)
Marlin固件可以自動(dòng)調(diào)整分辨率去以接近恒定速度打印一段圓弧,,得到最平滑的弧線,。這樣做的另一個(gè)優(yōu)點(diǎn)是減少串口通信量。因?yàn)橥ㄟ^1條G2/G3指令即可打印圓弧,,而不用通過多條G1指令,。
3. 溫度多重采樣(Temperature Oversampling)
為了降低噪聲的干擾,使PID溫度控制更加有效,,Marlin采樣16次取平均值去計(jì)算溫度,。
4. 自動(dòng)調(diào)節(jié)溫度(AutoTemp)
當(dāng)打印任務(wù)要求擠出速度有較大的變化時(shí),或者實(shí)時(shí)改變打印速度,那么打印速度也需要隨之改變,。通常情況下,,較高的打印速度要求較高的溫度,Marlin可以使用M109 S<mintemp> B<maxtemp> F<factor>指令去自動(dòng)控制溫度,。
使用不帶F參數(shù)的M109指令不會(huì)自動(dòng)調(diào)節(jié)溫度,。否則,Marlin會(huì)計(jì)算緩存中所有移動(dòng)指令中最大的擠出速度(單位是steps/sec),,即所謂的“maxerate”,。然后目標(biāo)溫度值通過公式T = tempmin + factor*maxerate,同時(shí)限制在最小溫度(tempmin)和最大溫度(tempmax)之間,。如果目標(biāo)溫度小于最小溫度,,那么自動(dòng)調(diào)節(jié)將不起作用。最理想的情況下,,用戶可以不用去控制溫度,,只需要在開始使用M109 S B F,并在結(jié)束時(shí)使用M109 S0,。
5. 非易失存儲(chǔ)器(EEPROM)
Marlin固件將一些常用的參數(shù),,比如加速度、最大速度,、各軸運(yùn)動(dòng)單位等存儲(chǔ)在EEPROM中,,用戶可以在校準(zhǔn)打印機(jī)的時(shí)候調(diào)整這些參數(shù),然后存儲(chǔ)到EEPROM中,,這些改變?cè)诖蛴C(jī)重啟之后生效而且永久保存,。
6. 液晶顯示器菜單(LCD Menu)
如果硬件支持,用戶可以構(gòu)建一個(gè)脫機(jī)智能控制器(LCD屏+SD卡槽+編碼器+按鍵),。用戶可以通過液晶顯示器菜單實(shí)時(shí)調(diào)整溫度,、加速度、速度,、流量倍率,,選擇并打印SD卡中的G-Code文件,預(yù)加熱,,禁用步進(jìn)電機(jī)和其他操作,。比較常用的有LCD2004只能控制器和LCD12864只能控制器。
7. SD卡內(nèi)支持文件夾(SD card folders)
Marlin固件可以讀取SD卡中子文件夾內(nèi)的G-Code文件,,不必是根目錄下的文件,。
8. SD卡自動(dòng)打印(SD card auto print)
若SD卡根目錄中有文件名為 auto[0-9].g 的文件時(shí),,打印機(jī)會(huì)在開機(jī)后自動(dòng)開始打印該文件,。
9. 限位開關(guān)觸發(fā)記錄(Endstop trigger reporting)
如果打印機(jī)運(yùn)行過程中碰到了限位開關(guān),,那么Marlin會(huì)將限位開關(guān)觸發(fā)的位置發(fā)送到串口,并給出一個(gè)警告,。這對(duì)于用戶分析打印過程中遇到的問題是很有用的,。
10. 編碼規(guī)范(Coding paradigm)
Marlin固件采用模塊化編程方式,讓用戶可以清晰地理解整個(gè)程序,。這為以后將固件升級(jí)到ARM系統(tǒng)提供很大的方便
11. 基于中斷的溫度測(cè)量(Interrupt based temperature measurements)
一路中斷去處理ADC轉(zhuǎn)換和檢查溫度變化,,這樣就減少了單片機(jī)資源的使用。
12. 支持多種機(jī)械結(jié)構(gòu)
普通的XYZ正交機(jī)械,,CoreXY機(jī)械,,Delta機(jī)械以及SCARA機(jī)械。
基本配置
使用Arduino IDE打開marlin.ino,,切換到Configuration.h即可查看并修改該文件,。或者使用任何一款文本編輯器(notepad,notpad++等)直接打開Configuration.h也可以,。Marlin固件的配置主要包含一下幾個(gè)方面:
1. 通訊波特率
2. 主板類型,,所使用的主板類型
3. 溫度傳感器類型,包括擠出頭溫度傳感器和加熱床的溫度傳感器
4. 溫度配置,,包括噴頭溫度和加熱床溫度
5. PID溫控參數(shù),,包括噴頭溫度控制和加熱床溫度控制
6. 限位開關(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)來說,Marlin固件中的Configuration.h將各個(gè)配置模塊化,,非常便于閱讀及修改,,而且注釋非常詳細(xì),,英文好的朋友可以很容易地理解各參數(shù)的意義,。注意到Marlin固件使用C語(yǔ)言編寫,“//”后面的是注釋語(yǔ)句,,不會(huì)影響代碼的作用,。另外Marlin固件中大量使用#define,簡(jiǎn)單來講,,就是定義的意思,,包括定義某個(gè)參數(shù)的數(shù)值,定義某個(gè)參數(shù)是否存在,。
最開始的兩行非注釋語(yǔ)句是定義固件的版本和作者,。缺省的版本號(hào)就是編譯時(shí)間,這個(gè)可以不用修改,,只需要把作者改為自己的名字即可,,注意不能包含中文,不然會(huì)亂碼,。
#define STRING_VERSION_CONFIG_H __DATE__ " " __TIME__ // build date and time
#define STRING_CONFIG_H_AUTHOR "www.abaci3d.cn" // who made the changes.

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

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

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

接下來定義溫度傳感器類型,,包括每個(gè)噴頭使用的溫度傳感器(如果是多噴頭)和加熱床的溫度傳感器類型,常用的溫度傳感器有電熱偶和熱敏電阻兩大類,,熱敏電阻又分為很多種,。目前的3D打印機(jī)主要用的是熱敏電阻,具體是哪種熱敏電阻需要自己判斷或詢問賣家,,不出意外的話,,都是100k ntc熱敏電阻,即1,。根據(jù)注釋,,1要求4.7k的上拉電阻,,而根據(jù)RepRap wiki,幾乎所有的3D打印機(jī)都使用了4.7K的熱敏電阻上拉電阻,。筆者觀察了幾種電路板的電路圖,,發(fā)現(xiàn)都使用了4.7K的上拉電阻,如圖1所示,。
// 1 is 100k thermistor - best choice for EPCOS 100k (4.7k pullup)
筆者的打印機(jī)為單噴頭,,因此第一個(gè)噴頭的溫度傳感器配置為1,其他配置為0(0表示沒有使用),,加熱床的溫度傳感器也配置為1,。
#define TEMP_SENSOR_0 1
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_BED 1
接下來是溫度檢測(cè)的一些配置,包括雙噴頭溫度差,,M109檢測(cè)配置,,安全溫度配置。下面筆者一一解釋,。

首先下面這一句配置雙噴頭溫差最大值,,如果溫度超過這個(gè)數(shù)值,那么打印機(jī)會(huì)終止工作,,因此對(duì)于雙噴頭打印機(jī)玩家來說,,這個(gè)參數(shù)需要注意。
#define MAX_REDUNDANT_TEMP_SENSOR_DIFF 10
下面這一段配置M109指令完成的指標(biāo),,我們知道,,M109指令設(shè)定噴頭溫度并等待,那么等待到什么時(shí)候呢,?下面這三個(gè)參數(shù)控制這個(gè)時(shí)間,。第一個(gè)參數(shù)表示溫度“接近”目標(biāo)溫度必須持續(xù)10秒才算加熱完成,第二個(gè)參數(shù)表示和目標(biāo)溫度相差不超過3°為“接近”,,第三個(gè)參數(shù)表示從溫度與目標(biāo)溫度相差不超過1度開始計(jì)時(shí),,從此刻開始,溫度和目標(biāo)溫度持續(xù)接近10秒鐘,,則完成加熱。
#define TEMP_RESIDENCY_TIME 10
#define TEMP_HYSTERESIS 3      
#define TEMP_WINDOW     1     
下面配置安全溫度范圍的下限和上限,,包括各個(gè)噴頭和加熱床,。如果溫度超過下限,那么打印機(jī)會(huì)拋出MINTEMP的錯(cuò)誤并終止工作,,如果超過上限,,那么打印機(jī)拋出MAXTEMP的錯(cuò)誤并終止工作。Marlin用這種方式保護(hù)3D打印機(jī),。下面的配置最小溫度都是5°,,噴頭的最大溫度為275°,,熱床的最大溫度為150°。
#define HEATER_0_MINTEMP 5
#define HEATER_1_MINTEMP 5
#define HEATER_2_MINTEMP 5
#define BED_MINTEMP 5
#define HEATER_0_MAXTEMP 275
#define HEATER_1_MAXTEMP 275
#define HEATER_2_MAXTEMP 275
#define BED_MAXTEMP 150
如果希望M105指令在報(bào)告溫度的時(shí)候,,也報(bào)告噴頭和加熱床的功率,,則可以將下面兩句的前面的”//”去掉。具體的功率數(shù)值需要用戶自己計(jì)算得到,。
#define EXTRUDER_WATTS (12.0*12.0/6.7)
#define BED_WATTS (12.0*12.0/1.1)      


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

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

接下來的一大段是為了防止溫度失控遭造成著火而設(shè)置的,,筆者就遇到過這樣的情況,,當(dāng)時(shí)熱敏電阻沒有放到噴頭上,然后一直在加熱,,最終將PEEK燒爆炸了,。這個(gè)配置的具體原理是如果測(cè)得溫度在很長(zhǎng)一段時(shí)間內(nèi)和目標(biāo)溫度的差大于某個(gè)數(shù)值,,那么打印機(jī)會(huì)自動(dòng)終止,從而起到保護(hù)打印機(jī)的效果,。Marlin默認(rèn)將這幾句注釋掉了,,即不做這樣的保護(hù),如果用戶希望做這樣的保護(hù),,只需要將注釋取消即可,。第一句是配置檢測(cè)時(shí)間,第二句是控制溫度差距,。對(duì)于加熱床也有類似的配置,,需要注意的是,當(dāng)前越來越大的熱床被使用,,導(dǎo)致加熱速度很慢,,要防止被誤查。
#define THERMAL_RUNAWAY_PROTECTION_PERIOD 40
#define THERMAL_RUNAWAY_PROTECTION_HYSTERESIS 4
#define THERMAL_RUNAWAY_PROTECTION_BED_PERIOD 20
#define THERMAL_RUNAWAY_PROTECTION_BED_HYSTERESIS 2

終于來到了機(jī)械配置部分,,首先需要配置的是限位開關(guān),。一般的配置是,對(duì)所有的限位開關(guān)都使用上拉電阻,,而機(jī)械式限位開關(guān)連接在常閉段,,那么限位開關(guān)在正常情況下(未觸發(fā)),信號(hào)端(SIGNAL)為低電位,,限位開關(guān)觸發(fā)時(shí),,開關(guān)處于開路狀態(tài),信號(hào)端為高電位,。這和Marlin中默認(rèn)的限位開關(guān)邏輯相同,。

首先保持使用上拉電阻,
#define ENDSTOPPULLUPS
接著就是所有的限位開關(guān)都使用上拉電阻形式,。
#ifdef ENDSTOPPULLUPS
  #define ENDSTOPPULLUP_XMAX
  #define ENDSTOPPULLUP_YMAX
  #define ENDSTOPPULLUP_ZMAX
  #define ENDSTOPPULLUP_XMIN
  #define ENDSTOPPULLUP_YMIN
  #define ENDSTOPPULLUP_ZMIN
#endif


下面就是限位開關(guān)的邏輯配置,,如果限位開關(guān)連接方式為GND端連接限位開關(guān)的COM端,而SIGNAL端連接的是限位開關(guān)的常閉(NC)端,,那么就把該限位開關(guān)對(duì)應(yīng)的邏輯設(shè)置為false,,否則設(shè)置為true。如果使用的打印機(jī)只有最小值處的限位開關(guān),,那么保持默認(rèn)設(shè)置即可,。
const bool X_MIN_ENDSTOP_INVERTING = false;
const bool Y_MIN_ENDSTOP_INVERTING = false;
const bool Z_MIN_ENDSTOP_INVERTING = false;
const bool X_MAX_ENDSTOP_INVERTING = true;
const bool Y_MAX_ENDSTOP_INVERTING = true;
const bool Z_MAX_ENDSTOP_INVERTING = true;


有的打印機(jī)并不是使用了6個(gè)限位開關(guān),大多數(shù)情況下,,都是使用3個(gè)最小值處的限位開關(guān),而最大值處的限位開關(guān)都沒有使用,。Marlin固件允許用戶指定所使用的限位開關(guān),。下面兩行可以選擇去告訴打印機(jī)沒有使用哪些限位開關(guān),,筆者打印機(jī)只是使用了全部3個(gè)最小值處的限位開關(guān),因此禁用最大值處的限位開關(guān),。即將第一行的注釋符“//”去掉,。
#define DISABLE_MAX_ENDSTOPS
//#define DISABLE_MIN_ENDSTOPS

下面配置步進(jìn)電機(jī)的運(yùn)動(dòng)方式,主要配置步進(jìn)電機(jī)的正向反向,,根據(jù)實(shí)際情況改變配置即可,,如果發(fā)現(xiàn)某個(gè)步進(jìn)電機(jī)運(yùn)動(dòng)方向不對(duì),把對(duì)應(yīng)的配置改為相反的值即可,。
#define INVERT_X_DIR true
#define INVERT_Y_DIR false
#define INVERT_Z_DIR true  
#define INVERT_E0_DIR false

緊接著配置回歸初始位位置,,-1表示初始位置為坐標(biāo)最小值處,1表示初始位在坐標(biāo)最大值處,。筆者的打印機(jī)配置如下:
#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1

接下來是關(guān)于Marlin如何確定步進(jìn)電機(jī)已經(jīng)達(dá)到邊界的位置,,軟限位的方式是通過判斷噴頭的坐標(biāo)值是否越過打印機(jī)范圍,否則根據(jù)限位開關(guān)的狀態(tài)判斷是否越位,。因?yàn)楣P者的打印機(jī)限位開關(guān)都在最小值處,,為了節(jié)省計(jì)算資源,只需要對(duì)最大值使用軟限位方式,。配置如下:
#define min_software_endstops false
#define max_software_endstops true
那么為了正確判斷噴頭是否越位,,需要正確配置打印機(jī)的打印范圍。MAX為最大坐標(biāo),,MIN為最小坐標(biāo),。筆者的打印機(jī)范圍為200×200×160mm,因此配置如下:
#define X_MAX_POS 200
#define X_MIN_POS 0
#define Y_MAX_POS 200
#define Y_MIN_POS 0
#define Z_MAX_POS 160
#define Z_MIN_POS 0


接下來的一大段控制自動(dòng)調(diào)平,,筆者認(rèn)為當(dāng)前3D打印機(jī)都存在一個(gè)平臺(tái)不平整的問題,,因此自動(dòng)調(diào)平?jīng)]太大作用,因此沒有使用自動(dòng)調(diào)平,,確保下面一句處于注釋狀態(tài),。
//#define ENABLE_AUTO_BED_LEVELING

接下來就該配置步進(jìn)電機(jī)的運(yùn)動(dòng)選項(xiàng)了。首先是定義軸的數(shù)量,,對(duì)于單噴頭機(jī)器,,應(yīng)該是4軸,分別是X軸,、Y軸,、Z軸和E軸。然后是回歸初始位的速度,,注意單位是毫米每分鐘,。Z軸回歸初始位的速度比較慢,E軸不存在初始位,,因此設(shè)置為0,。
#define NUM_AXIS 4
#define HOMING_FEEDRATE {50*60, 50*60, 4*60, 0}

接下來配置很重要的四個(gè)參數(shù),,每個(gè)軸的運(yùn)動(dòng)分辨率,即每個(gè)軸方向上發(fā)生1毫米的運(yùn)動(dòng),,對(duì)應(yīng)的步進(jìn)電機(jī)應(yīng)該轉(zhuǎn)動(dòng)多少步,。一般來說X軸和Y軸都是步進(jìn)電機(jī)+同步帶結(jié)構(gòu),Z軸為步進(jìn)電機(jī)+絲桿結(jié)構(gòu),,而擠出機(jī)為步進(jìn)電機(jī)+齒輪結(jié)構(gòu),,這四個(gè)參數(shù)可以通過Repetier-Host軟件中的計(jì)算器(工具菜單中)計(jì)算得來。
對(duì)于X軸和Y軸來說,,計(jì)算原理為步進(jìn)電機(jī)轉(zhuǎn)一周為360°,,與此同時(shí),同步輪發(fā)生一周的轉(zhuǎn)動(dòng),,假如同步輪為17齒,,那么同步帶上一點(diǎn)就運(yùn)動(dòng)了17個(gè)齒距的長(zhǎng)度,如果使用同步帶齒距為2毫米,,那么就發(fā)生34毫米的運(yùn)動(dòng),。而假如步進(jìn)電機(jī)步距角為1.8°,同時(shí)驅(qū)動(dòng)器的細(xì)分?jǐn)?shù)為1/16,,那么步進(jìn)電機(jī)轉(zhuǎn)一圈就發(fā)生360/1.8*16=3200步,。因此X軸和Y軸的分辨率就是3200/34 = 94.12。
對(duì)于Z軸來說,,步進(jìn)電機(jī)轉(zhuǎn)一周,,同樣轉(zhuǎn)動(dòng)了3200步,而假如使用的絲桿導(dǎo)程為8毫米,,即絲桿轉(zhuǎn)一圈,,絲桿螺母運(yùn)動(dòng)8毫米,那么Z軸的分辨率就是3200/8=400,。
而對(duì)于擠出機(jī)來說,,如果為近端擠出,不需要加減速器,,那么步進(jìn)電機(jī)轉(zhuǎn)一周,,帶動(dòng)擠出齒輪轉(zhuǎn)一周,那么耗材就被擠出“擠出齒輪的周長(zhǎng)”這個(gè)距離,,假如擠出齒輪直徑為10毫米,,那么E軸分辨率就是3200/(10*3.14) = 101.86。如果擠出機(jī)電機(jī)帶有減速器,,這個(gè)數(shù)值還要除以減速比,。
因此筆者配置如下:
#define DEFAULT_AXIS_STEPS_PER_UNIT   {74.12,74.12,400,101.86}

剩下的就是最大速度及加速度的配置,一般來說,使用默認(rèn)值即可,。如果發(fā)現(xiàn)打印機(jī)抖動(dòng)很厲害,,可能是因?yàn)榧铀俣冗^大的原因,,可以將第二行中的前兩個(gè)數(shù)值改為3000,,把三行的默認(rèn)加速度數(shù)值改為1000。
#define DEFAULT_MAX_FEEDRATE          {500, 500, 5, 25}
#define DEFAULT_MAX_ACCELERATION      {9000,9000,100,10000}
#define DEFAULT_ACCELERATION          3000
#define DEFAULT_RETRACT_ACCELERATION  3000
#define DEFAULT_XYJERK                20.0
#define DEFAULT_ZJERK                 0.4
#define DEFAULT_EJERK                 5.0

筆者使用的主板是RAMPS1.4,,可以選用很多脫機(jī)智能控制器,,即可以不用聯(lián)機(jī),使用顯示屏里面的菜單就可以控制打印機(jī),。筆者使用的是LCD12864控制器,,因此將下面一句的注釋符去掉,告訴固件使用這款控制器,。
#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
另外一款比較常用的控制器是LCD2004控制器,,使用這一款就需要把下面一句的注釋去掉,并把其他的控制器選項(xiàng)都注釋,。用戶也可以選擇其他的控制器,,只需做相應(yīng)的配置即可。
#define REPRAP_DISCOUNT_SMART_CONTROLLER


智能控制器都有預(yù)熱菜單,,即選擇預(yù)熱PLA和預(yù)熱ABS,,具體的溫度可以進(jìn)行更改。筆者打印PLA,,一般噴頭溫度設(shè)置為210°,,而加熱床溫度設(shè)置為40°;打印ABS的話,,噴頭溫度設(shè)置為230°,,加熱床溫度設(shè)置為60°。因此配置如下:
#define PLA_PREHEAT_HOTEND_TEMP 210
#define PLA_PREHEAT_HPB_TEMP 40
#define PLA_PREHEAT_FAN_SPEED 255
#define ABS_PREHEAT_HOTEND_TEMP 230
#define ABS_PREHEAT_HPB_TEMP 60
#define ABS_PREHEAT_FAN_SPEED 255

至此,,Marlin基本配置已經(jīng)完成,。可以通過Arduino IDE選擇相應(yīng)的端口和板子類型,,然后編譯上傳到主板上,,可以通過Repetier-Host或者PrintRun軟件調(diào)試打印機(jī),發(fā)現(xiàn)問題再調(diào)整固件的參數(shù),,重新上傳,,直到打印機(jī)正常工作。
  在此基礎(chǔ)上基本上可以用主板diy各種自動(dòng)化的機(jī)械,,同時(shí)也可以進(jìn)一步了解C語(yǔ)言和3d打印的原理,。
  最近在研究基于主板上用g。m代碼控制步進(jìn)電機(jī),實(shí)現(xiàn)軟硬結(jié)合,,順便diy一個(gè)自己的機(jī)器,。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多