亚洲天堂高清一二三,久久久久久久久久性生活,精品国产污污免费网站AⅤ,色橹橹欧美在线观看视频高清

3D打印機(jī)如何添加自動調(diào)平功能(舵機(jī)調(diào)平) 

2016-08-25 16:36
3d打印打印時最重要的是第一層的效果,如果第一層能夠很好的粘在打印平臺上,后面的如果不出意外,都可以順利完成。但是第一層的打印并沒有那么容易,其中一個原因就是打印平臺是否水平的問題。如果平臺不水平,可能導(dǎo)致模型的第一層在一個位置非常牢固,在另一個位置卻根本沒有粘上。甚至?xí)p壞打印頭(平臺不平,由低的位置運(yùn)動到高的位置可能會撞壞打印頭)。  本教程將通過圖文及視頻的方式演示為你的3d打印機(jī)添加自動調(diào)平功能。以后再也不用手動調(diào)平了。這里介紹的是用官方Marlin固件的方式,不是rostock或kossel等Delta版本的Marlin,Delta版本的配置有可能會在以后推出。
  自動調(diào)平的局限性
  雖說是自動調(diào)平,但是現(xiàn)在的調(diào)平功能時有局限性的,即你的打印平臺是平的(沒有彎曲或凹凸情況),但你的平臺并沒有放置到水平的位置(或與打印頭垂直)。如果你的打印平臺是彎曲的或凹凸不平,理論上來說是不起作用或作用很小的。所以建議大家的打印平臺是玻璃之類的平整度非常高的平面。
  基本原理
  電子世界里,任何的測量都需要傳感器來實現(xiàn)。而調(diào)平用的傳感器其實就是Z軸的零位置限位開關(guān)(Z-min)。為了實現(xiàn)Z-min對不同XY坐標(biāo)的探測,Z-min的安裝位置需要跟著打印頭一起移動,但Z-min如果在打印頭旁邊,如果在打印時可能會碰到打印的物體從而損壞模型。所以在標(biāo)準(zhǔn)XYZ三軸打印機(jī)中,常常通過添加一個小舵機(jī)來控制Z-min的收起和放下,即需要觸發(fā)Z-min時(回零或調(diào)平),通過舵機(jī)放下Z-min;不用的時候就會收起Z-min。具體舵機(jī)安裝將在下一個環(huán)境說明。
  由于Z-min不在只用于回零來使用,所以在打開自動調(diào)平功能后,回零也就有所區(qū)別。請看下面視頻的前面一段,發(fā)送G28(XYZ全部回零)命令后,XY分別回零,然后XY分別運(yùn)動到打印平臺中心位置,放下Z-min,來完成Z軸的回零。并且如果XY軸沒有回零,并不能單獨為Z軸回零。Z軸的回零位置是一個基準(zhǔn)點,即在(x,y)坐標(biāo)位置的Z零點。后面的調(diào)平都是根據(jù)這個點的偏移來確定的。
  請看視頻的后半段,發(fā)送G29(自動調(diào)平命令)后的反映,打印機(jī)的Z-min會移動到四個不同XY坐標(biāo)(固件中可以配置)進(jìn)行探測。并且得到四個位置相對于G28確定的基準(zhǔn)點的Z位置進(jìn)行對比和計算,得到打印平臺的傾斜程度,從而在以后的運(yùn)動中,將各個位置的Z偏移補(bǔ)償進(jìn)去(同一層打印時,Z軸可能會動),從而完成自動調(diào)平功能。
   
  如果你明白了基本的原理,再進(jìn)行后面的工作就很順利了。
  硬件準(zhǔn)備及配置
  硬件安裝
  所需硬件
  1、一個小舵機(jī),大家可以看到我用的舵機(jī)是9G型號。理論來說用什么型號都可以,但是小了不會占用太多空間;   
