国产猛男猛女超爽免费视频,国产精品一区二区不卡小说,免费调教小骚货视频,欧美日韩亚洲免费一区

3D打印機如何添加自動調平功能(舵機調平) 

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


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


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


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


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

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

  如果得到的角度你很滿意,即不影響其它部分運動,也可以在放下時進行正常調平,那么就可以進入下一環(huán)節(jié)了。
   RAMPS1.4的板子舵機是接在哪里,麻煩能說下嘛?
  注意,Ramps用戶直接接在舵機接口位置是不能用的,因為舵機接口默認是不供電的,需要將Ramps復位按鍵旁邊的兩個電源接在一起才可以,標記為VCC和5V,將這兩個端子連接,就可以為舵機供電了。
  參考圖片,其中紫色框內的兩個針需要接在一起,否則舵機沒有供電;紅色框就是第一個舵機應該接的位置:   
好的,再請教一下,這個在瑪林里面是不是要把引腳改為11
  不需要改,配置好舵機數(shù)量,發(fā)送命令時M280 P0 S42中的P0就是指的這個管腳對應的舵機
  按本頁修改后在打開上位機,舵機轉到一個角度   
但是在上位機輸入M280 P0 SX沒有反應,這里X表示一個數(shù),我用的是RAMPS1.4的板子,上位機是PRONTERFACE,
  各個參數(shù)都配置正確了嗎?
  #define NUM_SERVOS 1 按你的教程改了這里   
然后5V供電也跳線了,我輸入M280 P0 SX沒有反應   
我輸入G28 XYZ可以回零,z回零的時候,舵機會轉下來,舵機上的限位開關碰到底板后舵機就轉上去,   
看上去舵機和限位開關是能正常工作的,   
但是M280 P0 S。。這個代碼沒有起到作用
  我在網(wǎng)上搜了下國外的貼子,好像在在PINS。H這個文件里面設置P11接口?是不是這個原因?
  能調平說明正常。是不是你輸入命令時有問題
  M280 P0 S34   
這就是我發(fā)送的指令,字母都是大寫三個一起發(fā)的,中間空格空開,是這樣嗎?
  沒錯,舵機不動?試試其它角度
  不動,我這兩天試了很多個值,呵呵
  可以了,我把M280 P0 S34   
中的M換成小寫的m可以了,為什么不能識別大寫的,我開始一直以為是要大寫
  是很寄怪,我一直記得G代碼這些都是要大寫的,我輸入的是小寫但是他信框里的又是大寫
  固件配置
這里只說明與自動調平有關的參數(shù)。
  舵機相關
  如果你需要舵機來收起、放下調平探針(Z-min限位開關),那么舵機相關的參數(shù)是必須要配置的。如果你的板子是Mega Controller(我們的合體板子),將舵機連接在Servos接口,標記30的位置。   
還記得上一部分講到的通過發(fā)送命令來獲得放下和收起調平探針的角度嗎?我的角度分別是:   
放下: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.   
//自動調平探針安裝的哪個軸,-1表示關閉,0標識在此軸上,分別上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三個軸上舵機放下和收起后的角度。將之前獲得的角度數(shù)據(jù)填在Z軸對應的位置,即第5(放下角度)和第6(收起角度)個數(shù)據(jù)。
  改完上面的參數(shù)后,舵機相關的參數(shù)就配置完成了。
  自動調平功能開啟及相關參數(shù)
  上面已經(jīng)配置好了舵機的相關參數(shù),但是要想實現(xiàn)自動調平,還需要配置下面這段區(qū)域的參數(shù):
  //============================= Bed Auto Leveling ===========================   
