2013年7月31日 星期三

Sanguinololu 搭配 LM2596 降壓電路 控制擠出頭電熱器

Note: Sanguinololu 1.3a 在USB 晶片跟1284P的通訊設計上,有些問題,倒致非常多網友買板子買來,卻無法使用。建議請避免再購買Sanguinololu。

如果馬達驅動使用24V的電壓,可是擠出頭電熱器使用12V。這時候需要加裝降壓電路,以免加熱器無法正常工作,甚至燒毀。

以下為加裝降壓板的線路圖。


Sanguinololu 上 HotEnd 的 輸出腳位,正極連接到主板內部電源供應端,負極連接到主板內部一顆 MOSFET 做PWM的開關閘。故不能直接用 HotEnd 輸出腳位的負極當做降壓板的接地點。降壓板的接地點另外找風扇的接地點來代替,或是直接焊死到主板電源輸入腳位的接地點。

降壓板的輸出端正極連接到加熱器,負極已透過輸入端的負極與主板相接,故可不必再拉線到主板。電熱器的負極就依照原始設計,連接到主板 HotEnd 腳位的負極。

P.S. 如果需要12伏特的電壓驅動風扇,也可以從降壓板上拉電。

2013年7月8日 星期一

RepRap Air 2 DIY 筆記


*文章尚未完成,有建議歡迎留言~

綱要:
  1. 網路資訊
  2. 演進、特色
  3. 材料、採購資訊
  4. 機構組裝
  5. 機構校正
  6. 電機組裝(步進馬達、控制板、EndStop)
  7. 電機校正
  8. 主控板韌體設定
  9. PC端控制軟體
  10. 擠出機構組裝
  11. 擠出機構校正
  12. 擠出頭溫度調整
  13. 工件如何牢固黏合在玻璃平台上
  14. 參考資料

網路資訊



演進、特色


材料、採購資訊

機構
  • 壓克力 610x457mm, 厚 6mm, 2片。(拍賣上搜尋)(Fablab Taipei 雷切)
  • 3D列印零組件(找朋友幫忙印或是拍賣上找)(未來也許Fablab Taipei能夠提供機器讓大家印)(Sega整理的零件模型包)
  • M8 螺絲杆 285 mm 4支,210mm 2支,430mm 1支,(360 mm1支[選擇性]) (建議直接買不鏽鋼的,不要買鍍鋅的。)(建議買兩支100cm, 285 - 285 - 430三支一組裁切,285 - 285 - 210 - 210四支一組裁切。共六刀)
  • M8光軸395mm 6支
  • LM8UU,12個
  • M8 螺帽 (數量待查) (高來螺絲)
  • M8 墊片 (數量待查)
  • M8 35mm 螺絲釘 1支
  • M3螺絲 10mm24支,12mm23支,16mm4支,16mm7支。
  • M3螺帽 58個
  • M3墊片 58片
  • M2螺絲 15mm6支
  • M2螺帽 6個
  • M2墊片 6片
  • 擠料頭 J-Head
  • 2GT 同步齒輪 2 個
  • 皮带2GT-6
  • 高硼矽玻璃板 尺寸200*200*3mm 1片
電機
  • 12V30A 工業電源供應器 1台
  • 步進馬達(Nema 17 或 42型 夠力的) 5個
  • Reprap Sanguinololu Ver1.3a+4个A4988板替代RAMPS 1組
  • 加熱床電路板(20x20cm)

機構組裝

螺絲不要一次鎖到死。第一輪先稍微壓住版子就好,第二輪依"下一個螺絲找對角線上的先鎖"的規則,鎖緊一點就好。第三輪一樣找對角線的螺絲鎖,而且鎖到死。每鎖一個螺帽,就檢查一次整個機構有沒有平整,如果不平整,就需要鬆開數個螺絲,調整到平整之後,再重新鎖緊。

可以使用扭力板手來確認鎖緊的程度。

雙螺帽防鬆介紹


機構校正

todo

步進馬達功率、電壓估算

馬達驅動晶片A4988是"定電流源",會依照控制板上 Vref 的設定,給出固定的電流。如果馬達阻抗小,4988就會減少輸出電壓,如果馬達阻抗大,4988就會提高輸出電壓。如果需要的電壓超過4988收到的輸入電壓,那4988並無法供應如此高的電壓,造成馬達沒有足夠的功率進行轉動。

A4988 驅動板上 Vref  跟 "輸出電流" 的關係,請參考這裡。
http://reprap.org/wiki/Pololu_stepper_driver_board

雙極步進馬達加速和減速過程應用

電機組裝(步進馬達、控制板、EndStop)

* Z軸兩顆馬達串聯的裝法


* 可以利用G-code "M119" 來測試EndStop是否有正常工作。

End Stop 安裝

Sanguinololu上End Stop的接地,接到微動開關的 Common (C) 腳位;SIG接到微動開關的 Normally Open (NO) 腳位。

如果使用RAMPS 1.4 上End Stop的GND,接到微動開關的 Common (C) 腳位;S接到微動開關的 Normally Close (NC) 腳位。

電機校正

A4988@Sanguinololu 的微步進設定 ( 什麼是微步進 )

主控板韌體設定

下載Sanguinololu上的韌體 "Marlin"

下載 Arduino 1.0.1