2、一個小限位(機(jī)械式),小限位開關(guān)即可(鼠標(biāo)按鍵),帶柄不帶柄都可以,我用的不帶柄的;   
3、固定舵機(jī)在加熱頭運(yùn)動部件上的小零件,我是自己打印的,不太合適,最后用502粘上的;   
4、固定限位開關(guān)的觸碰柄,我也是打印的,這個基本上是標(biāo)準(zhǔn)的可以在這里下載: Auto_Bed-Leveling_Z-probe_for_Makerfarm_Prusa_i3_with_E3Dv5_hotend.zip ;   
5、支持舵機(jī)接口的打印機(jī)控制板,這里以MakerLab的Mega controller為例;
  安裝
  由于每個人的打印機(jī)都不同,就不說了。總之就是保證盡可能少的影響其它部件的情況下,固定舵機(jī),并且限位開關(guān)的柄可以收放自如,并且收起后,打印頭的高度要低于限位的高度,即打印時限位開關(guān)舵機(jī)等零件不能妨礙打印的進(jìn)程。   
注意:安裝限位開關(guān)觸碰柄的時候,注意舵機(jī)的極限角度的位置(0度和180度),因為咱們用舵機(jī)主要兩個位置最關(guān)鍵,一個是收起限位時,一個是放下限位時,這兩個位置都不要太靠近舵機(jī)的0和180度位置(即舵機(jī)的極限位置),極限位置的舵機(jī)不穩(wěn)定,并且可能容易燒舵機(jī)。 大家注意。
  下圖是舵機(jī)即固定舵機(jī)的部分:   
1.jpg


  下圖是限位開關(guān)收起后的位置,不會妨礙打印及其它部分的運(yùn)動:   
2.jpg


  下圖是限位開關(guān)放下后的效果,放下后,限位開關(guān)當(dāng)然要比打印頭的位置更低才可以,否則打印頭都撞車了,限位開關(guān)還沒觸發(fā):   
3.jpg


  接線
  Mega Controller已經(jīng)引出了四路舵機(jī)接口,都是標(biāo)準(zhǔn)的接口,所以將舵機(jī)線連接到圖片所示位置,標(biāo)記為30的位置即可,主要舵機(jī)線中黃色的為信號線,對應(yīng)控制板子上的S標(biāo)記。如果:   
4.jpg


  舵機(jī)角度確定
  由于舵機(jī)是用于做調(diào)平,調(diào)平的準(zhǔn)確性直接影響了打印的效果。所以舵機(jī)的角度控制就至關(guān)重要,而這個角度參數(shù)(兩個角度,收起和放下時舵機(jī)分別所處角度)非常重要,需要用于固件的配置。
  修改固件
  默認(rèn)的Marlin固件并沒有添加對舵機(jī)的支持(可以剩下RAM和ROM空間)。所以首先打開你的Marlin固件,找到Configuration.h文件,搜索“NUM_SERVOS”關(guān)鍵詞(670行左右),來到   
c   
//#define NUM_SERVOS 1 // Servo index starts with 0 for M280 command   
然后將最前面的//刪除,并將后面的數(shù)字改為1,默認(rèn)該數(shù)字可能是3.   
修改完成后,其它參數(shù)不變,上傳新固件到控制板。完成后,打開你用的最順手的上位機(jī)軟件,我以printrun為例,選擇串口和波特率,連接。連接成功后,就可以測試舵機(jī)是否可以控制了。在發(fā)送命令區(qū)域,輸入命令M280 P0 S100,其中M280是用于控制舵機(jī)的G代碼,P0標(biāo)識第一個舵機(jī),如果你有其它舵機(jī),可以用P1、P2等來分別控制,S后面的數(shù)字表示舵機(jī)運(yùn)動的角度,輸入命令后,點擊Send(發(fā)送)或回車。   
此時,如果一切都配置得當(dāng),你應(yīng)該看到了舵機(jī)會動,如果不動再試一下其它的角度即更換S后面的數(shù)字,如果其它角度依然不動,請檢查接線即固件是否正確。(注意,Ramps用戶直接接在舵機(jī)接口位置是不能用的,因為舵機(jī)接口默認(rèn)是不供電的,需要將Ramps復(fù)位按鍵旁邊的兩個電源接在一起才可以,標(biāo)記為VCC和5V,將這兩個端子連接,就可以為舵機(jī)供電了。)
  測試角度
  由于舵機(jī)角度不能通過其它方式獲得,只能需要你自己進(jìn)行實際的測試,所以通過發(fā)送上面的命令,不斷修改S后面的角度值,來得到兩個比較完美的角度分別對應(yīng)收起和放下時的位置。記在旁邊備用。   