//是否開啟自動調平功能,如果開啟,刪除前面的//   
//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)   
//下面開始是針對自動調平功能的具體設置   
#ifdef ENABLE_AUTO_BED_LEVELING   
// these are the positions on the bed to do the probing   
//自動調平時的4個位置,為了防止測試時擠出機超出XY軸的范圍,可以適當調整下面參數(shù),讓這幾個參數(shù)都靠近打印平臺中心位置的坐標   
#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)   
//調平傳感器與擠出頭的坐標偏移,加熱頭坐標-調平探針坐標,這里的參數(shù)可以不調整,因為手動測量這幾個數(shù)據(jù)精確性實在太差,暫時保留之前的默認值即可。下面的參數(shù)是我調出來的,大家不要用我的參數(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軸升起的距離,放置太低,調平探針無法放下   
#define XY_TRAVEL_SPEED 8000 // X and Y axis travel speed between probes, in mm/min   
//調平時,XY軸的運行速度   
#define Z_RAISE_BEFORE_PROBING 15 //How much the extruder will be raised before traveling to the first probing point.   
//運行到第一個調平點前,Z軸升起的距離   
#define Z_RAISE_BETWEEN_PROBINGS 5 //How much the extruder will be raised when traveling from between next probing points   
//運行到下一個調平點前,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.   
//舵機關閉延時,為了防止抖動,建議開啟這個功能。否則舵機會抖動。后面的參數(shù)保持默認只即可。   
#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
  調平相關的固件配置也已經(jīng)完成,但里面有幾個關鍵參數(shù)還需要再次確定,否則得到的數(shù)據(jù)將不正確,暫時還不需要上傳,下面的參數(shù)配置后再上傳。請參考下一部分。
  確定具體參數(shù)
  上一部分已經(jīng)配置了自動調平相關的所有參數(shù),并且也已經(jīng)把舵機收起放下的角度測量了出來。   
要想正常使用自動調平,我們還需要精確測量下面三個參數(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ù)保持默認值即可?,F(xiàn)在我們需要把這幾個參數(shù)測試出來。   
為了保證順利測試,還需要配置下面這個參數(shù):#define min_software_endstops true,此參數(shù)默認值是true,需要改為false,否則移動軸時,不能運行到小于0坐標的位置。改完這個參數(shù)就可以上傳固件了。
  確定上面幾個參數(shù)的方法
  為了能夠更加精確的確認上面的三個參數(shù),即擠出頭與調平探針的精確偏移量,我們需要用3d打印機自帶的這個三維坐標系統(tǒng)來確定,而不是用尺子量。   
注意:如果用此方法,操作之前各軸的steps_per_mm參數(shù)必須計算正確,否則得到的數(shù)據(jù)是不準確的。
  第一步、在打印平臺的中間位置用筆標記一個參考點
  為了能夠保證精度,我們需要確定一個參考點,參考點可以選擇打印平臺上的任意位置,但是為了能夠保證打印頭和調平探針都能方便抵達,所以選擇平臺中心位置比較好。標記一個小點,就像下圖:   
7.jpg


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


  第三步、移動打印頭來到標記點位置并得到偏移量
  收起探針,移動XY及Z軸,讓打印頭與平臺之間的距離恰好能夠通過一張A4紙。然后輸入命令:M114來獲取現(xiàn)在的坐標,你會得到類似與下面的信息:
  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īng)在你的打印機上配置完成了。開始真機測試吧。。
  問答:
  我不用舵機固件怎么改啊
  請問,探針和擠出頭之間的Z向距離 Z_PROBE_OFFSET_FROM_EXTRUDER,可以通過M指令進行調整嗎,每次改0.1都要刷一次固件,好麻煩,能聯(lián)機調試就方便了。
  真機測試
  固件上傳完成后,你可以測試一下是否能夠進行調平功能,為了能夠保證調平探針順利放下,最好將Z軸升至合適的位置,防止探針無法放下到位,而造成撞車現(xiàn)象。在上位機中點擊上面的左下角小房子,注意是沒有標記任何字母的那個,來進行XYZ三個軸的回零,   
9.jpg


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

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


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

作者其他文章

B Color Smilies
3D打印機如何添加自動調平功能(舵機調平) 
迁安市| 西吉县| 伊宁市| 沂南县| 上饶县| 凯里市| 盘锦市| 桓台县| 高碑店市| 会泽县| 永州市| 蓬安县| 克山县| 东台市| 毕节市| 延安市| 阳东县| 余干县| 麻江县| 通辽市| 彩票| 沽源县| 蓬溪县| 棋牌| 额尔古纳市| 吉隆县| 新津县| 东乌珠穆沁旗| 浑源县| 石屏县| 巴塘县| 大姚县| 商都县| 营山县| 正镶白旗| 金乡县| 休宁县| 镇坪县| 万源市| 天等县| 安乡县|