計算移動1mm,步進馬達需要走幾步?

這問題裡面有幾個變數
1. 控制器發出一個訊號,馬達要轉幾分之幾步。
2. 馬達轉一步,實際上轉了幾度
3. 皮帶齒距有多遠
4. 同步齒輪有幾齒
這幾個變數有了,就可以算出噴頭移動1mm, 控制板需要發送出幾個訊號



XY軸用 belt driven system 做計算

  • motor step angle : 步進馬達一步轉動的角度。
  • driver microstepping : 驅動晶片微步進,Sanguinololu上三個跳線都短接的話,會是 1/16
  • belt presets : 同步齒輪種類。(我用的是2mm GT2)
  • pulley tooth count : 同步齒輪齒數
  • Result是XY軸的 steps per unit
z軸用 leadscrew driven systems 做計算
  • motor step angle : 步進馬達一步轉動的角度。
  • driver microstepping : 驅動晶片微步進,Sanguinololu上三個跳線都短接的話,會是 1/16
  • presets : 選 M8
  • Gear ratio : 我們沒有使用齒輪做力距轉換,所以用 "1:1" 就可以。
  • Result是Z軸的 steps per unit
設定 Marlin
#define DEFAULT_AXIS_STEPS_PER_UNIT   {78.7402,78.7402,200.0*8/3,760*1.1}  // default steps per unit for Ultimaker
大括號內的數值,就是X,Y,Z,E四個軸的 "移動1mm,步進馬達需要走幾步",要計算,或是測試量出誤差後微調。

PC端控制軟體

Repetier

Repetier整合了切片軟體跟控制軟體,初學者容易上手。

Slic3r切片軟體設定

* retraction 設太多可能會抽斷PLA線,太少會容易產生牽絲的問題

G-Code


M220:set speed factor override percentage(重新設定整體速度參數,單位是"百分比")
Example: M220 S80
S<factor in percent>- set speed factor override percentage

M221: set extrude factor override percentage(重新設定擠出量,單位是"百分比"。可以用來稍微校正線材粗細造成實際擠出量的誤差。)
Example: M221 S70
S<factor in percent>- set extrude factor override percentage

M21: Initialize SD card (初始化SD卡)
Example: M21
The SD card is initialized. If an SD card is loaded when the machine is switched on, this will happen by default. SD card must be initialized for the other SD functions to work.

M22: Release SD card  (釋放SD卡)
Example: M22
SD card is released and can be physically removed.

M24: Start/resume SD print  (開始/繼續SD卡上的工作)
Example: M24
The machine prints from the file selected with the M23 command.

M25: Pause SD print (暫停SD卡上的工作)
Example: M25

M92: Set axis_steps_per_unit (設定"每走1mm需要步進馬達走幾步。測定擠出軸的 steps per unit 可以利用這個指令。)
Example: M92 X<newsteps> Sprinter and Marlin
Allows programming of steps per unit of axis till the electronics are reset for the specified axis. Very useful for calibration.

M303: Run PID tuning (自動調整擠出頭溫度控制的PID參數)
Generate Proportional, Integral and Derivative values for the hotend or bed (E-1). Send the appropriate code and wait for the output to update the firmware.
Hotend Usage: M303 S<temperature> C<cycles> Bed Usage: M303 E-1 C<cycles> S<temperature>
Example: M303 C8 S175 (用175度當作目標,待溫度震盪八次後完成PID參數的計算)

M500 - stores paramters in EEPROM (將控制參數寫入晶片,重開機之後會使用存入的參數)

M501 - reads parameters from EEPROM (if you need reset them after you changed them temporarily).(讀取晶片中記錄的參數)

擠出軸車削

擠出機構組裝


擠出機構校正


擠出頭溫度控制校正

擠出頭加熱器、溫度感應器安裝好後,先別急著直接指定工作溫度並且加熱。因為控制板上的溫度控制PID參數尚未校正。如果加熱速度過快,有可能會加熱過度並且導致零件燒毀。

Marlin 有提供 PID 參數自動校正的功能 (PID Autotune)

加熱器、溫度感應器線路接妥後,執行G-code "M303 C8 S175" (自動調整PID參數,溫度震盪8次後停止,目標溫度175度。)。

若收到錯誤訊息"PID Autotune failed! Temperature too high",代表初始測試條件會讓溫度超出目標溫度20度。這時候需要修正韌體中的PID_MAX(加熱頭最高電流上限)。請修改Configuration.h中的PID_MAX(譬如改為原本的一半),然後重新燒錄韌體後,再回到上個步驟做 "M303 C8 S175"。如果重複測試後溫度上不去,請提高PID_MAX。如果溫度還是衝過頭,請繼續降低PID_MAX。

待收到 "PID Autotune finished! Put the Kp, Ki and Kd constants into Configuration.h" 的訊息,請用測試過程中最後一輪的 Kp, Ki and Kd 值,替換掉 Configuration.h 中的 DEFAULT_Kp, DEFAULT_Ki 和 DEFAULT_Kd。之後重新燒錄韌體,完成擠出頭溫度控制校正。


工件如何牢固黏合在玻璃平台上

  • 在玻璃表面上塗口紅膠(PLA)
  • 在玻璃表面上預先擠一層1mm的ABS (ABS)
  • 使用熱床