我通過測試,找到的角度為:   
放下角度為:125度;   
收起角度為:42度;   
你的配置不太可能跟我的一樣,所以一定要自己測試一下。
  處于放下狀態(tài)時,輸入M280 P0 S42命令后的效果是這樣的:
  
5.gif

  處于收起狀態(tài)時,輸入M280 P0 S125命令后的效果是這樣的:
  
6.gif

  如果得到的角度你很滿意,即不影響其它部分運(yùn)動,也可以在放下時進(jìn)行正常調(diào)平,那么就可以進(jìn)入下一環(huán)節(jié)了。
   RAMPS1.4的板子舵機(jī)是接在哪里,麻煩能說下嘛?
  注意,Ramps用戶直接接在舵機(jī)接口位置是不能用的,因為舵機(jī)接口默認(rèn)是不供電的,需要將Ramps復(fù)位按鍵旁邊的兩個電源接在一起才可以,標(biāo)記為VCC和5V,將這兩個端子連接,就可以為舵機(jī)供電了。
  參考圖片,其中紫色框內(nèi)的兩個針需要接在一起,否則舵機(jī)沒有供電;紅色框就是第一個舵機(jī)應(yīng)該接的位置:   
好的,再請教一下,這個在瑪林里面是不是要把引腳改為11
  不需要改,配置好舵機(jī)數(shù)量,發(fā)送命令時M280 P0 S42中的P0就是指的這個管腳對應(yīng)的舵機(jī)
  按本頁修改后在打開上位機(jī),舵機(jī)轉(zhuǎn)到一個角度   
但是在上位機(jī)輸入M280 P0 SX沒有反應(yīng),這里X表示一個數(shù),我用的是RAMPS1.4的板子,上位機(jī)是PRONTERFACE,
  各個參數(shù)都配置正確了嗎?
  #define NUM_SERVOS 1 按你的教程改了這里   
然后5V供電也跳線了,我輸入M280 P0 SX沒有反應(yīng)   
我輸入G28 XYZ可以回零,z回零的時候,舵機(jī)會轉(zhuǎn)下來,舵機(jī)上的限位開關(guān)碰到底板后舵機(jī)就轉(zhuǎn)上去,   
看上去舵機(jī)和限位開關(guān)是能正常工作的,   
但是M280 P0 S。。這個代碼沒有起到作用
  我在網(wǎng)上搜了下國外的貼子,好像在在PINS。H這個文件里面設(shè)置P11接口?是不是這個原因?
  能調(diào)平說明正常。是不是你輸入命令時有問題
  M280 P0 S34   
這就是我發(fā)送的指令,字母都是大寫三個一起發(fā)的,中間空格空開,是這樣嗎?
  沒錯,舵機(jī)不動?試試其它角度
  不動,我這兩天試了很多個值,呵呵
  可以了,我把M280 P0 S34   
中的M換成小寫的m可以了,為什么不能識別大寫的,我開始一直以為是要大寫
  是很寄怪,我一直記得G代碼這些都是要大寫的,我輸入的是小寫但是他信框里的又是大寫
  固件配置
這里只說明與自動調(diào)平有關(guān)的參數(shù)。
  舵機(jī)相關(guān)
  如果你需要舵機(jī)來收起、放下調(diào)平探針(Z-min限位開關(guān)),那么舵機(jī)相關(guān)的參數(shù)是必須要配置的。如果你的板子是Mega Controller(我們的合體板子),將舵機(jī)連接在Servos接口,標(biāo)記30的位置。   
還記得上一部分講到的通過發(fā)送命令來獲得放下和收起調(diào)平探針的角度嗎?我的角度分別是:   
放下:125度;   
收起:42度;   
每個人的數(shù)據(jù)都不太可能一樣,一定要用自己的數(shù)據(jù),得到這兩個數(shù)據(jù)后,修改固件配置文件的:
  // Servo Endstops   
//   
// This allows for servo actuated endstops, primary usage is for the Z Axis to eliminate calibration or bed height changes.   
// Use M206 command to correct for switch height offset to actual nozzle height. Store that setting with M500.   
//自動調(diào)平探針安裝的哪個軸,-1表示關(guān)閉,0標(biāo)識在此軸上,分別上XYZ,將下面兩行代碼原有的“//”刪除,如下   
#define SERVO_ENDSTOPS {-1, -1, 0} // Servo index for X, Y, Z. Disable with -1   
#define SERVO_ENDSTOP_ANGLES {0,0, 0,0, 125,42} // X,Y,Z Axis Extend and Retract angles   
//定義xyz三個軸上舵機(jī)放下和收起后的角度。將之前獲得的角度數(shù)據(jù)填在Z軸對應(yīng)的位置,即第5(放下角度)和第6(收起角度)個數(shù)據(jù)。
  改完上面的參數(shù)后,舵機(jī)相關(guān)的參數(shù)就配置完成了。
  自動調(diào)平功能開啟及相關(guān)參數(shù)
  上面已經(jīng)配置好了舵機(jī)的相關(guān)參數(shù),但是要想實現(xiàn)自動調(diào)平,還需要配置下面這段區(qū)域的參數(shù):
  //============================= Bed Auto Leveling ===========================   
//是否開啟自動調(diào)平功能,如果開啟,刪除前面的//   
//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)   
//下面開始是針對自動調(diào)平功能的具體設(shè)置   
#ifdef ENABLE_AUTO_BED_LEVELING   
// these are the positions on the bed to do the probing   
//自動調(diào)平時的4個位置,為了防止測試時擠出機(jī)超出XY軸的范圍,可以適當(dāng)調(diào)整下面參數(shù),讓這幾個參數(shù)都靠近打印平臺中心位置的坐標(biāo)   
#define LEFT_PROBE_BED_POSITION 15   
#define RIGHT_PROBE_BED_POSITION 135   
#define BACK_PROBE_BED_POSITION 160   
#define FRONT_PROBE_BED_POSITION 20   
// these are the offsets to the prob relative to the extruder tip (Hotend - Probe)   
//調(diào)平傳感器與擠出頭的坐標(biāo)偏移,加熱頭坐標(biāo)-調(diào)平探針坐標(biāo),這里的參數(shù)可以不調(diào)整,因為手動測量這幾個數(shù)據(jù)精確性實在太差,暫時保留之前的默認(rèn)值即可。下面的參數(shù)是我調(diào)出來的,大家不要用我的參數(shù)。   
#define X_PROBE_OFFSET_FROM_EXTRUDER -34   
#define Y_PROBE_OFFSET_FROM_EXTRUDER 8   
#define Z_PROBE_OFFSET_FROM_EXTRUDER -14.3   
#define Z_RAISE_BEFORE_HOMING 4 // (in mm) Raise Z before homing (G28) for Probe Clearance.   
// Be sure you have this distance over your Z_MAX_POS in case   
//回原點前,z軸升起的距離,放置太低,調(diào)平探針無法放下   
#define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min   
//調(diào)平時,XY軸的運(yùn)行速度   
#define Z_RAISE_BEFORE_PROBING 15 //How much the extruder will be raised before traveling to the first probing point.   
//運(yùn)行到第一個調(diào)平點前,Z軸升起的距離   
#define Z_RAISE_BETWEEN_PROBINGS 5 //How much the extruder will be raised when traveling from between next probing points   
//運(yùn)行到下一個調(diào)平點前,Z軸升起的距離   
//If defined, the Probe servo will be turned on only during movement and then turned off to avoid jerk   
//The value is the delay to turn the servo off after powered on - depends on the servo speed; 300ms is good value, but you can try lower it.   
// You MUST HAVE the SERVO_ENDSTOPS defined to use here a value higher than zero otherwise your code will not compile.   
//舵機(jī)關(guān)閉延時,為了防止抖動,建議開啟這個功能。否則舵機(jī)會抖動。后面的參數(shù)保持默認(rèn)只即可。   
#define PROBE_SERVO_DEACTIVATION_DELAY 300   
//If you have enabled the Bed Auto Levelling and are using the same Z Probe for Z Homing,   
//it is highly recommended you let this Z_SAFE_HOMING enabled!!!   
//Z軸安全回零配置。開啟后,Z軸回零前,XY必須先回零才可以   
#define Z_SAFE_HOMING // This feature is meant to avoid Z homing with probe outside the bed area.   
// When defined, it will:   
// - Allow Z homing only after X and Y homing AND stepper drivers still enabled   
// - If stepper drivers timeout, it will need X and Y homing again before Z homing   
// - Position the probe in a defined XY point before Z Homing when homing all axis (G28)   
// - Block Z homing only when the probe is outside bed area.   
#ifdef Z_SAFE_HOMING   
#define Z_SAFE_HOMING_X_POINT (X_MAX_LENGTH/2) // X point for Z homing when homing all axis (G28)   
#define Z_SAFE_HOMING_Y_POINT (Y_MAX_LENGTH/2) // Y point for Z homing when homing all axis (G28)   
#endif   
// with accurate bed leveling, the bed is sampled in a ACCURATE_BED_LEVELING_POINTSxACCURATE_BED_LEVELING_POINTS grid and least squares solution is calculated   
// Note: this feature occupies 10'206 byte   
#define ACCURATE_BED_LEVELING   
#ifdef ACCURATE_BED_LEVELING   
// I wouldn't see a reason to go above 3 (=9 probing points on the bed)   
#define ACCURATE_BED_LEVELING_POINTS 2   
#endif   
#endif
  調(diào)平相關(guān)的固件配置也已經(jīng)完成,但里面有幾個關(guān)鍵參數(shù)還需要再次確定,否則得到的數(shù)據(jù)將不正確,暫時還不需要上傳,下面的參數(shù)配置后再上傳。請參考下一部分。
  確定具體參數(shù)
  上一部分已經(jīng)配置了自動調(diào)平相關(guān)的所有參數(shù),并且也已經(jīng)把舵機(jī)收起放下的角度測量了出來。   
要想正常使用自動調(diào)平,我們還需要精確測量下面三個參數(shù):
  #define X_PROBE_OFFSET_FROM_EXTRUDER -34   
#define Y_PROBE_OFFSET_FROM_EXTRUDER 8   
#define Z_PROBE_OFFSET_FROM_EXTRUDER -14.3
  之前配置參數(shù)時,我們建議大家把上面的參數(shù)保持默認(rèn)值即可?,F(xiàn)在我們需要把這幾個參數(shù)測試出來。   
為了保證順利測試,還需要配置下面這個參數(shù):#define min_software_endstops true,此參數(shù)默認(rèn)值是true,需要改為false,否則移動軸時,不能運(yùn)行到小于0坐標(biāo)的位置。改完這個參數(shù)就可以上傳固件了。
  確定上面幾個參數(shù)的方法
  為了能夠更加精確的確認(rèn)上面的三個參數(shù),即擠出頭與調(diào)平探針的精確偏移量,我們需要用3d打印機(jī)自帶的這個三維坐標(biāo)系統(tǒng)來確定,而不是用尺子量。   
注意:如果用此方法,操作之前各軸的steps_per_mm參數(shù)必須計算正確,否則得到的數(shù)據(jù)是不準(zhǔn)確的。
  第一步、在打印平臺的中間位置用筆標(biāo)記一個參考點
  為了能夠保證精度,我們需要確定一個參考點,參考點可以選擇打印平臺上的任意位置,但是為了能夠保證打印頭和調(diào)平探針都能方便抵達(dá),所以選擇平臺中心位置比較好。標(biāo)記一個小點,就像下圖:   
7.jpg


  第二部、放下探針移動調(diào)平探針剛好來到標(biāo)記點位置并手動置零
  放下探針(命令:M280 P0 S125[125改為你的放下角度]),并通過上位機(jī)上的手動操作按鈕,移動XY兩個軸讓探針剛好來到標(biāo)記點上方,然后再移動Z軸(最后階段盡量用0.1mm的按鈕),讓探針剛好碰到打印平臺。此時在上位機(jī)中輸入命令:G92 X0 Y0 Z0。   
8.jpg


  第三步、移動打印頭來到標(biāo)記點位置并得到偏移量
  收起探針,移動XY及Z軸,讓打印頭與平臺之間的距離恰好能夠通過一張A4紙。然后輸入命令:M114來獲取現(xiàn)在的坐標(biāo),你會得到類似與下面的信息:
  ok C: X:-34.00 Y:8.00 Z:-14.3 E:0.00
  而這些數(shù)據(jù)就是你的固件中所需要的三個偏移量,將這三個數(shù)據(jù)添加到你的固件中的位置即可。
  修改完這個參數(shù)后,你可以將之前改的#define min_software_endstops false中的false重新改為true,保障打印機(jī)的安全。然后重新上傳固件。自動調(diào)平功能的配置已經(jīng)在你的打印機(jī)上配置完成了。開始真機(jī)測試吧。。
  問答:
  我不用舵機(jī)固件怎么改啊
  請問,探針和擠出頭之間的Z向距離 Z_PROBE_OFFSET_FROM_EXTRUDER,可以通過M指令進(jìn)行調(diào)整嗎,每次改0.1都要刷一次固件,好麻煩,能聯(lián)機(jī)調(diào)試就方便了。
  真機(jī)測試
  固件上傳完成后,你可以測試一下是否能夠進(jìn)行調(diào)平功能,為了能夠保證調(diào)平探針順利放下,最好將Z軸升至合適的位置,防止探針無法放下到位,而造成撞車現(xiàn)象。在上位機(jī)中點擊上面的左下角小房子,注意是沒有標(biāo)記任何字母的那個,來進(jìn)行XYZ三個軸的回零,   
9.jpg


  你會發(fā)現(xiàn),回零跟沒有添加自動調(diào)平功能前是有區(qū)別的,現(xiàn)在的回零是XY回零完成后,來到(Xmax/2,Ymax/2)坐標(biāo)位置,放下Z探針,進(jìn)行Z軸回零,并且,不能單獨對Z軸進(jìn)行回零,回零完成后輸入G29自動調(diào)平命令,你會看到開始對固件中配置的4個點進(jìn)行調(diào)平,此時你應(yīng)當(dāng)仔細(xì)觀察,發(fā)現(xiàn)是否有超界的地方,如果有應(yīng)該修改固件中的調(diào)平點的坐標(biāo)?;亓愫驼{(diào)平的操作視頻如下:
  http://v.youku.com/v_show/id_XNzAyMjkzOTY0.html
  如果你的打印機(jī)也可以完成上面的動作,說明你的自動調(diào)平功能配置成功了,Oh,yeah。
  如果你想測試一下自動調(diào)平功能是否有作用,可以故意把平臺弄斜,比如我把玻璃的右邊抬高了一個螺絲帽的高度。   
10.jpg

然后經(jīng)過回零、調(diào)平操作后,讓Z軸坐標(biāo)確定后,調(diào)整XY坐標(biāo),你會發(fā)現(xiàn)雖然你只是在改變XY坐標(biāo),但是Z軸為了能夠適應(yīng)平臺不平的原因,Z軸也會動,并且各個位置Z軸與平臺直接的距離是不會變的。   
11.jpg


  問答:
  怎么樣把G28這個調(diào)平功能增加到一個真正的打印文件里面啊
  切片軟件里的啟動代碼G28下面加上G29,比如像這樣:   
12.jpg
聲明:3D打印資源庫(3dzyk)內(nèi)網(wǎng)友所發(fā)表的所有內(nèi)容及言論僅代表其本人,并不代表3D打印資源庫(3dzyk)觀點和立場;如對文章有異議或投訴,請联系kefu@3dzyk.cn。
一只,懶貓...

作者其他文章

B Color Smilies
3D打印機(jī)如何添加自動調(diào)平功能(舵機(jī)調(diào)平) 
铜川市| 班玛县| 张北县| 天峻县| 三穗县| 甘谷县| 建德市| 新竹县| 拉萨市| 德昌县| 张家川| 广水市| 永靖县| 休宁县| 甘泉县| 会同县| 宁强县| 武城县| 乐亭县| 边坝县| 华阴市| 宿州市| 江川县| 南宫市| 瑞丽市| 博野县| 柳林县| 太和县| 双峰县| 昆山市| 教育| 榆社县| 紫云| 小金县| 鹤岗市| 台湾省| 宣威市| 咸宁市| 孙吴县| 武鸣县| 乐安县|